《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 多元多峰值目标函数在MATLAB中的优化
多元多峰值目标函数在MATLAB中的优化
来源:微型机与应用2012年第10期
姚运萍1,2,王倩倩1,2
(1.兰州理工大学 数字制造技术与应用省部共建教育部重点实验室,甘肃 兰州730050; 2.兰州理
摘要: 采用MATLAB的遗传算法,利用强大的数学计算能力和遗传工具箱,在全局搜索空间内寻找极值点,能够有效地对多元多峰值函数进行优化,避免了利用传统优化方法在多元多峰值函数优化过程中陷入局部极值点的优化误区。同时简要介绍了遗传算法的特点、流程和优化工具箱,通过实际编程优化,说明基于MATLAB的遗传算法是一种具有良好的全局寻优的优化工具。
Abstract:
Key words :

摘  要: 采用MATLAB的遺傳算法,利用強大的數學計算能力和遺傳工具箱,在全局搜索空間內尋找極值點,能夠有效地對多元多峰值函數進行優(yōu)化,避免了利用傳統(tǒng)優(yōu)化方法在多元多峰值函數優(yōu)化過程中陷入局部極值點的優(yōu)化誤區(qū)。同時簡要介紹了遺傳算法的特點、流程和優(yōu)化工具箱,通過實際編程優(yōu)化,說明基于MATLAB的遺傳算法是一種具有良好的全局尋優(yōu)的優(yōu)化工具。
關鍵詞: 遺傳算法;全局尋優(yōu);多元多峰值函數優(yōu)化

    多元多峰值函數[1-2]在定義域內有多個局部極值點,許多傳統(tǒng)的優(yōu)化方法都是單點搜索,這種點對點的搜索方法,對于多元多峰值函數的搜索空間常常會陷入局部的某個單峰的極值點。相反,遺傳算法同時對群體中多個個體進行并行處理[3],即同時對搜索空間中的多個解進行評估,在搜索過程中能以很大的概率找到全局最優(yōu)。遺傳算法提供了一種求解非線性、多模型、多目標等復雜系統(tǒng)優(yōu)化問題的通用框架,它不依賴問題領域的具體性,已廣泛應用于眾多工程領域,用以解決多變量、多目標、多峰值等約束的優(yōu)化問題。
1 遺傳算法
1.1 遺傳算法的優(yōu)點

    (1)遺傳算法采用不確定性規(guī)則,強調利用概率轉換規(guī)則[4]來引導搜索過程;
    (2)遺傳算法隨機產生多個初始點,通過選擇、交叉和變異三種遺傳操作產生下一代種群;
    (3)遺傳算法具有較高的搜索能力和極強的魯棒性;
    (4)遺傳算法采用概率的變遷規(guī)則來指導其搜索方向[5],對一個被編碼的參數空間進行高效搜索;
    (5)遺傳算法是一個多學科相結合與滲透的產物,其研究方向極其廣泛。
1.2 遺傳算法運算流程
    完整的遺傳算法的運算流程可以用圖1來描述??梢钥闯?,使用上述三種遺傳算子(選擇、交叉和變異)的遺傳算法的主要運算過程如下:

    (1)編碼:遺傳算法在進行搜索之前先將解空間的解數據表示成遺傳空間的基因型串結構數據,這些串結構數據的不同組合就構成了不同的點。
    (2)初始群體的生成:隨機產生N個初始串結構數據,每個串結構數據成為一個個體,N個個體構成一個群體。設置進化代數計算器t(t>0)和最大進化代數T。
    (3)適應度值評價檢測:根據具體問題,計算群體P(t)中各個個體的適應度。
    (4)對群體中的個體施加遺傳操作:將選擇、交叉和變異三種遺傳算子作用于群體,實現群體內個體結構的重組處理。
    (5)終止條件判斷:若t≤T,則t←t+1,轉到步驟(2);若t>T,則以進化過程中所得到的具有最大適應度的個體作為最優(yōu)解輸出,終止運算。
2 基于MATLAB遺傳工具箱的多元多峰值優(yōu)化
    遺傳算法工具箱使用MATLAB矩陣函數為實現廣泛領域的遺傳算法建立了一套通用工具,這個遺傳算法工具是用M文件寫成的命令行形式的函數,是完成遺傳算法大部分重要功能的程序集合[6-8]。
    MATLAB遺傳工具箱主要參數含義:
    (1)“@fitnessfcn”:計算適應度函數值的M文件的函數句柄;
    (2)“nvars”:適應度函數中獨立變量的個數;
    (3)“x”:最終值的到達點;
    (4)“fval”:適應度函數在x點的值;
    (5)“reason”:算法停止的原因(可選項);
    (6)“output”:包含關于算法在每一代性能的結構體(可選項);
    (7)“population”:最后種群(可選項);
    (8)“option”:一個包含遺傳算法選項參數的結構體(可選項)。
    如果不設置選項函數,則遺傳算法使用其本身自帶的缺省選項值。該參數結構體的自帶默認值分別為:種群規(guī)模為20,最大代數為100,選擇概率為0.8,交叉概率為0.5,變異概率為0.2。也可通過gaoptimset函數改變默認值,以達到使用者的需求。

 



    (2)經過50次迭代后的目標函數值如圖4所示。此時,x1=-6.774 6,x2=-7.397 3,minf(x)=-178.519 1。
    (3)經過50次迭代后,種群目標函數均值的變化和最優(yōu)解的變化如圖5所示。


    本文采用基于MATLAB的遺傳算法,利用強大的數學計算能力和遺傳工具箱,在全局搜索空間內尋找極值點,能夠有效地對多元多峰值函數進行優(yōu)化,避免了利用傳統(tǒng)優(yōu)化方法在多元多峰值函數優(yōu)化過程中陷入局部極值點的優(yōu)化誤區(qū)。使用者可以避免維護遺傳算法種群和染色體的數據結構的繁重編程工作,節(jié)省了大量編程時間和精力,將精力集中在遺傳算法的改進和具體問題的應用中。
參考文獻
[1] 李敏強,寇紀淞,林丹,等.遺傳算法的基本理論與應用[M].北京:科學出版社,2003.
[2] 孫小軍,趙天緒,焦建民.多峰極值優(yōu)化問題的算法性能分析和比較[J].昆明理工大學學報(理工版),2009,34(5):104-107.
[3] 劉道華,原思聰,鄔長安,等.面向對象的改進遺傳算法優(yōu)化設計[J].華中科技大學學報(自然科學版),2008,36(7):89-92.
[4] 張曉偉,劉三陽,遲曉妮.高效求解多峰值全局優(yōu)化的區(qū)間-遺傳算法[J].吉林大學學報(工學版),2008,38(4):876-879.
[5] 黃江波,付志紅.基于自適應遺傳算法函數優(yōu)化與仿真[J].計算機仿真,2011,28(5):237-240.
[6] 雷英杰,張善文,李續(xù)武,等.MATLAB遺傳算法工具箱及應用[M].西安:西安電子科技大學出版社,2005.
[7] 劉文強,張曉偉.多峰值全局優(yōu)化的混合算法[J].計算機工程與應用,2008,44(3):43-45.
[8] 王社科.機械優(yōu)化設計[M].北京:國防工業(yè)出版社,2007.

此內容為AET網站原創(chuàng),未經授權禁止轉載。