孫王杰,盧月亮,孫書貝,鞏曉悅
(1.吉林化工學(xué)院理學(xué)院,吉林吉林132022;2.吉林化工學(xué)院信息與控制工程學(xué)院,吉林吉林132022)
隨著應(yīng)用和需求的不斷擴(kuò)展,出現(xiàn)了一些新穎的優(yōu)化算法,如人工神經(jīng)網(wǎng)絡(luò)、混沌、遺傳算法、模擬退火、禁忌搜索等等.這些算法都是通過模擬或揭示某些自然現(xiàn)象或過程而得到發(fā)展的.在這期間群智能優(yōu)化算法也得到了較快發(fā)展,如粒子群算法、蟻群算法等等.2002年,李曉磊博士通過研究魚群的行為特點(diǎn)提出了一種新型的群智能優(yōu)化算法-人工魚群算法[1].人工魚根據(jù)環(huán)境的狀態(tài)通過它的四種行為來尋找最優(yōu)解[2],其中4種行為分別是覓食行為、追尾行為、聚群行為和隨機(jī)行為[3].
本文改進(jìn)了人工魚的覓食行為,將人工魚群算法與罰函數(shù)的理論結(jié)合來解決約束優(yōu)化問題.另外引入了吞噬行為以便加快收斂速度,得到更優(yōu)的適應(yīng)度值.仿真結(jié)果表明改進(jìn)的人工魚群算法在解決約束優(yōu)化問題時(shí),具有收斂速度快、適應(yīng)度值優(yōu)、全局尋優(yōu)性能強(qiáng)等優(yōu)點(diǎn),比基本人工魚群算法具有更好的性能.
人工魚(artificial fish,AF)是真實(shí)魚的一個(gè)虛擬實(shí)體,用來進(jìn)行問題的分析和說明.通過模擬魚類的四種行為:覓食行為、聚群行為、追尾行為和隨機(jī)行為,來使魚類活動(dòng)在周圍的環(huán)境.這些行為可以在不同的情況下相互轉(zhuǎn)換.
算法采用面對(duì)對(duì)象的技術(shù)重構(gòu)人工魚的模型,將人工魚封裝成變量和函數(shù)兩部分.變量部分包括人工魚的總數(shù)N/人工魚的個(gè)體的狀態(tài)X=(x1,x2,…,xn)[其中 xi(i=1,2,…,n)]為欲尋求的變量、人工魚群移動(dòng)的最大步長(zhǎng)Step、人工魚群的視野Visual、嘗試次數(shù)Try_number、擁擠度因子 δ、人工魚個(gè)體 i,j之間的距離 di,j=Xi-Xj.
函數(shù)部分包括人工魚當(dāng)前所在位置的食物濃度Y=f(X)(Y為目標(biāo)函數(shù)值)、人工魚的各種行為函數(shù)[覓食行為 Prey()、聚群行為Swarm()、追尾行為 Follow()、隨機(jī)行為Move().及行為評(píng)價(jià)函數(shù)Evaluate()].通過這種封裝,人工魚的狀態(tài)可以被其他同伴所感知.
在尋優(yōu)過程中,人工魚是通過Visual來確定視野范圍.當(dāng)在視野范圍內(nèi)如果尋找到比現(xiàn)在食物濃度高的位置時(shí),人工魚將移動(dòng)到那一位置.
其中X代表當(dāng)前尋優(yōu)的人工魚,XV代表在當(dāng)前人工魚X的Visual內(nèi)尋找到的下一點(diǎn),Step是人工魚的步長(zhǎng),Rand()是0到1上的隨機(jī)數(shù).
準(zhǔn)確地來講,人工魚是通過它的四種行為在其Visual內(nèi)尋找下一位置的.這四種行為分別是覓食行為、追尾行為、聚群行為和隨機(jī)行為.
1.1.1 覓食行為
這是人工魚的一種基本行動(dòng),也就是趨向食物的一種活動(dòng),一般我們認(rèn)為它是通過視覺或味覺來感知水中的食物量或濃度進(jìn)而來選擇趨向的.
行為描述:設(shè)人工魚i當(dāng)前狀態(tài)為Xi,在其感知范圍內(nèi)隨機(jī)選擇一個(gè)狀態(tài)Xj
式中,Rand()是一個(gè)介于0和1之間的隨機(jī)數(shù),如果在求極大值問題中,Yi<Yj(或求極小值Yj<Yi),則向該方向前進(jìn)一步
反之,再重新隨機(jī)選擇狀態(tài)Xj,判斷是否滿足前進(jìn)條件,反復(fù)嘗試Try_number次后,若仍不滿足前進(jìn)條件,則隨機(jī)一定一步
1.1.2 聚群行為
魚在游動(dòng)過程中會(huì)自然的聚集成群,這也是為了保證群體的生存和躲避危害而形成的一種生活習(xí)性.
行為描述:在人工魚群算法中對(duì)每條人工魚做如下規(guī)定:一是盡量向鄰近伙伴的中心移動(dòng);而是避免過分擁擠.
否則執(zhí)行覓食行為.
1.1.3 追尾行為
魚群在游動(dòng)過程中,當(dāng)其中的一條與或幾條魚發(fā)現(xiàn)食物時(shí),其鄰近的伙伴會(huì)尾隨其快速到達(dá)食物點(diǎn).
行為描述:追尾行為是一種向鄰近的有著最高適應(yīng)度的人工魚追逐的行為,在尋優(yōu)算法中可以理解為是向附近的最優(yōu)伙伴前進(jìn)的過程.設(shè)人工魚 i當(dāng)前狀態(tài)為 Xi,搜索當(dāng)前鄰域內(nèi)(dij<Visual)的伙伴中Yj為最大值的伙伴Xj.,表明伙伴X的狀態(tài)具有較高的食物j濃度并且周圍不太擁擠,則朝Xj的方向前進(jìn)一步
否則執(zhí)行覓食行為.
1.1.4 隨機(jī)行為
行為描述:
人工魚在視野中隨機(jī)選擇一個(gè)狀態(tài),然后向該狀態(tài)移動(dòng),其實(shí)是覓食行為的一個(gè)缺省行為.
這四種行為在不同條件下會(huì)相互轉(zhuǎn)換,魚類通過對(duì)行為的評(píng)價(jià)選擇一種當(dāng)前最優(yōu)的行為進(jìn)行執(zhí)行,已達(dá)到食物濃度更高的位置,這是魚類的生存習(xí)慣.
因?yàn)榛救斯~群算法存在保持探索與開發(fā)平衡的能力較差、算法運(yùn)行后期搜索的盲目性較大、尋優(yōu)結(jié)果精度低和運(yùn)算速度慢等缺點(diǎn),影響了其搜索質(zhì)量和效率.
1.2.1 改進(jìn)視野和步長(zhǎng)
一般來說,視野和步長(zhǎng)的選擇對(duì)算法的收斂速度有很大的影響.視野范圍較大有利于搜索全局最優(yōu)值,但是耗費(fèi)的系統(tǒng)資源比較多.然而視野范圍較小,耗費(fèi)的系統(tǒng)資源較少,但是全局尋優(yōu)就受到了限制.人工魚群算法是使用自適應(yīng)視野來尋優(yōu)的[4].在本文中,我們根據(jù)文獻(xiàn)[4]的理論,引入自適應(yīng)視野,并引入步長(zhǎng)因子,
得到自適應(yīng)步長(zhǎng).這樣可以根據(jù)迭代次數(shù)改變,視野進(jìn)行相應(yīng)的改變,既節(jié)省了系統(tǒng)的資源,又增加了全局的尋優(yōu)能力.
1.2.2 改進(jìn)覓食行為
執(zhí)行基本人工魚群算法的覓食行為時(shí),人工魚在尋找到比當(dāng)前位置較優(yōu)的位置時(shí),就向該位置的方向移動(dòng)一步.但是基本人工魚群算法突顯出的問題是每次覓食行為中Try_number僅僅被執(zhí)行了幾次,這樣大大的削弱了覓食行為的能力.基本覓食行為中人工魚較優(yōu)位置的方向上移動(dòng)時(shí)不能確定移動(dòng)到的那一位置比當(dāng)前位置優(yōu),所以傳統(tǒng)覓食行為既削弱了人工魚的覓食能力,又浪費(fèi)了系統(tǒng)的大量資源.針對(duì)傳統(tǒng)覓食行為的缺點(diǎn),我們對(duì)覓食行為進(jìn)行改進(jìn).在完全執(zhí)行Try_number次數(shù)之后,人工魚直接移動(dòng)到這一最優(yōu)的位置.
1.2.3 添加吞噬行為
在改進(jìn)覓食行為以后,我們可以引入吞噬行為來解決覓食行為執(zhí)行時(shí)間變長(zhǎng)的問題.吞噬行為是仿照自然界中優(yōu)勝劣汰的規(guī)律進(jìn)行改編的.在執(zhí)行程序幾次迭代后,較優(yōu)的人工魚把最不優(yōu)的人工魚吞噬掉,于是就節(jié)省了不優(yōu)人工魚的尋優(yōu)時(shí)間.
約束優(yōu)化最小化問題可以表示如下:
這里是x=(x1,…xn)T∈Rn是n維實(shí)向量,f(x)為目標(biāo)函數(shù),hi(x)為第i個(gè)等式的約束,gj(x)是第j個(gè)不等式的約束,xk變量在區(qū)間[,表示搜索空間.
在人工魚群算法中每個(gè)人工魚通過探索領(lǐng)域內(nèi)伙伴的變化情況和目標(biāo)函數(shù)的變化情況等環(huán)境狀態(tài)從而從以上幾種行為中選擇一種執(zhí)行經(jīng)過若干次的迭代搜索最后人工魚將聚集在極值的周圍.算法步驟如下:
Setp1.初始化參數(shù):人工魚總數(shù) M,視野Visual,步長(zhǎng)Step,步長(zhǎng)因子a,覓食行為的嘗試次數(shù)Try_number,迭代次數(shù)t,人工魚的初始位置等等.
Step2.選出在四種行為中適應(yīng)度值最優(yōu)的行為并執(zhí)行.在M個(gè)人工魚都執(zhí)行行為之后.選出最優(yōu)的人工魚與公告牌上的人工魚進(jìn)行比較,人工魚優(yōu)于公告牌則將自身所有屬性與公告牌上面的進(jìn)行替換,反之保留公告牌屬性.
Step3.進(jìn)行吞噬行為,去掉最不優(yōu)的人工魚.
Step4.經(jīng)過一次迭代之后保留公告牌的屬性,更新人工魚的數(shù)目.
Step5.如不滿足終止條件,返回step.2.
Step6.輸出人工魚的各項(xiàng)參數(shù)及最優(yōu)值的圖.
使用matlab7.0軟件,選取以下2個(gè)約束函數(shù)進(jìn)行測(cè)試這些都是帶有非線性約束的目標(biāo)規(guī)劃問題[5-6],兩個(gè)測(cè)試函數(shù)如下所示:
用基本人工魚群和改進(jìn)的人工魚群測(cè)試函數(shù)(9)的結(jié)果如圖1所示
圖1 x1和x2的值
圖1中可以看出,基本AFSA和IAFSA的x1和x2都滿足大于0小于6的約束條件.從圖2和圖3中,我們可以清楚的知道IAFSA滿足C1、C2兩個(gè)約束條件的性能較強(qiáng).圖4中IAFSA的適應(yīng)度值與文獻(xiàn)[4]中提出的適應(yīng)度值相等,并且從圖4中我們可以看出改進(jìn)的人工魚群算法在第3次迭代時(shí)就獲得了最優(yōu)適應(yīng)度值.
圖2 基本AFSA和IAFSA滿足約束條件c1的情況
圖3 基本AFSA和IAFSA滿足約束條件c2的情況
圖4 基本AFSA和IAFSA的適應(yīng)度值
圖5 x1和x2的值
用基本人工魚群和改進(jìn)的人工魚群測(cè)試函數(shù)(10)的結(jié)果如圖5所示.
圖5 x1和x2的值
圖6 基本AFSA和IAFSA滿足約束條件c1的情況
圖7 基本AFSA和IAFSA滿足約束條件c2的情況
圖8 基本AFSA和IAFSA的適應(yīng)度值
圖5(a)和5(b)中我們可以看出,基本AFSA和IAFSA的x1和x2都滿足大于0小于10的約束條件.從圖6和圖7中,我們可以清楚的知道IAFSA滿足C1、C2兩個(gè)約束條件的性能較強(qiáng).圖8中基本AFSA和IAFSA的最優(yōu)適應(yīng)度值都與文獻(xiàn)[10]中提出的適應(yīng)度值相等,并且從圖8中我們可以看出改進(jìn)的人工魚群算法在第3次迭代時(shí)就獲得了最優(yōu)適應(yīng)度值.而基本AFSA在第5次迭代才獲得最優(yōu)適應(yīng)度值.
人工魚群算法是一種相對(duì)新型的群集智能算法該文在描述了人工魚群算法的基本原理的基礎(chǔ)上研究了如何使用該算法解決約束函數(shù)優(yōu)化問題.在基本人工魚群算法的基礎(chǔ)上,改進(jìn)了人工魚的覓食行為,另外引入了吞噬行為,加快了收斂速度,得到了更優(yōu)的適應(yīng)度值,具有更快的收斂速度,比基本人工魚群算法具有更好的性能.
[1] 李曉磊,錢積新.人工魚群算法:自上而下的尋優(yōu)模式[J].系統(tǒng)工程理論與實(shí)踐,2002,2(3):76-82.
[2] 李曉磊.一種新型的智能優(yōu)化方法——人工魚群算法[D].杭州:浙江大學(xué),2003.
[3] 李曉磊,邵之江,錢積新.一種基于動(dòng)物自治體的尋優(yōu)模式:魚群算法[J].系統(tǒng)工程理論和實(shí)踐,2002,22(11):32-28.
[4] 王錫淮,鄭曉明,肖建梅.求解約束優(yōu)化問題的人工魚群算法[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(3):40-42.
[5] Yanbin Gao,Lianwu Guan,Tingjun Wang,et al.Research on the Calibration of FOG Based on AFSA”[J].IEEE ICMA inter.Con.2013:412-417
[6] Deb K.An efficient constraint handling method for genetic algorithms[J].Computer Methods in Applied Mechanics and Engineering,2000,186(2):311-338.
[7] Dong Ying,Tang Jia-fu,Xu Bao-dong,et al.An application of swarm optimization to nonlinear programming[J].Computers and Mathematics with Applications,2005,49:1655-1668.