主要内容

恢复GA.

默认,GA.每次运行它时都会创建一个新的初始人口。但是,您可以通过使用以前运行的最终种群作为新运行的初始群体来获得更好的结果。为此,您必须从之前的运行中保存最终人口GA.用语法

[x,fval,出口,输出,final_pop] = ga(@ fitnessfcn,nvars);

最后一个输出参数是最终群体。跑步GA.使用Final_pop.作为初始人口,进入

选项= Optimoptions('Ga''itialpop',final_pop);[x,fval,出口,输出,final_pop2] =......ga(@ fitnessfcn,nvars,[],[],[],[],[],[],[],选项);

然后你可以使用Final_pop2.,第二次运行的最终人口,作为第三次运行的初始人口。

例如,最小化Ackley的函数,两个变量的函数。

RNG(100)再生的百分比[x,fval,出口,输出,final_pop] = ga(@ ackleyfcn,2);
优化终止:FITHS值的平均变化小于选项。功能化。

检查最佳功能值。

DISP(FVAL)
3.5527

尝试通过运行获得更好的解决方案GA.从最终人口。

选项= Optimoptions('Ga''initialpopulationmatrix',final_pop);[X,FVAL2,EXITFLAG2,OUTPUT2,FINAL_POP2] =......ga(@ ackleyfcn,2,[],[],[],[],[],[],[],选项);
优化终止:FITHS值的平均变化小于选项。功能化。
DISP(FVAL2)
2.9886

健身功能值显着提高。

再次尝试改善解决方案。

options.InitialPopulationMatrix = Final_Pop2;[x,fval3,ExitFlag3,Output3,Final_pop3] =......ga(@ ackleyfcn,2,[],[],[],[],[],[],[],选项);
优化终止:FITHS值的平均变化小于选项。功能化。
DISP(FVAL3)
2.9846

这次改善是微不足道的。

相关话题