姚運萍 ,王倩倩
(1.蘭州理工大學 數(shù)字制造技術(shù)與應(yīng)用省部共建教育部重點實驗室,甘肅 蘭州730050;2.蘭州理工大學 機電工程學院,甘肅 蘭州730050)
多元多峰值函數(shù)[1-2]在定義域內(nèi)有多個局部極值點,許多傳統(tǒng)的優(yōu)化方法都是單點搜索,這種點對點的搜索方法,對于多元多峰值函數(shù)的搜索空間常常會陷入局部的某個單峰的極值點。相反,遺傳算法同時對群體中多個個體進行并行處理[3],即同時對搜索空間中的多個解進行評估,在搜索過程中能以很大的概率找到全局最優(yōu)。遺傳算法提供了一種求解非線性、多模型、多目標等復(fù)雜系統(tǒng)優(yōu)化問題的通用框架,它不依賴問題領(lǐng)域的具體性,已廣泛應(yīng)用于眾多工程領(lǐng)域,用以解決多變量、多目標、多峰值等約束的優(yōu)化問題。
(1)遺傳算法采用不確定性規(guī)則,強調(diào)利用概率轉(zhuǎn)換規(guī)則[4]來引導(dǎo)搜索過程;
(2)遺傳算法隨機產(chǎn)生多個初始點,通過選擇、交叉和變異三種遺傳操作產(chǎn)生下一代種群;(3)遺傳算法具有較高的搜索能力和極強的魯棒性;(4)遺傳算法采用概率的變遷規(guī)則來指導(dǎo)其搜索方向[5],對一個被編碼的參數(shù)空間進行高效搜索;
(5)遺傳算法是一個多學科相結(jié)合與滲透的產(chǎn)物,其研究方向極其廣泛。
完整的遺傳算法的運算流程可以用圖1來描述??梢钥闯?,使用上述三種遺傳算子(選擇、交叉和變異)的遺傳算法的主要運算過程如下:
圖1 遺傳算法運算流程圖
(1)編碼:遺傳算法在進行搜索之前先將解空間的解數(shù)據(jù)表示成遺傳空間的基因型串結(jié)構(gòu)數(shù)據(jù),這些串結(jié)構(gòu)數(shù)據(jù)的不同組合就構(gòu)成了不同的點。
(2)初始群體的生成:隨機產(chǎn)生N個初始串結(jié)構(gòu)數(shù)據(jù),每個串結(jié)構(gòu)數(shù)據(jù)成為一個個體,N個個體構(gòu)成一個群體。設(shè)置進化代數(shù)計算器t(t>0)和最大進化代數(shù)T。
(3)適應(yīng)度值評價檢測:根據(jù)具體問題,計算群體P(t)中各個個體的適應(yīng)度。
(4)對群體中的個體施加遺傳操作:將選擇、交叉和變異三種遺傳算子作用于群體,實現(xiàn)群體內(nèi)個體結(jié)構(gòu)的重組處理。
(5)終止條件判斷:若 t≤T,則 t←t+1,轉(zhuǎn)到步驟(2);若t>T,則以進化過程中所得到的具有最大適應(yīng)度的個體作為最優(yōu)解輸出,終止運算。
遺傳算法工具箱使用MATLAB矩陣函數(shù)為實現(xiàn)廣泛領(lǐng)域的遺傳算法建立了一套通用工具,這個遺傳算法工具是用M文件寫成的命令行形式的函數(shù),是完成遺傳算法大部分重要功能的程序集合[6-8]。
MATLAB遺傳工具箱主要參數(shù)含義:
(1)“@fitnessfcn”:計算適應(yīng)度函數(shù)值的M文件的函數(shù)句柄;
(2)“nvars”:適應(yīng)度函數(shù)中獨立變量的個數(shù);
(3)“x”:最終值的到達點;
(4)“fval”:適應(yīng)度函數(shù)在 x 點的值;
(5)“reason”:算法停止的原因(可選項);
樞紐錨固是在對外客運樞紐布局的基礎(chǔ)上,充分發(fā)揮城市交通網(wǎng)絡(luò)的功能,如道路、軌道交通等。在對外客運樞紐設(shè)計中,發(fā)揮錨固區(qū)域交通網(wǎng)絡(luò)的作用,如高速公路、干線公路、城際公路、鐵路以及公路客運班線等。因此,城市綜合客運樞紐的錨固能夠為人民群眾出行的便捷性提供保障。
(6)“output”:包含關(guān)于算法在每一代性能的結(jié)構(gòu)體(可選項);
(7)“population”:最后種群(可選項);
(8)“option”:一個包含遺傳算法選項參數(shù)的結(jié)構(gòu)體(可選項)。
如果不設(shè)置選項函數(shù),則遺傳算法使用其本身自帶的缺省選項值。該參數(shù)結(jié)構(gòu)體的自帶默認值分別為:種群規(guī)模為 20,最大代數(shù)為 100,選擇概率為 0.8,交叉概率為0.5,變異概率為0.2。也可通過gaoptimset函數(shù)改變默認值,以達到使用者的需求。
目標函數(shù)及函數(shù)的約束條件:
圖2所示為目標函數(shù)的函數(shù)圖像。
圖2 目標函數(shù)圖像
遺傳算法顯示結(jié)果如下:
(1)經(jīng)過10次迭代后的目標函數(shù)值如圖3所示。此時,x1=-6.785 1,x2=-7.426 8,minf(x)=-176.621 1。
圖3 經(jīng)過10次迭代后的結(jié)果
(2)經(jīng)過50次迭代后的目標函數(shù)值如圖4所示。此時,x1=-6.774 6,x2=-7.397 3,minf(x)=-178.519 1。
(3)經(jīng)過50次迭代后,種群目標函數(shù)均值的變化和最優(yōu)解的變化如圖5所示。
本文采用基于MATLAB的遺傳算法,利用強大的數(shù)學計算能力和遺傳工具箱,在全局搜索空間內(nèi)尋找極值點,能夠有效地對多元多峰值函數(shù)進行優(yōu)化,避免了利用傳統(tǒng)優(yōu)化方法在多元多峰值函數(shù)優(yōu)化過程中陷入局部極值點的優(yōu)化誤區(qū)。使用者可以避免維護遺傳算法種群和染色體的數(shù)據(jù)結(jié)構(gòu)的繁重編程工作,節(jié)省了大量編程時間和精力,將精力集中在遺傳算法的改進和具體問題的應(yīng)用中。
圖4 經(jīng)過50次迭代后的結(jié)果
圖5 經(jīng)過50次迭代后種群目標函數(shù)均值的變化和最優(yōu)解的變化
[1]李敏強,寇紀淞,林丹,等.遺傳算法的基本理論與應(yīng)用[M].北京:科學出版社,2003.
[2]孫小軍,趙天緒,焦建民.多峰極值優(yōu)化問題的算法性能分析和比較[J].昆明理工大學學報(理工版),2009,34(5):104-107.
[3]劉道華,原思聰,鄔長安,等.面向?qū)ο蟮母倪M遺傳算法優(yōu)化設(shè)計[J].華中科技大學學報(自然科學版),2008,36(7):89-92.
[4]張曉偉,劉三陽,遲曉妮.高效求解多峰值全局優(yōu)化的區(qū)間-遺傳算法[J].吉林大學學報(工學版),2008,38(4):876-879.
[5]黃江波,付志紅.基于自適應(yīng)遺傳算法函數(shù)優(yōu)化與仿真[J].計算機仿真,2011,28(5):237-240.
[6]雷英杰,張善文,李續(xù)武,等.MATLAB遺傳算法工具箱及應(yīng)用[M].西安:西安電子科技大學出版社,2005.
[7]劉文強,張曉偉.多峰值全局優(yōu)化的混合算法[J].計算機工程與應(yīng)用,2008,44(3):43-45.
[8]王社科.機械優(yōu)化設(shè)計[M].北京:國防工業(yè)出版社,2007.