資源描述:
《pso粒子群優(yōu)化算法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、PSO粒子群優(yōu)化算法摘自:人工智能論壇1.引言粒子群優(yōu)化算法(PSO)是一種進(jìn)化計(jì)算技術(shù)(evolutionarycomputation),有Eberhart博士和kennedy博士發(fā)明。源于對(duì)鳥群捕食的行為研究PSO同遺傳算法類似,是一種基于疊代的優(yōu)化工具。系統(tǒng)初始化為一組隨機(jī)解,通過疊代搜尋最優(yōu)值。但是并沒有遺傳算法用的交叉(crossover)以及變異(mutation)。而是粒子在解空間追隨最優(yōu)的粒子進(jìn)行搜索。詳細(xì)的步驟以后的章節(jié)介紹同遺傳算法比較,PSO的優(yōu)勢在于簡單容易實(shí)現(xiàn)并且沒有許多參數(shù)需要調(diào)整。目前已廣泛應(yīng)用于函數(shù)
2、優(yōu)化,神經(jīng)網(wǎng)絡(luò)訓(xùn)練,模糊系統(tǒng)控制以及其他遺傳算法的應(yīng)用領(lǐng)域2.背景:人工生命"人工生命"是來研究具有某些生命基本特征的人工系統(tǒng).人工生命包括兩方面的內(nèi)容1.研究如何利用計(jì)算技術(shù)研究生物現(xiàn)象2.研究如何利用生物技術(shù)研究計(jì)算問題我們現(xiàn)在關(guān)注的是第二部分的內(nèi)容.現(xiàn)在已經(jīng)有很多源于生物現(xiàn)象的計(jì)算技巧.例如,人工神經(jīng)網(wǎng)絡(luò)是簡化的大腦模型.遺傳算法是模擬基因進(jìn)化過程的.現(xiàn)在我們討論另一種生物系統(tǒng)-社會(huì)系統(tǒng).更確切的是,在由簡單個(gè)體組成的群落與環(huán)境以及個(gè)體之間的互動(dòng)行為.也可稱做"群智能"(swarmintelligence).這些模擬系統(tǒng)利用
3、局部信息從而可能產(chǎn)生不可預(yù)測的群體行為例如floys和boids,他們都用來模擬魚群和鳥群的運(yùn)動(dòng)規(guī)律,主要用于計(jì)算機(jī)視覺和計(jì)算機(jī)輔助設(shè)計(jì).在計(jì)算智能(computationalintelligence)領(lǐng)域有兩種基于群智能的算法.蟻群算法(antcolonyoptimization)和粒子群算法(particleswarmoptimization).前者是對(duì)螞蟻群落食物采集過程的模擬.已經(jīng)成功運(yùn)用在很多離散優(yōu)化問題上.粒子群優(yōu)化算法(PSO)也是起源對(duì)簡單社會(huì)系統(tǒng)的模擬.最初設(shè)想是模擬鳥群覓食的過程.但后來發(fā)現(xiàn)PSO是一種很好的優(yōu)
4、化工具.3.算法介紹如前所述,PSO模擬鳥群的捕食行為。設(shè)想這樣一個(gè)場景:一群鳥在隨機(jī)搜索食物。在這個(gè)區(qū)域里只有一塊食物。所有的鳥都不知道食物在那里。但是他們知道當(dāng)前的位置離食物還有多遠(yuǎn)。那么找到食物的最優(yōu)策略是什么呢。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區(qū)域。PSO從這種模型中得到啟示并用于解決優(yōu)化問題。PSO中,每個(gè)優(yōu)化問題的解都是搜索空間中的一只鳥。我們稱之為“粒子”。所有的例子都有一個(gè)由被優(yōu)化的函數(shù)決定的適應(yīng)值(fitnessvalue),每個(gè)粒子還有一個(gè)速度決定他們飛翔的方向和距離。然后粒子們就追隨當(dāng)前的最優(yōu)粒子
5、在解空間中搜索PSO初始化為一群隨機(jī)粒子(隨機(jī)解)。然后通過疊代找到最優(yōu)解。在每一次疊代中,粒子通過跟蹤兩個(gè)"極值"來更新自己。第一個(gè)就是粒子本身所找到的最優(yōu)解。這個(gè)解叫做個(gè)體極值pBest.另一個(gè)極值是整個(gè)種群目前找到的最優(yōu)解。這個(gè)極值是全局極值gBest。另外也可以不用整個(gè)種群而只是用其中一部分最為粒子的鄰居,那么在所有鄰居中的極值就是局部極值。在找到這兩個(gè)最優(yōu)值時(shí),粒子根據(jù)如下的公式來更新自己的速度和新的位置v[]=v[]+c1*rand()*(pbest[]-present[])+c2*rand()*(gbest[]-pr
6、esent[])(a)present[]=persent[]+v[](b)v[]是粒子的速度,persent[]是當(dāng)前粒子的位置.pbest[]andgbest[]如前定義rand()是介于(0,1)之間的隨機(jī)數(shù).c1,c2是學(xué)習(xí)因子.通常c1=c2=2.程序的偽代碼如下Foreachparticle____InitializeparticleENDDo____Foreachparticle________Calculatefitnessvalue________Ifthefitnessvalueisbetterthanthebe
7、stfitnessvalue(pBest)inhistory____________setcurrentvalueasthenewpBest____End____ChoosetheparticlewiththebestfitnessvalueofalltheparticlesasthegBest____Foreachparticle________Calculateparticlevelocityaccordingequation(a)________Updateparticlepositionaccordingequation(
8、b)____EndWhilemaximumiterationsorminimumerrorcriteriaisnotattained在每一維粒子的速度都會(huì)被限制在一個(gè)最大速度Vmax,如果某一維更新后的速度超過用戶設(shè)定的Vmax,那么這一維的速度就