恢复GA
默认,GA
每次运行时,都会创建一个新的初始人口。但是,通过使用以前的运行中的最终人群作为新运行的初始人口,您可能会获得更好的结果。为此,您必须通过打电话来保存最终人口GA
使用语法
[x,fval,exitflag,output,final_pop] = ga(@fitnessfcn,nvars);
最后的输出论点是最终人口。跑步GA
使用final_pop
作为初始人口,输入
选项= optimoptions('ga',,,,“初始pop',final_pop);[X,FVAL,EXITFLAG,输出,Final_pop2] =...ga(@fitnessfcn,nvars,[],[],[],[],[],[],[],[],options);
然后您可以使用final_pop2
,第二次奔跑的最终人口是第三次运行的初始人口。
例如,最小化Ackley的函数,这是两个变量的函数。
RNG(100)%用于重生[x,fval,exitflag,output,final_pop] = ga(@ackleyfcn,2);
优化终止:健身价值的平均变化小于选项。功能耐力。
检查最佳功能值。
disp(FVAL)
3.5527
尝试通过运行获得更好的解决方案GA
来自最终人口。
选项= optimoptions('ga',,,,“初始人群”,final_pop);[x,fval2,exitflag2,output2,final_pop2] =...ga(@ackleyfcn,2,[],[],[],[],[],[],[],[],options);
优化终止:健身价值的平均变化小于选项。功能耐力。
disp(fval2)
2.9886
健身函数值可显着提高。
再次尝试改进解决方案。
options.initialPopulationMatrix = final_pop2;[x,fval3,exitflag3,output3,final_pop3] =...ga(@ackleyfcn,2,[],[],[],[],[],[],[],[],options);
优化终止:健身价值的平均变化小于选项。功能耐力。
disp(fval3)
2.9846
这次改进微不足道。