主要内容

设置最大代数和失速代数

MaxGenerations选项决定了遗传算法需要的最大代数;看到算法的停止条件.增加MaxGenerations可以提高最终的效果。相关的MaxStallGenerations选项控制步骤数遗传算法检查它是否有进展。增加MaxStallGenerations可以使遗传算法当算法需要进行更多的函数评估以找到更好的解时继续。

例如,优化rastriginsfcn使用10个带有默认参数的变量。为了观察求解器在接近最小值0时的进展,优化函数的对数。

rng默认的%的再现性有趣= @ (x)日志(rastriginsfcn (x));据nvar = 10;选择= optimoptions (“遗传算法”“PlotFcn”“gaplotbestf”);[x, fval] = ga(有趣,据nvar ,[],[],[],[],[],[],[], 选项)
优化终止:适应度值的平均变化小于options.FunctionTolerance。

{

x =1×10-0.0495 -0.0670 -0.0485 0.0174 -0.0087 0.0275 -0.0383 0.0620 -1.0047 -0.0298
fval = 1.4540

作为遗传算法在原点接近最优点时,它停止。为了获得更好的解决方案,将失速生成限制设置为500,将生成限制设置为1000。

选择= optimoptions(选项,“MaxStallGenerations”, 500,“MaxGenerations”, 1000);rng默认的%的再现性[x, fval] = ga(有趣,据nvar ,[],[],[],[],[],[],[], 选项)
优化终止:超过最大代数。

{

x =1×100.0025 -0.0039 0.0021 -0.0030 -0.0053 0.0033 0.0080 0.0012 0.0006 0.0088
fval = -3.1467

这一次求解器更接近真正的最小值。

相关的话题

Baidu
map