遺傳演算法與直接搜尋工具箱學習筆記 二—–編寫自己的目標函數

來源:互聯網
上載者:User

 這一部分主要講解如何寫自己的目標函數。什麼事目標函數呢?你使用遺傳演算法工具箱主要是想找到某一個函數的最優解吧,那麼這個函數就是目標函數。這個函數你必須寫成一個M檔案的形式。這樣才能符合遺傳演算法工具箱的要求,當然要求不僅僅這些,還有下面的一些要求:

     該函數應該接受一個向量作為輸入參數,該向量的長度應該等於目標函數中獨立變數的個數,該函數應該返回一個標量,這個標量應該是這個輸入參數相對應的函數值。下面就示範一個目標函數的寫法。假設你想最佳化下面的函數。

這個函數有兩個獨立的變數x1,x2.所以你的函數的輸入參數應該是一個1X2的向量。好了,理解清楚了,下面就開始寫函數了

1.點擊"File",選擇"new"中的"Function M-File",出現matlab的文字編輯器介面,將你的內容改成的樣子,呵呵。

2.儲存檔案,一定要儲存呀。

3.測試你編寫的函數。

在matlab中輸入myTest([2 3]),斷行符號。出現

ans =

    -5
恭喜你,你編寫的函數正確,不然,你就要好好檢查你剛才的目標函數的M檔案了。

順便也畫出這個目標函數的圖形。

 

遺傳演算法工具箱在使用的時候,對目標函數的最佳化方向是什嗎?也就是這些工具對目標函數是求最大值還是求最小值呢?答案是:最小值。所以你如果相求一個函數的最大值的話,那麼你必須修改原有的目標函數,讓這個目標函數的最小值恰恰就是你想要的最大值,這個很簡單了,前面加一個負號(-),一下子就變過來了。當然方法還有很多,相信自己,你會有更加絕妙的辦法,哈哈。詳細的就不說了,等著下一次的文章吧。

 

 

聯繫我們

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