遺傳演算法與直接搜尋工具箱學習筆記 七—–模式搜尋工作原理詳解

來源:互聯網
上載者:User

 本節主要講述模式搜尋的工作細節。

   模式搜尋演算法就是尋找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面板中,見

在上面列舉中的標準中,只要演算法運行過程中,有一項符合標準,演算法就會停止運行,並把停止啟動並執行原因在運行結果的視窗告訴你。

 

 

好了,這一節到這裡就結束吧,太長了,寫的有點累了。

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.