主要内容

的简历遗传算法

默认情况下,遗传算法创建一个新的初始种群每次运行它。然而,你可能会得到更好的结果通过最后的人口从先前的运行作为一个新的运行的初始种群。要做到这一点,你必须保存最后的人口之前运行通过调用的遗传算法与语法

[x, fval exitflag、输出final_pop] = ga (@fitnessfcn,据nvar);

最后一个参数是输出最终的人口。运行遗传算法使用final_pop作为初始种群,回车

选择= optimoptions (“遗传算法”,“InitialPop”,final_pop);[x, fval exitflag、输出final_pop2] =据nvar ga (@fitnessfcn,[],[],[],[],[],[],[],选项);

然后,您可以使用final_pop2最后的人口从第二运行,三分之一的人口普查的初步运行。

例如,最小化Ackley的功能,两个变量的函数,当您运行这个示例。

rng (100)%为reproducibiliity[x, fval exitflag、输出final_pop] = ga (@ackleyfcn, 2);
优化终止:平均不到options.FunctionTolerance健身价值的变化。

检查最好的函数值。

disp (fval)
3.5527

试图通过运行得到更好的解决方法遗传算法从最后的人口。

选择= optimoptions (“遗传算法”,“InitialPopulationMatrix”,final_pop);[x, fval2 exitflag2, output2 final_pop2] =ga (@ackleyfcn 2[]、[][],[],[],[],[],选项);
优化终止:平均不到options.FunctionTolerance健身价值的变化。
disp (fval2)
2.9886

适应度函数值明显提高。

试着再一次改进的解决方案。

选项。InitialPopulationMatrix = final_pop2;[x, fval3 exitflag3, output3 final_pop3] =ga (@ackleyfcn 2[]、[][],[],[],[],[],选项);
优化终止:平均不到options.FunctionTolerance健身价值的变化。
disp (fval3)
2.9846

这次的改进是无关紧要的。

版权2020 - 2022 MathWorks公司。

相关的话题