的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
这一次,求解器更接近真正的最小值。