设置最大代数和失速代数
的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
这一次求解器更接近真正的最小值。