用遗传算法优化配合比.docx
一、用遗传算法优化配合比遗传算法是基于MATLAB设计的一个工具箱,它善于处理有约束条件的最优解的问题。利用gatool命令打开遗传算法的工具箱界面,界面如下:1.首先编写个体适应度函数(FiIneSSfUne【ion),所谓适应度函数,就是想要优化的函数,由于工具箱总是在查找适应度函数的最小值,而本次优化是以强度最大值为目标,所以目标函数和适应度函数是相反的。在遗传算法中,个体适应度的大小被用来确定该个体被遗传到下一代群体中的概率,适应度函数值越小,遗传到下一代的概率就越大。本次编写的适应度函数(zr7g)如下:functionz=slrengh(x,y)%由随机选择的变量值来确定4个配合比设计参数y(i)=(i)y(2)=(2)y(3)=(3)y(4)=(4)P_test=x(1);x(2);x(3);x(4)%数据的归一化处理P=0.160.160.160.160.180.180.180.180.20.20.20.20.220.220.220.22;0.20.30.40.50.2030.40.50.20.30.40.50.20.30.40.5;0.811.21.410.81.41.21.21.40.811.41.210.8;00.951.902.952.761.810.9300.8402.841.821.672.5100.87Pl,ps1=mapminmax(P)T=73.5109.8120.0114.880.586.275.274.463.555.491.781.756.253.454.569.7T1,ps2=mapminmax(T)P_test1=mapminmax(,apply',P-test,ps1)%导入强度预测模型,对强度进行预测loadzr7y_test1=sim(net,P.test1)%数据的反归一化处理,得到强度预测结果y-iest=mapminmax('reverse,y-test1,ps2)%求强度的倒数,强度越大,其适应度值越小,遗传到下一代的概率越大z=l/y_test2.Numberofvariables(变量个数):适应度函数输入向量的长度。对于本次优化的变量个数为4,即水胶比、硅灰掺量、砂胶比、钢纤维体积掺量。3.Bounds(变量边界约束):每种参数的边界条件,本次优化取1.ower:0,16;0.2;0.8;0Upper:0.22;0.5;1.2;3这是试验时的各参数边界。4.Populationsize(种群大小):取默认值20.5.SelectionMutationCrossover(选择、变异、交叉算子):分别选择随机均匀分布(Stochasticuniform)x自适应变异(Adaptivefeasible分散交叉(Scattered)6.停止条件判定:(1)最大进化代数:当算法重复执行次数超过事先确定的最大进化代数,则算法运行结束,取默认100。(2)停滞代数:在连续繁殖的时间序列中,若长时间不繁殖新代,即目标函数无改进,则达到停滞代数规定的代数时,算法停止,取默认50。二、优化结果优化界面结果如下:Clear ResultsCurrentiteration:51Optimizationrunning.Objectivefunctionvalue:0.006916997402607493Optimizationterminated:averagechangeinthefitnessvaluelessthanoptions.IolFxm.objective function ValUe:目标函数值为 0.006916997402607493<, Optimization terminated: average change in the fitness value less than options.TolFun 优化结束,适应度值的平均变化已小于预设值,即长时间不繁殖新代,优化停止。正交试验优化结果与遗传算法优化结果对比:表1基于自然养护7天的优化结果对比优化方法水胶比(W/B)硅灰(SF/C)砂胶比(S/B)钢纤维(V%)预测强度(MPa)正交试验0.160.401.002.00128.6438遗传算法0.170.251.322.84139.9184表2基于蒸压养护7天的优化结果对比优化方法水胶比(W/B)硅灰(SF/C)砂胶比(S/B)钢纤维(V%)预测强度(MPa)正交试验0.160.400.803.00199.5708遗传算法0.160.360.882.56207.5180将上述优化结果代入预测模型进行比较,其强度列于表中。可见遗传算法优化结果相比正交试验优化结果略有提高。采用遗传算法优化的结果不稳定,由于输入参数是随机产生,每次优化的结果误差较大,将继续考虑如何使优化结果较稳定。