遗传算法与直接搜索工具箱学习笔记 七-----模式搜索工作原理详解

 本节主要讲述模式搜索的工作细节。

   模式搜索算法就是寻找x0, x1, x2,…,这样的一系列的点,这些点逐渐在靠近最优值。在这个点的序列中,后一个点相对于前一个点在逐渐减小(轮询成功)或者保持不变(轮询失败)。本节就详细介绍在例子ps_example(笔记五)中寻找最优解过程的工作细节。

   为了描述上的简单,我们只考虑下面的情况:

1.使用GPS算法。

2.GPS算法使用的模式是最大正交基组成的模式。

3.在图形用户界面中MESH面板中,Scale设置为“off”

 

一、成功的轮询

GPS在提供的x0=[2.1 1.7]起始点开始运行。

1.1第一次迭代

      第一次迭代,网格尺寸(SIZE)是1,算法将起始点与模式向量相加,得到下面的结果

[1 0] + x0 = [3.1 1.7]
[0 1] + x0 = [2.1 2.7]
[-1 0] + x0 = [1.1 1.7]
[0 -1] + x0 = [2.1 0.7]

 

算法然后计算目标函数在网格点中的函数值,计算点的顺序就如上面式子的顺序。

下面的图形表示了起始点与网格点的目标函数值

网格点的值

算法开始轮询搜索网格点,因为x0=[2.1 1.7]点的函数值是4.6347,所以第一个比4.6247小的点是[1.1 1.7],这个点的函数值是4.5146,因此第一轮轮询是成功的,因此将当前点x1设为[1.1 1.7]。即x1=[1.1 1.7]。

1.2 第二次迭代

      经过一次成功的轮询,算法将当前的网格尺寸(1)乘以2,这样在本次的迭代中,网格尺寸将是2,有些人可能问了,算法中这个膨胀的倍数2是不是固定的,能不能修改呢?当然可以修改了,在optimtool操作界面中,在MESH面板中Expansion factor(膨胀系数)就是用来控制这个数字的。在第二次迭代过程中,网格包含以下的一些点。

2*[1 0] + x1 = [3.1 1.7]
2*[0 1] + x1 = [1.1 3.7]
2*[-1 0] + x1 = [-0.9 1.7]
2*[0 -1] + x1 = [1.1 -0.3]

按照第一步的方法,画出图形

在本次轮询中,发现点[-0.9 1.7]的函数值3.25比较优秀,因此x2=[-0.9 1.7]。因为本次轮询成功,所以算法在第三次迭代时,会将网格的尺寸变为4.

二、不成功的轮询

在算法进行第四次迭代时,x3 = [-4.9 1.7],此时网格尺寸是8,因此网格包含下面的点

8*[1 0] + x3 = [3.1 1.7]
8*[0 1] + x3 = [-4.9 9.7]
8*[-1 0] + x3 = [-12.9 1.7]
8*[0 -1] + x3 = [-4.9 -1.3]

下面的图显示了各个点的目标函数值

在本次轮询中,没有一个点的函数值能够比当前点的函数值还要小,因此轮询失败,当前点还是x3,没有发生改变,因此x4=x3.

在下一次迭代中,算法会首先将网格尺寸乘以0.5,然后再轮询网格点。这里的0.5叫收缩系数,这个系数可以在mesh面板中的Contraction factor 选项进行修改。

三、显示每步迭代的详细信息

其实算法每步迭代的详细信息都可以显示出来,可以通过设置Display to command window面板中Level of display为iterative。如下图

这将使你详细了解算法运行的详细过程

在命令窗口中显示的算法运行的详细过程是

Iter     f-count          f(x)      MeshSize     Method
    0        1        4.63474             1     
    1        4        4.29487             2     Successful Poll
    2        7       0.324468             4     Successful Poll
    3       11       0.324468             2     Refine Mesh
    4       15       0.324468             1     Refine Mesh

至于每一列的详细的介绍就不多介绍了,其中在Method列下面的Refine Mesh就是轮询失败的情况。

四、模式搜索的停止标准

      模式搜索挺值的标准都列在模式搜索图形用户界面的Stopping criteria面板中,见下图

在上面列举中的标准中,只要算法运行过程中,有一项符合标准,算法就会停止运行,并把停止运行的原因在运行结果的窗口告诉你。

 

 

好了,这一节到这里就结束吧,太长了,写的有点累了。

附注:本文为转载文章
原文出处:http://blog.csdn.net/niuyongjie/article/details/4868878
原作者:niuyongjie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值