學號:22021110314? ?姓名:李詩瑤
【嵌牛導讀】:粒子群優化(PSO)算法是一種新興的優化技術,其思想來源于人工生命和進化計算理論。粒子群優化通過粒子追隨自己找到的最好解和整個群的最好解來完成優化。該算法簡單易實現,可調參數少,已得到廣泛研究和應用。本文簡單介紹粒子群優化算法的基本原理及應用,并對其未來發展提出了見解。
【嵌牛鼻子】:粒子群優化 演化計算 群體智能
【嵌牛提問】:什么是群體智能優化算法?粒子群是什么?
【嵌牛正文】:
一、粒子群優化算法
粒子群算法,也稱粒子群優化算法或鳥群覓食算法(Particle Swarm Optimization),縮寫為PSO,是由J. Kennedy和R. C. Eberhart等開發的一種新的進化算法(Evolutionary
Algorithm -EA)。PSO算法屬于進化算法的一種,和模擬退火算法相似,它也是從隨機解出發,通過迭代尋找最優解,它也是通過適應度來評價解的品質,但它比遺傳算法規則更為簡單,它沒有遺傳算法的“交叉”(Crossover)和“變異”(Mutation)操作,它通過追隨當前搜索到的最優值來尋找全局最優。這種算法以其實現容易、精度高、收斂快等優點引起了學術界的重視,并且在解決實際問題中展示了其優越性。
粒子群優化算法是基于群體的演化算法,其思想來源于人工生命和演化計算理論。Reynolds對鳥群飛行的研究發現,鳥僅僅是追蹤它有限數量的鄰居,但最終的整體結果是整個鳥群好像在一個中心的控制之下,即復雜的全局行為是由簡單規則的相互作用引起的。
PSO即源于對鳥群捕食行為的研究,一群鳥在隨機搜尋食物,如果這個區域里只有一塊食物,那么找到食物的最簡單有效的策略就是搜尋目前離食物最近的鳥的周圍區域。PSO算法就是從這種模型中得到啟示而產生的,并用于解決優化問題。另外,人們通常是以他們自己及他人的經驗來作為決策的依據,這就構成了PSO的一個基本概念[2]。
PSO中,每個優化問題的解看作搜索空間中的一只鳥(即粒子),所有的粒子都有一個被優化的函數決定的當前位置的適應值x,并且有一個速度v決定它們飛翔的方向和速率,粒子們追隨當前的最優粒子在解空間中搜索。
算法首先初始化一群隨機粒子,然后通過迭代找到最優解。在每一次迭代中,粒子通過跟蹤兩個“極值”即個體極值和全局極值來更新自己的速度與位置。在D維目標搜索空間中,由種群數為m的粒子組成粒子群,其中,第i個粒子在第d維的位置為xid,其飛行速度為vid,該粒子當前搜索到的最優位置為pid(pBest) ,整個粒子群當前的最優位置為pgd(gBest)。速度與位置更新公式如下:
式中:rand()為[0,1]范圍內變化的隨機數,c1和c2為加速系數,是可以自定義的參數。PSO的算法框架如下所述,圖1給出了PSO的算法流程。
圖1 PSO算法流程
(1)初始化所有的個體(粒子),初始化它們的速度和位置,并且將個體的歷史最優設為當前位置,而群體中最優的個體作為當前的。
(2)在當代的進化中,計算各個粒子的適應度函數值。
(3) 如果該粒子當前的適應度函數值比其歷史最優值要好,那么歷史最優將??????? 會被當前位置所替代。
(4)如果該粒子的歷史最優比全局最優要好,那么全局最優將會被該粒子的歷史最優所替代。
(5)對每個粒子按照公式(1)和公式(2)對速度和位置進行更新。
(6)進化代數增加 1,如果還沒有到達結束條件,轉到(2),否則輸出并結束。[3]
2.1 粒子群算法的起源
從20世紀90年代初,就產生了模擬自然生物群體(swarm)行為的優化技術。先是蟻群算法被提出,1995年基于對鳥群魚群的模擬,Ebarhart和Kennedy提出了粒子群優化算法。這類研究都被稱為群體智能(Swarm Intelligence)。通常單個自然生物并不是智能的,但是整個生物群體卻表現出處理復雜問題的能力,群體智能就是這些團體行為在人工智能問題中的應用。群體智能優化算法主要模擬了昆蟲、獸群、鳥群和魚群的群集行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經驗和其他成員的經驗來不斷地改變搜索的方向。群體智能優化算法的突出特點就是利用了種群的群體智慧進行協同搜索,從而在解空間內找到最優解。粒子群優化最初是處理連續優化問題的,由于其簡單、有效的特點,目前其應用已擴展到組合優化問題,得到了眾多學者的重視和研究[1]。
2.2 粒子群優化算法的發展
粒子群算法一經提出就吸引了各國學者的注意,經歷了許多變形和改進,為實際的工業應用指引了新的方向。從2003年IEEE第一屆國際群智能研討會在美國召開后,關于PSO算法的研究和應用成果的論文逐年增加,ISI數據庫收錄有關PSO論文數量在一段時間內成指數增長趨勢,這體現了對PSO的研究成了智能算法領域的一大熱點。
PSO算法的研究主要集中在理論研究和應用研究兩個方面。在應用研究方面,則有很多根據具體情況,對算法進行改進,以滿足應用要求。在理論研究方面,目前PSO算法還沒有成熟的理論分析,部分研究者對算法的收斂性進行了分析,而部分研究者在算法的結構和性能改善方面進行研究,包括參數分析,拓撲結構,粒子多樣性保持,算法融合和性能比較等。
PSO算法收斂性分析一直是研究的難點,由于算法引入了隨機變量,使得很多常規數學方法對其無效。2001年Van通過采用集合論的方法研究得出:只有改進的PSO算法才可以保證算法的局部或全局收斂性。在此理論前提下,提出一種在時間無限下保證收斂到局部最優的改進算法,算法雖然保證了收斂性,但其優化效果并不理想。2002年Clerc等對PSO進化方程進行了分析,利用狀態轉移矩陣的策略研究單個粒子在進化中的運動軌跡,進而得到使單個粒子收斂的條件,但該分析方法忽略了粒子間作用和隨機變量的作用。
2003年Trelea運用動態系統理論對粒子群算法進行了分析,并給出了參數選取的指導規則。2004年Cui通過在基本粒子群算法基礎上,引入一種隨機算法保證算法收斂到全局最優解。2004 年曾建潮等提出了一種能保證以概率 1 收斂于全局最優解的 PSO 算法(隨機 PSO 算法),該算法對其全局收斂性進行了理論分析,并提出了兩種停止進化粒子的重新產生方法。
2007年Jiang等對PSO算法的收斂性進行了分析,給出了算法的收斂條件。2008 年 Chen通過引入可控制的隨機探索向量,來控制算法的收斂。2009 年 Latif通過引入分布因子,分析了算法的收斂性條件。2009 年高雷阜等通過分析算法的收斂性,提出了基于混沌改進的粒子群算法。Rapaic 等對算法的參數選取和收斂性進行分析,給出算法收斂條件下參數選取的準則。眾多研究者對算法收斂性的分析,并在一定程度上給出了算法的收斂條件,但都是在簡化條件下的結論,這使得對收斂性的分析缺乏一般性。
3.1 粒子群優化算法的改進
粒子群算法本身也存在如下缺點。
(1)尋找到的最優解可能是局部最優解而不是全局最優解。
(2)算法搜索初期收斂速度快而搜索后期收斂速度變慢。
(3)參數選擇的隨機性。
為此,研究者們針對這些缺點對粒子群算法做了不同方面的改進。
Clerc M 等[4]將壓縮因子引入粒子群算法中,改進了算法的速度更新方式,具體如下:
其中,
一般情況下,取4.1。
壓縮因子的引入可以控制粒子群算法的收斂,使得粒子有機會搜索空間中不同的區域,并獲得高質量的粒子。實驗結果表明,它大大提高了粒子群算法的收斂速度和收斂精度。
Vanden B F 等人[5]提出了一種協同粒子群算法。該方法的具體步驟為:假設粒子的維數為 n ,將整個粒子分為 n 個小部分,然后算法分別對粒子的每個小部分(1 維)分別進行優化,評價適應度值后合并成一個完整的粒子。結果表明了算法在很多問題上有更快的收斂速度,取得了很好的結果。
粒子群混合算法是在粒子群算法中引入其它算法的一些比較好的思想,以提高粒子群算法的性能。這些算法包括:磷蝦群算法、遺傳算法、蝙蝠算法、螢火蟲算法、差分進化算法等。由于這些算法有自身的優點,因此研究者們已經將它們的思想與粒子群算法結合來提高粒子群算法的性能。
Angeline P J[6]將自然界中的自然選擇機制引入粒子群算法中,形成基于自然選擇的粒子群算法。其核心思想為,當算法更新完所有的粒子后,計算粒子的適應度值并對粒子進行適應度值排序。然后根據排序結果,用粒子群體中最好的一半粒子替換粒子群體中最差的一半粒子,但是保留原來粒子的個體最優位置信息。實驗結果表明,自然選擇機制的引入增強了粒子的全局尋優能力,提高了解的精度。[7]
PSO算法由于具有簡單、易于實現、設置參數少、無需梯度信息等特點,其在連續非線性優化問題和組合優化問題中都表現出良好的效果,因此被應用到很多的領域。PSO 最早應用于神經元網絡的訓練,Kennedy 和 Eberhart 成功地將其應用于分類XOR 問題的神經網絡訓練;1999 年 Eberhart用 PSO 來分析人類的帕金森綜合癥等顫抖類疾病;1999 年 Yoshida 等用 PSO 優化各種離散個連續變量,控制核電機組輸出穩定電壓;2002 年 Abido 等用 PSO 解決最優功率通量問題。現在,PSO 算法已經應用于非線性規劃,同步發電機辯識,車輛路徑,約束布局優化,新產品組合投入,廣告優化,多目標優化等眾多問題中,也表現出了良好的效果。
2007 年 Poli對 PSO 算法的應用做了一個相對比較全面綜述,他把 PSO 算法的應用領域分為 26 個不同類別,根據 Xplore 中搜索到的 1100 篇有關 PSO 算法的文獻作數據統計,其中有 700 篇是有關 PSO 算法應用的。他把這些應用文獻歸納出以下應用領域:圖像與視頻分析;電子網絡分布;控制工程應用;電子應用;天線設計;電力系統:調度;設計;通訊設計與優化;生物醫藥;數據挖掘;模糊系統與控制;信號處理;神經網絡:組合優化;機器人;預測與預報;模型;故障診斷與恢復;傳感器網絡;計算機圖形與可視化;發機動設計或優化;治金;音樂制作與游戲;安全與軍事應用;財經與金融。
總之,由于簡潔易操作的特點,PSO 算法一提出就引起了各方面的關注,關于 PSO 算法的應用不斷出現,現已廣泛應用于函數優化、神經網絡訓練、工業系統控制、模式識別及其他遺傳算法的應用領域。PSO 最早應用時將其應用于神經網絡訓練。文獻[8]將 PSO 算法用于神經網絡集成,加強了神經網絡的泛化能力。文獻[9] 將 PSO 算法用于解決優化網頁內容描述的問題中。文獻[10]將離散 PSO 算法用于求解 TSP 問題;文獻[11]則將 PSO 算法用于軟件結構測試數據自動生成也取得了良好的效果。在解決復雜問題時,PSO 算法被證明是一種有效的方法,已被應用于各個研究領域。
PSO 是一種新興的有潛力的基于群智能的演化計算技術。自從 2002 年 PSO 算法被引進國內,已經有很多學者對 PSO 進行了研究。雖然已經取得了一些研究成果,但是仍然有許多問題值得關注。PSO 算法雖然是一種有效的優化工具,但同樣有其不足,如迭代后期搜索能力不夠,早熟收斂等。所以,如何將其他算法引進 PSO 算法,以彌補其不足是一個重要方向。科學與工程實踐中的許多問題都可以歸結為優化問題。所以如何將 PSO 算法與實際問題結合,將會有力的推動 PSO 算法的發展。[12]
我國對粒子群算法的研究起步較晚,現在深入的研究和應用還相對有限,已發表的論文也不是很多,PSO算法的研究還有大量的工作要做,國際上前人走過的路我們也需要借鑒,根據前人的經驗快速跟進。作為一個研究起步晚的國家,我們的研究也是理論與應用同時進行,主要研究方向有以下幾個方面:
粒子群算法的改進:標準粒子群算法主要適用于連續空間函數的優化問題,如何將粒子群算法應用于離散空間優化問題,特別是一類非數值優化問題,將是粒子群算法的主要研究方向。另外,充分吸引其他進化類算法的優勢,以改進 PSO 算法存在的不足也是值得研究的問題。
粒子群算法的理論分析:到目前為止,PSO算法的分析方法還很不成熟,存在許多不完善之處。如何利用有效的數學工具對PSO算法的運行行為、收斂性以及計算復雜性進行分析也是目前的研究熱點之一。
粒子群算法與其他進化算法的比較研究:目前,進化算法的研究在理論和應用兩方面都得到迅速發展,效果顯著。其中研究的比較成熟的有遺傳算法、蟻群算法等,而粒子群算法是一個新興的群體智能算法,目前己成為進化算法的一個重要分支,如何從多方面比較各種算法從而得到各自的特長和不足,如何吸引其他進化類算法的優勢來彌補PSO算法的不足也是當前研究的熱點之一。
通過對粒子群優化算法的基本概念、改進和應用的了解,我們應該充分領悟其中的奧義,即群體智能和進化計算。人類通過對自然界的觀察可以總結出更好更多的算法來分析自然界的奧秘。就對于粒子群優化算法而言,由于單個算法總有其優勢、也有其缺陷,因此,人們希望通過多個算法的混合,以發揮各自的優勢,克服單個算法的不足,從而提出各種混合算法。科學與工程實踐中的許多問題都可以歸結為優化問題。所以如何將PSO算法與實際問題結合,將會有力的推動PSO算法的發展。在眾多研究者的不斷努力下,我們相信PSO將會越來越完善,發展和應用前景會更加光明。
粒子群算法是在仿真生物群體社會活動的基礎上,通過模擬群體生物的相互協同尋優能力,從而構造出一種基于群體智能的優化算法。從提出至今,雖然只有短短20年的時間,但引起了世界各國研究人員的注意,從收斂性、權重因子選擇、拓撲結構、多樣性、算法融合等諸多理論方面和實際工業應用方面都投入了大量的精力,也取得了一定的成果。
但是,由于粒子群算法本身來源于生物群體現象,目前所得到的理論基礎尚不完備,現有的標準算法形式也存在性能的缺陷。因此,在接下來的研究中,研究人員對粒子群算法的理論應該有更深入的研究,使得粒子群算法具有更普遍的應用規律,切實解決生活實際中遇到的問題。
[1]Fukuyama Y. Fundamentals of particle swarm techniques [A]. Lee K Y , El2Sharkawi
M A. Modern Heuristic Optimization Techniques With Applications to Power
Systems [M]. IEEE Power Engineering Society , 2002. 45~51
[2]楊維,李歧強.粒子群優化算法綜述[J].中國工程科學,2004,6(5):87-94.
[3]黃少榮.粒子群優化算法綜述[J].計算機工程與設計,2009,30(8):1977-1980.
[4]Clerc M,Kennedy,Télécom F. The particle swarm-explosion,stability,and convergence in a multidimensional complex space[J].EvolutionaryComput ation,IEEE,2002,6(1):58-73.
[5]Vanden B F,Engelbrecht A P.Using cooperative particle swarmoptimization to train product unit neural Networks[C]. IEEE International JointConference on Neural Networks, Washington D C,USA, 2001.
[6]Angeline P J.Evolutionary optimization versus particle swarmoptimization: Philosophy and performance differences[J]. Lecture Notes inComputer Science,1998:601-610.
[7]趙乃剛,鄧景順.粒子群優化算法綜述[J].科技創新導報,2015,12(26):216-217.
[8]劉宇,覃征,盧江,等 .多模態粒子群集成神經網絡[J].計算機研究與發展,2005,42(
9):15191526.
[9]Alfredo Milani,Valentino Santucci. Optimizing Web Content Presentation: a online PSO approach [ C ] . 2009 IEEE/WIC/ACM International
Conference on Web Intelligence and Intelligent Agent Technology, 2009: 2629.
[10]Niasar N. Salmani,Perdam M. M,Shanbezade,Mohajeri. Discrete fuzzy particle swarm optimization for solving
traveling salesman problem[C].International
Conference on Information and Financial Engineering,ICIFE 2009, 2009:162165.
[11]李愛國,張艷麗.基于PSO的軟件結構測試數據自動生成方法[J].計算機工程,2008,34(6):93-94
[12]楊偉新,張曉森.粒子群優化算法綜述[J].甘肅科技,2012,28(5):88-92.
注:文章轉自本人博客園博客,博客園賬號小艾shea