遗传算法与直接搜索工具箱学习笔记 六-----模式搜索相关术语解析

来源:互联网 发布:冒险岛v矩阵 编辑:程序博客网 时间:2024/05/16 06:38

本节将解释三个相关的术语:模式、网格、轮询(Polling) 

一、模式(Patterns)

     一个模式是矢量vj的一组集合{vj}。模式在搜索算法中主要是决定在算法的下一次迭代中要搜索哪些点。集合{vj}由两个因素决定,一个就是目标函数中独立变量的个数N,另一个就是正交基的集合。在模式搜索算法中,有两个经常使用的正交基集合,一个是具有2N个元素个数的最大正交基集合,一个是具有N+1个元素个数的最小正交基集合。

    对于GPS方法,形成模式的矢量集合是由固定方向的矢量组成的。例如,如果在一个优化问题中有3个独立变量。缺省的由2N个正交基组成的模式如下:

由N+1个正交基组成的模式如下

对于MADS算法来说,组成模式的矢量集合是由算法随机选择产生的。根据轮询的选择方法,被选择的矢量个数将是2N或者N+1个。

在GPS中2N个矢量分为N个矢量以及N个相反的矢量,N+1个矢量分为N个矢量以及与上面的N个矢量的和相反的矢量。

二、网格(Mesh)

      在模式搜索的每一步中都会搜索一系列称为“网格”的点。在这些点中寻找能够改善目标函数的点。GPS与MADS算法都是通过下面的方法生成网格的。

1.给模式中的每个矢量vj乘以一个标量m,进而得到矢量dj的集合{dj}。称这个标量m为网格尺寸(Mesh size)。

2.增加{di}到当前点中,di是在上一步算法中找到的最优解。

举一个例子吧,上面干巴巴的全是理论了,在GPS算法中,假设当前点是[1.6 3.4],模式是

当前的网格的尺寸是4.

将模式乘以4,然后加上当前点就得到网格。

三、轮询(polling)

      算法会逐个计算网格(mesh)中的点,如果在这些点中找到了比当前点的目标函数值还好的点,我们称这次轮询是成功的。如果在网格的点中没有找到比当前点更好的点,称这次轮询是失败的。如果在一次成功的轮询中,找到了多个比当前点还优秀的点,那么该把哪个点去替换当前点呢?

     在算法中有一个选项叫“Complete poll”,默认的设置是“off”,在默认情况下,算法逐个计算网格中的点,如果找到了比“当前点”优秀的点,那么算法将停止轮询,而直接把这个点替换为“当前点”。如果“Complete poll”这个选项设置为“on”,那么算法将会逐个轮询网格中的所有点,在找到的所有比“当前点”优秀的点中,把具有最小目标函数值的点替换“当前点”。

    如果某次轮询是失败的,那么算法将会如何运行呢?轮询失败以后,“当前点”不会发生改变呢,但是算法会把网格尺寸m乘以0.5,生成新的网格,继续轮询。如果轮询成功以后,算法会把网格尺寸m乘以2,然后算法继续运行。所以,算法就是在网格变大变小的过程中逐步前进的。

 

 

 

 

 

原创粉丝点击