主要内容

恢复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

这次改进微不足道。

相关话题