遺傳演算法與直接搜尋工具箱學習筆記 九—–遺傳演算法舉例

來源:互聯網
上載者:User

 下面就舉一個遺傳演算法的具體執行個體,求Rastrigin函數的最小值。

1.Rastrigin's 函數

     在遺傳演算法中,經常使用一個函數來測試遺傳演算法,這個函數就是Rastrigin函數,對於有兩個獨立變數的

Rastrigin函數,其定義的形式如下:

   

遺傳演算法工具箱中提供了一個M檔案,就是這個函數的實現,這個檔案是rastriginsfcn.m。下面是具有兩個獨立變數的Rastrigin函數圖形。

在圖形化表示中,該函數有非常多的局部極小點,而僅僅只有一個全域最小點,這個點就是[0  0],在這個點處的函數的值為0,該函數被用來測試遺傳演算法的主要原因是,對於傳統的基於梯度的演算法對付這個具有非常多局部極小點的函數來說,那是十分的困難呀。

下面給出該函數的等高線圖

2.尋找Rastrigin函數的最小值

     本小節主要講述如何利用遺傳演算法來尋找Rastrigin函數的最小值。

    2.1在命令列視窗輸入optimtool('ga')開啟最佳化工具的圖形介面

    2.2在
Fitness function
函數地區輸入函數控制代碼@rastriginsfcn

    2.3在
Number
of variables輸入獨立變數的個數2

   

    2.4點擊“start”按鈕,開始演算法的運行

   

當演算法運行時,在Current
iteration

地區會顯示當前迭代的次數,你可以使用Pause,stop按鈕,暫停或者

停止演算法的運行。當演算法運行結束以後,在Run solver
and view results

地區會顯示啟動並執行結果。

演算法啟動並執行最後的結果是:Objective function value: 0.005160573464458196

取得該值時的點是[0.002 0.005]。演算法停止的原因是:average change in the fitness value less than options.TolFun.(適應度函數值的平均變化小於TolFun這個參數)。


3、使用命令列的方式來搜尋函數的最小值

    在命令列中,輸入下面的命令:

   [x fval exitflag] = ga(@rastriginsfcn, 2)

演算法啟動並執行結果如下所示:

Optimization terminated: average change in the fitness value less than options.TolFun.

x =

    0.0000    0.0122

fval =

    0.0294

exitflag =

     1
上面結果各個欄位的意義就不過多解釋了,相信你能看懂。


4、圖形的顯示

   在圖形化操作介面中,有一個
Plot functions
面板,在該面板中可以顯示出各種關於遺傳演算法資訊的圖形化表示,這些資訊能夠協助你調整演算法的選型,進而來提高演算法啟動並執行效果。例如,可以繪製出每次迭代過程中適應度函數的最優值與平均值,在面板中選擇
Best fitness
選項。

當你點擊“Start”按鈕時,適應度函數的最優值與平均值會在一個圖形視窗不斷的繪製出,等演算法運行結束,繪製的圖形如下所示。

在圖形中上面藍色的點表示適應度函數平均值的變化,而下面黑色的點表示了,每次迭代中最佳適應度值的變化。


 因為遺傳演算法中很多地方使用了隨機的實現,所以每次啟動並執行結果可能都不太一樣,這個屬於正常現象,如果你為了這個而大驚小怪,或者懷疑運行結果有問題,那麼你應該看看有關遺傳演算法理論方面的知識。 



 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.