最小化Rastrigin的功能

Rastrigin的功能

本节介绍一个例子,说明如何找出最小Rastrigin的功能,也就是通常用于测试遗传算法的功能。

对于两个独立的变量,Rastrigin的功能被定义为

R 一个 年代 ( x ) = 20. + x 1 2 + x 2 2 10 ( COS 2 π x 1 + COS 2 π x 2 )

全局优化工具箱软件包含了rastriginsfcn.m文件,该文件计算Rastrigin函数的值。下图显示了Rastrigin的函数图。

正如图显示,Rastrigin的函数有很多局部极小,中图中的“低谷”。但是,该函数只有一个全局最小值,其发生在点[0 0]x - y平面,通过在图中的垂直线,其中该函数的值是0。在任何局部最小值比其他所指示的[0 0],Rastrigin的函数的值大于0越远局部最小值是从原点,该函数的值越大是在该点处。

Rastrigin的功能经常被用来测试遗传算法,因为它的许多局部极小很难让标准的,基于梯度的方法来寻找全局最小值。

下面是Rastrigin函数的等值线图,它显示了最大值和最小值的交替变化。

求Rastrigin函数的最小值

本节解释如何使用遗传算法找到Rastrigin函数的最小值。

请注意

由于遗传算法使用随机数生成器,该算法返回稍有不同的结果每次运行它。

要找到最小值,请执行以下步骤:

  1. 输入optimtool( 'GA')在命令行打开优化应用程序。

  2. 在优化app中输入如下内容:

    • 在里面适应度函数字段中输入@rastriginsfcn

    • 在里面数量的变量字段中输入2,表示Rastrigin函数的自变量个数。

      适应度函数数量的变量字段应该如下图所示。

  3. 点击开始按钮运行求解程序并查看结果窗格,如下图所示。

    当算法运行时当前迭代字段显示当前生成的数量。可以通过单击暂停按钮。当您这样做时,按钮名称将更改为恢复。要继续从您暂停处的算法,请点击恢复

    当算法完成时,运行求解程序并查看结果窗格显示如下图所示。您的数值结果可能与图中不同,因为遗传算法是随机的。

    显示如下:

    • 算法终止时适应度函数的最终值为:

      目标函数值:5.550533778020394E -4-

      请注意,显示的数值非常接近Rastrigin的功能的实际最小值,这是0设置初始范围,设置突变量设置最大代数描述一些得到更接近实际最小值的结果的方法。

    • 该算法终止的原因。

      终止优化:超过最大代数。
    • 最后一点,在这个例子中是[-0.002 -0.001]

从命令行找到最小值

为了找到最小的命令行Rastrigin的功能,输入

RNG(1, '捻线机')%的再现性[X,FVAL,exitflag] = GA(@ rastriginsfcn,2)

这将返回

终止优化:适应度值的平均变化小于选择。功能公差。x = -1.0421 -1.0018 fval = 2.4385 exitflag = 1
  • x是由算法返回的最终点。

  • fval为最后一点的适应度函数值。

  • exitflag是对应于该算法终止的原因整数值。

请注意

由于遗传算法使用随机数生成器,该算法返回稍有不同的结果每次运行它。

显示图解

优化应用程序绘制函数窗格使您能够显示各种绘图,这些绘图在遗传算法运行时提供有关它的信息。这些信息可以帮助您更改选项以提高算法的性能。例如,要绘制每一代适应度函数的最佳值和平均值,请选择旁边的框最好的健身,如下图所示。

当你点击开始,优化应用程序会显示每一代适应度函数的最佳值和均值。

试试最小化Rastrigin的功能:

当算法停止时,图如下图所示。

图底部的点表示最佳适应度值,而上面的点表示每一代适应度值的平均值。图的顶部还显示了当前这一代的最佳值和平均值。

为了更好地了解最佳适应度值减少了多少,您可以更改y-轴在绘图到对数缩放。要做到这一点,

  1. 选择轴属性来自编辑在“绘图”窗口中打开附加到“图形”窗口的属性编辑器的菜单,如下所示。

  2. 点击Y轴选项卡。

  3. 在里面Y轴刻度窗格中,选择日志

    现在,图显示如下图所示。

    通常情况下,当个体远离最优值时,最佳适应度值会在早期迅速提高。最优适应度值在后代中改善较慢,其种群更接近最优值。

请注意

当您显示多个绘图区时,您可以在单独的窗口中打开一个较大版本的绘图区。右键单击(Ctrl点击的苹果系统)上,而情节的空白区域遗传算法正在运行,或在它停止之后,并选择唯一的菜单项。

图解选项描述可以创建的绘图的类型。

相关话题