張雁,肖偉
摘要:粒子群優(yōu)化(PSO)算法是一種新穎的演化算法,它屬于一類隨機全局優(yōu)化技術(shù),通過粒子間的相互作用在復(fù)雜搜索空間中發(fā)現(xiàn)最優(yōu)區(qū)域。該文介紹了PSO算法的基本原理、應(yīng)用領(lǐng)域,并用matlab實現(xiàn)了該過程。
關(guān)鍵詞:粒子群算法優(yōu)化應(yīng)用;智能算法;編程語言matlab
中圖分類號:TP311文獻標(biāo)識碼:A文章編號:009-3044(2012)02-0429-03
1導(dǎo)論
有優(yōu)化作用的粒子群算法是主要應(yīng)用在計算智能領(lǐng)域中。相比早期的智能算法如經(jīng)典的蟻群算法和魚群算法等,它又是又一類群體智能的優(yōu)化算法。該算法最早由Kennedy和Eberhart在1995年提出的。該算法的靈感來源于對鳥類捕食行為的研究。我們觀察在鳥類捕食時,對所有鳥來說,找到食物最有效、簡單的的數(shù)據(jù)信息就是由當(dāng)前距離食物最近的周圍區(qū)域的鳥群提供。粒子群算法就從這種生物種群行為特征受到啟發(fā)并借鑒應(yīng)用于求解優(yōu)化問題的。在算法中可知優(yōu)化問題每次的潛在存在的解集合都是由搜索空間中假定的“粒子”的狀態(tài)決定,每個粒子的適應(yīng)度值由目標(biāo)函數(shù)決定的,它們飛翔的方向和距離由粒子的速度決定了。粒子由自身及同群同伙伴的飛行經(jīng)驗協(xié)調(diào)性地且動態(tài)地調(diào)整進行,即粒子自己單個個體具備的最優(yōu)解和整個種群所具備的最優(yōu)解。如此反復(fù)在解空間中不斷搜索,如遇滿足要求停止。本測試用例就是用PSO算法來求標(biāo)準(zhǔn)測試函數(shù)的極值,表明該算法在系統(tǒng)極值尋優(yōu)中的有效作用。
2原理
可以視為第i個粒子的周圍附近粒子所能得到的最優(yōu)位置,上述方法也有“局部PSO算法”的提法。比較而言,全局PSO算法收斂快,數(shù)值在局部最優(yōu)附近容易聚集。相反局部PSO收斂速度會慢一點,但不易走入局部最優(yōu)。
3算法實現(xiàn)
3.1算法流程
①群算法參數(shù)初始化,群體規(guī)模,每個粒子的位置xi和速度,Vi
②對應(yīng)計算每個粒子的適應(yīng)度值Fit[i];
③對應(yīng)于每個粒子,比較它的適應(yīng)度值和個體極值,如存在Fit [i]> pbes (i),則用Fit [i]替換掉pbes (i);
④對應(yīng)于每個粒子,比較它的適應(yīng)度值Fit[i]和全局極值gbes(i),如存在Fit [i]> pbes (i)則用Fit [i]代替gbes(i);
⑤根據(jù)公式(1),(2)更新替換粒子的速度xi和位置Vi;
⑥如遇結(jié)束條件滿足退出(誤差足夠好或到達最大循環(huán)次數(shù)),否則重復(fù)步驟②。
圖1 PSO算法流程圖
3.3實現(xiàn)結(jié)果
在本實驗中,采用matlab實現(xiàn)該算法,如下是算法的顯示結(jié)果:
圖2 PSO實現(xiàn)結(jié)果(c1=0,c2=4)
4應(yīng)用
PSO算法簡易實現(xiàn),沒有太多參數(shù)需要調(diào)整,且不需要可微可導(dǎo)信息和與之相關(guān)的此類的信息。PSO可作為連續(xù)優(yōu)化和混合整數(shù)非線性問題和排列組合優(yōu)化問題的優(yōu)化方法[2]。PSO早期應(yīng)用于諸如神經(jīng)等網(wǎng)絡(luò)初步訓(xùn)練上,稍后PSO進一步可以用來確定在神經(jīng)網(wǎng)絡(luò)中的實質(zhì)結(jié)構(gòu)。如今廣泛應(yīng)用于在神經(jīng)網(wǎng)絡(luò)訓(xùn)練為后的函數(shù)優(yōu)化、模糊性系統(tǒng)控制與其他智能算法的應(yīng)用領(lǐng)域。
4.1函數(shù)優(yōu)化
粒子群算法原理與收斂性的研究都是為了更好研究和解決函數(shù)的優(yōu)化問題,通常象這一類問題都是相當(dāng)復(fù)雜的,問題特征表現(xiàn)為規(guī)模之大、維數(shù)之高、數(shù)學(xué)性質(zhì)上可體現(xiàn)為非線性、非凸和不可微等微積性質(zhì),大量極小局部存在函數(shù)分布里。相對早期的傳統(tǒng)的優(yōu)化確定性算法解決這類問題速度較快,反應(yīng)靈敏度高,初值的選擇上體現(xiàn)出相應(yīng)的的要求,局部特性上可見易陷入局部最小。提到另外具有優(yōu)化全局性的算法,如智能遺傳算法、退火模擬算法、進化規(guī)劃等,它們各自的不同的機理和結(jié)構(gòu)單一,難以實現(xiàn)在高維復(fù)雜函數(shù)等方向上的高效優(yōu)化。但PSO算法綜合這些優(yōu)缺點,實現(xiàn)高效優(yōu)化對復(fù)雜高維函數(shù)的作用。
4.2神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
PSO算法現(xiàn)在主要是在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的3個大的方面(網(wǎng)絡(luò)幾何拓撲結(jié)構(gòu)及函數(shù)傳遞、連接時權(quán)重的設(shè)置、智能學(xué)習(xí)采用算法)。每個粒子可完整勾勒表達出神經(jīng)網(wǎng)絡(luò)的相關(guān)的所有參數(shù),反復(fù)更新來實現(xiàn)對這些參數(shù)的優(yōu)化,由此達到訓(xùn)練的功效。相比同類型的學(xué)習(xí)算法如誤差反向傳播算法,使用粒子群算法在神經(jīng)網(wǎng)絡(luò)的方面的優(yōu)點在于不借助于可微可導(dǎo)等微分性質(zhì),進而使用一些不可微的在函數(shù)之間傳遞信息。大概率情況下所能得到的結(jié)果比誤差反向傳播算法要好,速度也更快些。
4.3參數(shù)優(yōu)化
粒子群算法選用在連續(xù)的各類問題和離散的各類問題的參數(shù)優(yōu)化。目前有信號處理機器人路徑規(guī)劃、模糊控制器的設(shè)計和模式識別等問題
4.4組合優(yōu)化
由“01”串的編碼方式實現(xiàn)的粒子群算法在許多組合優(yōu)化問題中有序結(jié)構(gòu)的表達問題以及約束條件處理問題等上尚需有更合理的解決方案和措施。所以問題的不同,提相應(yīng)問題的特定粒子表達方式不同,也可以通過重新定義算子來解決。已解決了多種TSP、VRP以及車間調(diào)度等問題的優(yōu)化方案。
5結(jié)束語
粒子群算法是新型的群體智能的進化算法,其研究也開始興起,遠沒有像遺傳算法和模擬退火算法穩(wěn)健發(fā)展,有一定的系統(tǒng)的分析方法和一定的數(shù)學(xué)基礎(chǔ),許多問題要進一步地分析,給出方法。
可喜的是目前我國大量學(xué)者在對PSO算法的適用性和方法性的研究上有了新的研究動態(tài)[4],能讓粒子群算法能在更多優(yōu)化研究工作上帶來更多的新的啟發(fā)和思路。
參考文獻:
[1] Kennedy J , Eberhart R C. Particle Swarm Optlmization. Proc[R].IEEE Int ,Lconf.on Neural Networks. IEBE Service Center, Pisca-taway , NJ ,1995 (4) :1942-1948.
[2] Eberhart R,Kennedy J.A New Optimizer Using Particle Swarm Theory[C].In:Proc of the Sixth International Symposium on Micro Machine and Human Science,Nagoya,Japan,1995:39-43.
[3] Richards M, Ventura D. Choosing a starting configuration for particle swarm optimization [A]. in: Proc. IEEE Int. Joint. Conf. Neural Net? work [C],2004(3):2309–2312.
[4]何妮,吳燕仙.粒子群優(yōu)化算法的研究[J]科技信息,2008(6):179-220.
[5]王萬良,唐宇.微粒群算法的研究現(xiàn)狀與展望[J].浙江工業(yè)大學(xué)學(xué)報,2007,35(2):136-141.
[6 ]謝曉鋒,張文俊,楊之廉.微粒群算法綜述[J].控制與決策,2003,18(2):129-134.
[7]徐海,劉石,馬勇,等.基于改進粒子群游優(yōu)化的模糊邏輯系統(tǒng)自學(xué)習(xí)算法[J].計算機工程與應(yīng)用,2000 (7):62- 63.