


摘? 要:為解決傳統人工魚群算法在求解高維問題時候,存在收斂速度慢且收斂精度不高的問題,提出一種多算法融合的改進人工魚群算法。通過引入粒子群優化算法的學習機制和遺傳算法的交叉變異迭代,提升算法的收斂速度和收斂精度。最后通過仿真實驗,驗證了PSO-GA-AFSA算法在高緯度尋優中具有更優的性能,同時又具有與傳統方法相融合的基礎,有著良好的應用前景。
關鍵詞:粒子群優化算法;人工魚群算法;遺傳算法;混合算法;算法融合
Abstract:In order to solve the problem of slow convergence speed and low convergence accuracy in solving high-dimensional problems of traditional artificial fish swarm calculations,an improved artificial fish swarm algorithm(PSO-GA-AFSA)with multiple algorithms fusion is proposed. By introducing the learning mechanism of PSO and the cross mutation iteration of GA,the convergence speed and accuracy of the algorithm are improved. Finally,through simulation experiments,it is verified that the PSO-GA-AFSA algorithm has better performance in high-latitude optimization,and at the same time has the basis of fusion with traditional methods,and has a good application prospect.
Keywords:PSO;AFSA;GA;hybrid algorithm;algorithm fusion
0? 引? 言
最優化問題涉及國民經濟的各個領域,例如:工業、農業、通信、化工、交通、國防等諸多領域,其對于推動社會經濟發展的重要性不言而喻。根據作者多年從事的興趣愛好研究得出:傳統的優化方法如黃金分割法、梯度下降法、擬牛頓法等,在面對這些復雜性高、非線性、變量維度高、多約束條件的項目問題時,不管在計算速度、結果的精度、魯棒性等方面遠遠不能滿足解決當前問題的需求。傳統智能算法如遺傳算法,模擬退火算法等雖然能較好解決優化問題,但也存在收斂速度慢,收斂精度低的問題。基于此,本文提出了以人工魚群算法(Artificial Fish Swarms Algorithm,AFSA)為框架,融合粒子群算法和遺傳算法的新型算法,同時解決收斂速度慢和精度低的問題。
1? 粒子群優化算法
粒子群優化(Particle Swarm Optimization,PSO)是Kennedy和Eberhart受人工生命研究結果的啟發、通過模擬鳥群覓食過程中的遷徙和群聚行為而提出的一種基于群體智能的全局隨機搜索算法。
在算法的進化過程中,粒子需要一直向兩個極值進行學習:一個是到個體歷史最優位置,即粒子自身迭代到當前位置時最優的位置記錄;另一個是種群歷史最優位置,即整個種群發展到當前出現過的全局最優位置。粒子通過這兩個“經驗”進行學習,不斷的改變自身的飛行方向和飛行速度,其速度和位置更新公式為:
其中, 為第t次迭代時候第id個粒子的速度,pid為第id個粒子的歷史最優位置,pgd為當前全局最優的位置, 為第t次迭代時候第id個粒子的位置信息,r1,r2為(0,1)之間的隨機數,c1和c2統稱為學習因子,c1學習因子主要負責該粒子向過去學習的權重,c2主要負責該粒子向全部他人學習的權重,其值一般取值為c1+c2=2。
2? 遺傳算法
遺傳算法(Genetic Algorithm,GA)是以達爾文的進化論和孟德爾的遺傳變異理論為科學理論依據的算法。
基礎遺傳算法的遺傳操作主要有三種:選擇操作、雜交操作和變異操作。接下來分別對這三種操作進行詳細介紹,以下的方法都在實數編碼的方式下進行。
2.1? 選擇操作
選擇操作(selection)提供了遺傳算法種群進化的驅動力,其作用是保證種群中的優良基因能延續遺傳給下一代,提高后代的適應能力,從而提高遺傳算法的全局收斂性,使算法收斂于全局最優解。
2.2? 交叉操作
交叉操作(crossover)通常先按照一定的選擇機制從群體中選擇兩個優秀的父輩個體,然后按照一定交叉策略來交換兩個個體的某個或某些位的基因信息。交叉算子的設計對遺傳算法的影響非常大,如果交叉算子涉及的基因位數太小,即基因重組減少,就不利于較優后代的產生,如果交叉算子太過于單一,也會造成算法搜索能力的減弱。因此交叉算子的制定需要根據實際問題來進行調整。
2.3? 變異操作
變異操作(mutation)可以增強算法的局部搜索能力并且也能很好的維持群體的多樣性,幫助算法逃離局部極值點。交叉和變異相互配合,共同完成對搜索空間的全局搜索和局部搜索,從而使遺傳算法能夠以良好的搜索性能完成最優化問題的尋優過程。
3? AFSA原理
在AFSA中,人工魚有3種基本行為:覓食、聚群、追尾。
3.1? 覓食行為
在求極大值問題中,設第i條人工魚在當前環境位置狀態向量為Xi,適應度值為Yi,在視野范圍Visual范圍內隨機選擇下一個位置的狀態向量為Xj,適應度值為Yj,若Yj>Yi,則該條人工魚朝著食物濃度更多(即可行解空間較優)的方向游動一步;如若Yj 3.2? 聚群行為 設第i只人工魚在當前環境狀態向量為Xi,適應度值為Yi,其視野范圍內(即di,j 3.3? 追尾行為 設第i只人工魚在當前狀態為Xi,適應度值為Yi,其視覺范圍內(即di,j 4? 多算法融合人工魚群算法 結合上面對各項算法的優劣勢的分析,本文提出了一種基于PSO和GA多算法融合的人工魚群智能優化算法(PSO-GA-AFSA)。為進一步提高算法的收斂速度,將PSO算法中的“社學認知”這一特點,引入到人工魚群中,讓魚群在每次做完行為選擇之后,同步向種群全體中最優個體進行學習,讓魚群中的所有個體都具有朝最優解方向的趨向性;為進一步克服算法陷入局部極值并增加算法的探索能力,將遺傳算法引入到人工魚群當中,并將該算法作為魚群的一個算子,魚群的繁殖遵循“精英繁殖策略”,即每一次迭代只有種群中適應度最高的個體,才有機會和其他人工魚進行交叉變異,即增強種群的多樣性也將上一代種群最優良個體的基因保留了下來;最后為了增加算法的收斂精度,為人工魚群引入依賴于迭代情況的自適應算子,讓算法在前期能以較大的步長和視野進行探索,在后期以很小的步長和視野進行探索,以增加收斂精度。PSO-GA-AFSA算法流程為: (1)設定算法參數包括人工魚條數為N,視野為V,步長為S,擁擠度因子為δ,最大嘗試次數為try_number,最大迭代次數為Tmax,學習參數為c1、c2; (2)計算適應度值,選出最優個體,并將最優個體更新到公告板上; (3)魚群模擬進行覓食,聚群,追尾行為,選擇最優行為后,結合PSO進行行為更新; (4)最優個體和其他個體進行交叉變異并更新種群; (5)更新種群適應度值并更新公告板; (6)所有人工魚新型更新完成之后,判斷是否達到最大迭代次數,如果否,則轉到(3)繼續,否則結束算法。 5? 仿真結果與分析 本文分別用4個多維度函數Sphere、Ackley、Levy、Griewank在20維的高維條件下測試算法的性能,并與自適應人工魚群和粒子群算法進行性能比較。表1展示了本文算法和AAFAS算法,PSO算法在4個測試函數下的最好,平均和最壞的變現情況。圖1展示了本文算法和其他算法的迭代速度對比。 從表1可以看出,本文提出的算法在收斂精度上面高于其他兩個算法很多個數量級,同時通過圖1可以明顯看出,混合算法在收斂的速度上面均優于或者等于其他兩個算法。 6? 結? 論 針對AFSA全局尋優能力不足,最后尋優精度低的問題,本文通過引入PSO的“自我認知”和“社會認知”來提升AFSA的全局尋優能力,同時引入遺傳算法的概念讓魚群能一直保持較高的多樣性,并且讓算法具有較好的性能穩定性。 參考文獻: [1] 吳愛燕.人工智能的未來與挑戰 [J].唐山學院學報,2009,22(6):69-71+100. [2] BONABEAU E,DORIGO M,THERAULAZ G.Inspiration for optimization from social insect behavior [J].Nature,2000,406(6791):39-42. [3] 張梅鳳.人工魚群智能優化算法的改進及應用研究 [D].大連:大連理工大學,2008. [4] 陳斐.改進的人工魚群算法分析與研究 [D].西安:西安電子科技大學,2012. [5] 李曉磊.一種新型的智能優化方法-人工魚群算法 [D].杭州:浙江大學,2003. [6] 范玉軍,王冬冬,孫明明.改進的人工魚群算法 [J].重慶師范大學學報(自然科學版),2007,24(3):23-26. [7] 張梅鳳.人工魚群智能優化算法的改進及應用研究 [D].大連:大連理工大學,2008. [8] 王培崇,雷鳳君,錢旭.改進人工魚群算法及其收斂性分析 [J].科學技術與工程,2013,13(3):616-620. [9] 葛君偉,郭強,方義秋.一種基于改進蟻群算法的多目標優化云計算任務調度策略 [J].微電子學與計算機,2017,34(11):63-67. 作者簡介:金曉波(1992—),男,漢族,浙江臺州人,碩士研究生,研究方向:大數據和智能優化算法。