多元多峰值目標(biāo)函數(shù)在MATLAB中的優(yōu)化
摘 要: 采用MATLAB的遺傳算法,利用強(qiáng)大的數(shù)學(xué)計(jì)算能力和遺傳工具箱,在全局搜索空間內(nèi)尋找極值點(diǎn),能夠有效地對(duì)多元多峰值函數(shù)進(jìn)行優(yōu)化,避免了利用傳統(tǒng)優(yōu)化方法在多元多峰值函數(shù)優(yōu)化過程中陷入局部極值點(diǎn)的優(yōu)化誤區(qū)。同時(shí)簡(jiǎn)要介紹了遺傳算法的特點(diǎn)、流程和優(yōu)化工具箱,通過實(shí)際編程優(yōu)化,說明基于MATLAB的遺傳算法是一種具有良好的全局尋優(yōu)的優(yōu)化工具。
關(guān)鍵詞: 遺傳算法;全局尋優(yōu);多元多峰值函數(shù)優(yōu)化
多元多峰值函數(shù)[1-2]在定義域內(nèi)有多個(gè)局部極值點(diǎn),許多傳統(tǒng)的優(yōu)化方法都是單點(diǎn)搜索,這種點(diǎn)對(duì)點(diǎn)的搜索方法,對(duì)于多元多峰值函數(shù)的搜索空間常常會(huì)陷入局部的某個(gè)單峰的極值點(diǎn)。相反,遺傳算法同時(shí)對(duì)群體中多個(gè)個(gè)體進(jìn)行并行處理[3],即同時(shí)對(duì)搜索空間中的多個(gè)解進(jìn)行評(píng)估,在搜索過程中能以很大的概率找到全局最優(yōu)。遺傳算法提供了一種求解非線性、多模型、多目標(biāo)等復(fù)雜系統(tǒng)優(yōu)化問題的通用框架,它不依賴問題領(lǐng)域的具體性,已廣泛應(yīng)用于眾多工程領(lǐng)域,用以解決多變量、多目標(biāo)、多峰值等約束的優(yōu)化問題。
1 遺傳算法
1.1 遺傳算法的優(yōu)點(diǎn)
(1)遺傳算法采用不確定性規(guī)則,強(qiáng)調(diào)利用概率轉(zhuǎn)換規(guī)則[4]來(lái)引導(dǎo)搜索過程;
(2)遺傳算法隨機(jī)產(chǎn)生多個(gè)初始點(diǎn),通過選擇、交叉和變異三種遺傳操作產(chǎn)生下一代種群;
(3)遺傳算法具有較高的搜索能力和極強(qiáng)的魯棒性;
(4)遺傳算法采用概率的變遷規(guī)則來(lái)指導(dǎo)其搜索方向[5],對(duì)一個(gè)被編碼的參數(shù)空間進(jìn)行高效搜索;
(5)遺傳算法是一個(gè)多學(xué)科相結(jié)合與滲透的產(chǎn)物,其研究方向極其廣泛。
1.2 遺傳算法運(yùn)算流程
完整的遺傳算法的運(yùn)算流程可以用圖1來(lái)描述??梢钥闯觯褂蒙鲜鋈N遺傳算子(選擇、交叉和變異)的遺傳算法的主要運(yùn)算過程如下:
(1)編碼:遺傳算法在進(jìn)行搜索之前先將解空間的解數(shù)據(jù)表示成遺傳空間的基因型串結(jié)構(gòu)數(shù)據(jù),這些串結(jié)構(gòu)數(shù)據(jù)的不同組合就構(gòu)成了不同的點(diǎn)。
(2)初始群體的生成:隨機(jī)產(chǎn)生N個(gè)初始串結(jié)構(gòu)數(shù)據(jù),每個(gè)串結(jié)構(gòu)數(shù)據(jù)成為一個(gè)個(gè)體,N個(gè)個(gè)體構(gòu)成一個(gè)群體。設(shè)置進(jìn)化代數(shù)計(jì)算器t(t>0)和最大進(jìn)化代數(shù)T。
(3)適應(yīng)度值評(píng)價(jià)檢測(cè):根據(jù)具體問題,計(jì)算群體P(t)中各個(gè)個(gè)體的適應(yīng)度。
(4)對(duì)群體中的個(gè)體施加遺傳操作:將選擇、交叉和變異三種遺傳算子作用于群體,實(shí)現(xiàn)群體內(nèi)個(gè)體結(jié)構(gòu)的重組處理。
(5)終止條件判斷:若t≤T,則t←t+1,轉(zhuǎn)到步驟(2);若t>T,則以進(jìn)化過程中所得到的具有最大適應(yīng)度的個(gè)體作為最優(yōu)解輸出,終止運(yùn)算。
2 基于MATLAB遺傳工具箱的多元多峰值優(yōu)化
遺傳算法工具箱使用MATLAB矩陣函數(shù)為實(shí)現(xiàn)廣泛領(lǐng)域的遺傳算法建立了一套通用工具,這個(gè)遺傳算法工具是用M文件寫成的命令行形式的函數(shù),是完成遺傳算法大部分重要功能的程序集合[6-8]。
MATLAB遺傳工具箱主要參數(shù)含義:
(1)“@fitnessfcn”:計(jì)算適應(yīng)度函數(shù)值的M文件的函數(shù)句柄;
(2)“nvars”:適應(yīng)度函數(shù)中獨(dú)立變量的個(gè)數(shù);
(3)“x”:最終值的到達(dá)點(diǎn);
(4)“fval”:適應(yīng)度函數(shù)在x點(diǎn)的值;
(5)“reason”:算法停止的原因(可選項(xiàng));
(6)“output”:包含關(guān)于算法在每一代性能的結(jié)構(gòu)體(可選項(xiàng));
(7)“population”:最后種群(可選項(xiàng));
(8)“option”:一個(gè)包含遺傳算法選項(xiàng)參數(shù)的結(jié)構(gòu)體(可選項(xiàng))。
如果不設(shè)置選項(xiàng)函數(shù),則遺傳算法使用其本身自帶的缺省選項(xiàng)值。該參數(shù)結(jié)構(gòu)體的自帶默認(rèn)值分別為:種群規(guī)模為20,最大代數(shù)為100,選擇概率為0.8,交叉概率為0.5,變異概率為0.2。也可通過gaoptimset函數(shù)改變默認(rèn)值,以達(dá)到使用者的需求。