沈曉芳


【摘要】遺傳算法對問題的依賴性小,是一種全局優化算法,可用于函數尋優。本文利用Maflab優化工具箱,有效地實現了用遺傳算法求解函數優化問題,實驗結果表明該算法收斂速度快,尋優性能良好。
【關鍵詞】遺傳算法 函數尋優 目標函數
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2015)03-0152-01
遺傳算法(Genetic Algorithm,GA)起始于20世紀60年代,主要由美國密執根大學的John Holland與同事和學生研究形成了較為完整的理論和方法,是一種重要的現代優化算法。遺傳算法對問題的依賴性小,是一種全局優化算法,所以在很多領域獲得了廣泛的應用。
遺傳算法基本思想:將“優勝劣汰,適者生存”的生物進化思想引入優化參數形成的編碼串聯群體中,按所選擇的適配值函數并通過遺傳中的選擇、交叉及變異對個體進行篩選,使適配值高的個體被保留下來,組成新的群體,這樣周而復始,群體中的個體適應度不斷升高,直到滿足一定的條件。遺傳算法的一個重要應用是函數尋優,該算法對于尋優的函數基本無限制,既不要求函數連續,更不要求函數可微;既可以是函數解析式所表達的顯函數,又可以是映射矩陣等隱函數,應用范圍很廣。
一、遺傳算法的實現
1.遺傳算法的應用步驟
(1)確定決策變量及各種約束條件,即確定出個體的表現型和問題的解空間。(2)建立優化模型,即確定出目標函數的類型及數學描述形式或量化方法。(3)確定表示可行解的染色體編碼方法,即確定出個體的基因型及遺傳算法的搜索空間。(4)確定解碼方法,即確定出由個體基因型到個體表現型的對應關系或轉化方法。(5)確定個體適應度的量化評價方法,即確定出由目標函數值到個體適應度函數的轉換規則。(6)設計遺傳算子,即確定選擇運算、交叉運算、變異運算等算子的具體操作方法。(7)確定遺傳算法的有關運行參數。
2.遺傳算法的操作
圖1 遺傳算法操作流程圖
3.遺傳算法工具箱
謝菲爾德(Sheffield)遺傳算法工具箱是英國謝菲爾德大學開發的遺傳算法工具箱,是用Matlab語言編寫的m文件,為用戶提供很多實用函數。常用函數:crtrp,crtbp(創建初始種群);ranking(適應度計算)select(選擇函數);xovsp(單點交叉);mutate(變異函數)Bs2rv(二進制轉換到實值)等等。
二、遺傳算法應用舉例
1.利用遺傳算法計算以下函數的最小值
f(x)=■,x∈[1,2] (1)
(1)選擇二進制編碼,遺傳算法參數設置如表1所示
表1:參數設置表
(2)仿真結果如圖2
圖2:目標函數圖及最優解的進化過程
函數優化問題是遺傳算法的經典應用領域,也是對遺傳算法進行性能評價的常用算例.Matlab軟件工具箱,是整個Matlab體系的基座。在Matlab環境中用遺傳算法實現函數優化問題,能有效地收斂到全局最優值,尋優性能良好。
參考文獻:
[1]孫增祈,鄧志東,張再興.智能控制理論與技術[M].第二版.清華大學出版社,2011.
[2]蔣冬初,何飛,向繼文.遺傳算法求解函數優化問題的Matlab實現[J].吉首大學學報. 2005,26(2):98-100.
[3]劉勇,劉寶坤,李光泉.基于Maflab平臺的遺傳算法工具包[J].天津大學學報.2001,34(4):48—51.