本节介绍一个例子,说明如何找出最小Rastrigin的功能,也就是通常用于测试遗传算法的功能。
对于两个独立的变量,Rastrigin的功能被定义为
全局优化工具箱软件包含了rastriginsfcn.m
文件,该文件计算Rastrigin函数的值。下图显示了Rastrigin的函数图。
正如图显示,Rastrigin的函数有很多局部极小,中图中的“低谷”。但是,该函数只有一个全局最小值,其发生在点[0 0]x - y平面,通过在图中的垂直线,其中该函数的值是0。在任何局部最小值比其他所指示的[0 0],Rastrigin的函数的值大于0越远局部最小值是从原点,该函数的值越大是在该点处。
Rastrigin的功能经常被用来测试遗传算法,因为它的许多局部极小很难让标准的,基于梯度的方法来寻找全局最小值。
下面是Rastrigin函数的等值线图,它显示了最大值和最小值的交替变化。
本节解释如何使用遗传算法找到Rastrigin函数的最小值。
由于遗传算法使用随机数生成器,该算法返回稍有不同的结果每次运行它。
要找到最小值,请执行以下步骤:
输入optimtool( 'GA')
在命令行打开优化应用程序。
在优化app中输入如下内容:
在里面适应度函数字段中输入@rastriginsfcn
。
在里面数量的变量字段中输入2
,表示Rastrigin函数的自变量个数。
的适应度函数和数量的变量字段应该如下图所示。
点击开始按钮运行求解程序并查看结果窗格,如下图所示。
当算法运行时当前迭代字段显示当前生成的数量。可以通过单击暂停按钮。当您这样做时,按钮名称将更改为恢复。要继续从您暂停处的算法,请点击恢复。
当算法完成时,运行求解程序并查看结果窗格显示如下图所示。您的数值结果可能与图中不同,因为遗传算法
是随机的。
显示如下:
为了找到最小的命令行Rastrigin的功能,输入
RNG(1, '捻线机')%的再现性[X,FVAL,exitflag] = GA(@ rastriginsfcn,2)
这将返回
终止优化:适应度值的平均变化小于选择。功能公差。x = -1.0421 -1.0018 fval = 2.4385 exitflag = 1
x
是由算法返回的最终点。
fval
为最后一点的适应度函数值。
exitflag
是对应于该算法终止的原因整数值。
由于遗传算法使用随机数生成器,该算法返回稍有不同的结果每次运行它。
优化应用程序绘制函数窗格使您能够显示各种绘图,这些绘图在遗传算法运行时提供有关它的信息。这些信息可以帮助您更改选项以提高算法的性能。例如,要绘制每一代适应度函数的最佳值和平均值,请选择旁边的框最好的健身,如下图所示。
当你点击开始,优化应用程序会显示每一代适应度函数的最佳值和均值。
当算法停止时,图如下图所示。
图底部的点表示最佳适应度值,而上面的点表示每一代适应度值的平均值。图的顶部还显示了当前这一代的最佳值和平均值。
为了更好地了解最佳适应度值减少了多少,您可以更改y-轴在绘图到对数缩放。要做到这一点,
选择轴属性来自编辑在“绘图”窗口中打开附加到“图形”窗口的属性编辑器的菜单,如下所示。
点击Y轴选项卡。
在里面Y轴刻度窗格中,选择日志。
现在,图显示如下图所示。
通常情况下,当个体远离最优值时,最佳适应度值会在早期迅速提高。最优适应度值在后代中改善较慢,其种群更接近最优值。
当您显示多个绘图区时,您可以在单独的窗口中打开一个较大版本的绘图区。右键单击(Ctrl点击的苹果系统)上,而情节的空白区域遗传算法
正在运行,或在它停止之后,并选择唯一的菜单项。
图解选项描述可以创建的绘图的类型。