優(yōu)化算法筆記(五)粒子群算法(3)

(已合并本篇內(nèi)容至粒子群算法(1))

5.參數(shù)實(shí)驗(yàn)

上一節(jié)中蜈抓,我們看到小鳥(niǎo)們聚集到一個(gè)較小的范圍內(nèi)后驯妄,不會(huì)再繼續(xù)集中能耻。這是怎么回事呢帆竹?
猜測(cè):
1.與最大速度限制有關(guān)绕娘,權(quán)重w只是方便動(dòng)態(tài)修改maxV。
2.與C1和C2有關(guān)栽连,這兩個(gè)權(quán)重限制了鳥(niǎo)兒的搜索行為险领。
還是上一節(jié)的實(shí)驗(yàn)侨舆,f(x_i)=(x_1-a)^2+(x_2-b)^2,a=b=0。現(xiàn)在我們將maxV的值有5修改為50绢陌,即maxV=50挨下,其他參數(shù)不變。參數(shù)如下

參數(shù)
問(wèn)題維度(維度) 2
鳥(niǎo)的數(shù)量(種群數(shù)) 20
開(kāi)會(huì)次數(shù)(最大迭代次數(shù)) 50
C1 2
C2 2
W 1
maxV 50
取值范圍 (-100脐湾,100)

此時(shí)得到的最優(yōu)位值的適應(yīng)度函數(shù)值為0.25571,可以看出與maxV=5相比臭笆,結(jié)果差了很多而且小鳥(niǎo)們聚集的范圍更大了。
  現(xiàn)在我們?cè)O(shè)置maxV=1秤掌,再次重復(fù)上面的實(shí)驗(yàn)愁铺,實(shí)驗(yàn)結(jié)果如下:


maxV=1

  這次最終的適應(yīng)度函數(shù)值為,比之前的結(jié)果都要好0.00273闻鉴。從圖中我們可以看出茵乱,小鳥(niǎo)們?cè)谙蛞粋€(gè)點(diǎn)集中,但是他們飛行的速度比之前慢多了孟岛,如果問(wèn)題更復(fù)雜瓶竭,可能無(wú)法等到它們聚集到一個(gè)點(diǎn),迭代就結(jié)束了渠羞。
  為什么maxV會(huì)影響鳥(niǎo)群的搜索結(jié)果呢斤贰?
  我們依然以maxV=50為例,不過(guò)這次為了看的更加清晰堵未,我們的鳥(niǎo)群只有2只鳥(niǎo),同時(shí)將幀數(shù)放慢5倍以便觀(guān)察盏触。

參數(shù)
問(wèn)題維度(維度) 2
鳥(niǎo)的數(shù)量(種群數(shù)) 2
開(kāi)會(huì)次數(shù)(最大迭代次數(shù)) 50
C1 2
C2 2
W 1
maxV 50
取值范圍 (-100渗蟹,100)

maxV=50

可以看出若當(dāng)前的慣性速度V較大時(shí),且P赞辩、G相距較近時(shí)(考慮極端情況P與G重合在一個(gè)點(diǎn))雌芽,我們來(lái)看看小鳥(niǎo)的飛行軌跡。
飛行1

小鳥(niǎo)從A點(diǎn)出發(fā)辨嗽,速度為A->B,這一次飛行過(guò)后世落,小鳥(niǎo)的期望位置為點(diǎn)D,將此次飛行記為第一次飛行糟需。其中AG=GC,由于P=G,故

  第二次飛行屉佳,小鳥(niǎo)由點(diǎn)D為起點(diǎn),此時(shí)小鳥(niǎo)的慣性速度為A->D,而它向目標(biāo)飛行的速度為D->E,其中DG=GE,此次飛行的合速度為D->C,故C為此次飛行的期望點(diǎn)位置洲押。
飛行2

  第三次飛行武花,小鳥(niǎo)由點(diǎn)C為起點(diǎn),此時(shí)小鳥(niǎo)的慣性速度為D->C,而它向目標(biāo)飛行的速度為C->A,其中CG=GA,此次飛行的合速度為C->E,故E為此次飛行的期望點(diǎn)位置杈帐。
飛行3

  第四次飛行体箕,小鳥(niǎo)由點(diǎn)E為起點(diǎn)专钉,此時(shí)小鳥(niǎo)的慣性速度為C->E,而它向目標(biāo)飛行的速度為E->D其中EG=GD,此次飛行的合速度為E->A,故A為此次飛行的期望點(diǎn)位置。
飛行4

  可以看出如果G和P重合累铅,那么小鳥(niǎo)的飛行軌跡的期望為A->D->C->E->A,如果這四個(gè)位置均差于全局最優(yōu)點(diǎn)G和自己的歷史最優(yōu)點(diǎn)P,那么小鳥(niǎo)將會(huì)一直圍著當(dāng)前最優(yōu)點(diǎn)打轉(zhuǎn)跃须,這樣當(dāng)然無(wú)法繼續(xù)聚集在同一個(gè)點(diǎn)。
  問(wèn)題找到了娃兽,那應(yīng)該如何解決呢菇民?先思考幾種方案,能不能行的通换薄,實(shí)驗(yàn)之后見(jiàn)分曉玉雾。

思路一:限制鳥(niǎo)的最大飛行速率,由于慣性系數(shù)W的存在,使得控制最大速率和控制慣性系數(shù)的效果是等價(jià)的轻要,取其一即可复旬。
  方案1:使慣性系數(shù)隨著迭代次數(shù)增加而降低,這里使用的是線(xiàn)性下降的方式冲泥,即在第1次迭代驹碍,慣性系數(shù)W=1,最后一次迭代時(shí),慣性系數(shù)W=0凡恍,當(dāng)然志秃,也可以根據(jù)自己的意愿取其他值。
實(shí)驗(yàn)參數(shù)如下:

參數(shù)
問(wèn)題維度(維度) 2
鳥(niǎo)的數(shù)量(種群數(shù)) 20
開(kāi)會(huì)次數(shù)(最大迭代次數(shù)) 50
C1 2
C2 2
W 1->0
maxV 50
取值范圍 (-100嚼酝,100)

  小鳥(niǎo)們的飛行過(guò)程如上圖浮还,可以看到效果很好,最后甚至都聚集到了一個(gè)點(diǎn)闽巩。再看看最終的適應(yīng)度函數(shù)值8.61666413451519E-17钧舌,這已經(jīng)是一個(gè)相當(dāng)精確的值了,說(shuō)明這是一個(gè)可行的方案涎跨,但是由于其最后種群過(guò)于集中洼冻,有陷入局部最優(yōu)的風(fēng)險(xiǎn)。
  方案2:給每只鳥(niǎo)一個(gè)隨機(jī)的慣性系數(shù)隅很,那么鳥(niǎo)的飛行軌跡也將不再像之前會(huì)出現(xiàn)周期性撞牢。每只鳥(niǎo)的慣性系數(shù)W為(0,2)中的隨機(jī)數(shù)(保持W的期望為1)。
實(shí)驗(yàn)參數(shù)如下:

參數(shù)
問(wèn)題維度(維度) 2
鳥(niǎo)的數(shù)量(種群數(shù)) 20
開(kāi)會(huì)次數(shù)(最大迭代次數(shù)) 50
C1 2
C2 2
W rand(0,2)
maxV 50
取值范圍 (-100叔营,100)

  可以看到小鳥(niǎo)們并沒(méi)有像上一個(gè)實(shí)驗(yàn)一樣聚集于一個(gè)點(diǎn)屋彪,而是仍在一個(gè)較大的范圍內(nèi)進(jìn)行搜索。其最終的適應(yīng)度函數(shù)為0.01176绒尊,比最初的0.25571稍有提升撼班,但并不顯著。什么原因造成了這種情況呢垒酬?我想可能是由于慣性系數(shù)成了期望為1的隨機(jī)數(shù)砰嘁,那么小鳥(niǎo)的飛行軌跡的期望可能仍然是繞著一個(gè)四邊形循環(huán)件炉,只不過(guò)這個(gè)四邊形相比之前的平行四邊形更加復(fù)雜,所以其結(jié)果也稍有提升矮湘,當(dāng)然對(duì)于概率算法斟冕,得到這樣的結(jié)果可能僅僅是因?yàn)檫\(yùn)氣不好
  我們看到慣性系數(shù)W值減小,小鳥(niǎo)們聚攏到一處的速度明顯提升缅阳,那么磕蛇,如果我們?nèi)サ魬T性系數(shù)這個(gè)參數(shù)會(huì)怎么樣呢。
  方案3:取出慣性系數(shù)十办,即取W=0秀撇,小鳥(niǎo)們只向著那兩個(gè)最優(yōu)位置飛行。

參數(shù)
問(wèn)題維度(維度) 2
鳥(niǎo)的數(shù)量(種群數(shù)) 20
開(kāi)會(huì)次數(shù)(最大迭代次數(shù)) 50
C1 2
C2 2
W 0
maxV 50
取值范圍 (-100向族,100)

  可以看見(jiàn)鳥(niǎo)群們迅速聚集到了一個(gè)點(diǎn)呵燕,再看看得到的結(jié)果,最終的適應(yīng)度函數(shù)值為2.9086886073362966E-30件相,明顯優(yōu)于之前的所有操作再扭。
  那么問(wèn)題來(lái)了,為什么粒子群算法需要一個(gè)慣性速度夜矗,它的作用是什么呢泛范?其實(shí)很明顯,當(dāng)鳥(niǎo)群迅速集中到了一個(gè)點(diǎn)之后它們就喪失了全局的搜索能力紊撕,所有的鳥(niǎo)會(huì)迅速向著全局最優(yōu)點(diǎn)飛去罢荡,如果當(dāng)前的全局最優(yōu)解是一個(gè)局部最優(yōu)點(diǎn),那么鳥(niǎo)群將會(huì)陷入局部最優(yōu)对扶。所以区赵,慣性系數(shù)和慣性速度的作用是給鳥(niǎo)群提供跳出局部最優(yōu)的可能性,獲得這個(gè)跳出局部最優(yōu)能力的代價(jià)是它們的收斂速度減慢辩稽,且局部的搜索能力較弱(與當(dāng)前的慣性速度有關(guān))惧笛。
  為了平衡局部搜索能力和跳出局部最優(yōu)能力从媚,我們可以人為的干預(yù)一下慣性系數(shù)W的大小逞泄,結(jié)合方案1和方案2,我們可以使每只鳥(niǎo)的慣性系數(shù)以一個(gè)隨機(jī)周期拜效,周期性下降喷众,若小于0,則重置為初始值紧憾。


  這樣結(jié)合了方案1和方案2的慣性系數(shù)到千,也能得到不錯(cuò)的效果,大家可以自己一試赴穗。

思路二:改變小鳥(niǎo)們向群體最優(yōu)飛行和向歷史最優(yōu)飛行的權(quán)重憔四。
  方案4:讓小鳥(niǎo)向全局最優(yōu)飛行的系數(shù)C2線(xiàn)性遞減膀息。

參數(shù)
問(wèn)題維度(維度) 2
鳥(niǎo)的數(shù)量(種群數(shù)) 20
開(kāi)會(huì)次數(shù)(最大迭代次數(shù)) 50
C1 2
C2 2->0
W 1
maxV 50
取值范圍 (-100,100)

  小鳥(niǎo)們的飛行過(guò)程與之前好像沒(méi)什么變化了赵,我甚至懷疑我做了假實(shí)驗(yàn)潜支。看看最終結(jié)果柿汛,0.7267249621552874冗酿,這是到目前為止的最差結(jié)果÷缍希看來(lái)這不是一個(gè)好方案裁替,讓全局學(xué)習(xí)因子C2遞減,勢(shì)必會(huì)降低算法的收斂效率貌笨,而慣性系數(shù)還是那么大弱判,小鳥(niǎo)們依然會(huì)圍繞歷史最優(yōu)位置打轉(zhuǎn),畢竟這兩個(gè)最優(yōu)位置是有一定關(guān)聯(lián)的躁绸。所以讓C1線(xiàn)性遞減的實(shí)驗(yàn)也不必做了裕循,其效果應(yīng)該與方案4相差不大。
  看來(lái)只要是慣性系數(shù)不變?cè)趺葱薷腃1和C2都不會(huì)有太過(guò)明顯的效果净刮。為什么實(shí)驗(yàn)都是參數(shù)遞減剥哑,卻沒(méi)有參數(shù)遞增的實(shí)驗(yàn)?zāi)兀?br>   1.慣性系數(shù)W必須遞減,因?yàn)樗鼤?huì)影響鳥(niǎo)群的搜索范圍淹父。
  2.如果C1和C2遞增株婴,那么小鳥(niǎo)的慣性速度V勢(shì)必會(huì)跟著遞增,這與W遞增會(huì)產(chǎn)生相同的效果暑认。

6.總結(jié)

上面我們通過(guò)一些實(shí)驗(yàn)及理論分析了粒子群算法的特點(diǎn)及其參數(shù)的作用困介。粒子群作為優(yōu)化算法中模型最簡(jiǎn)單的算法,通過(guò)修改這幾個(gè)簡(jiǎn)單的參數(shù)也能夠改變算法的優(yōu)化性能可以說(shuō)是一個(gè)非常優(yōu)秀的算法蘸际。
  上述實(shí)驗(yàn)中座哩,我們僅分析了單個(gè)參數(shù)對(duì)算法的影響,實(shí)際使用時(shí)(創(chuàng)新粮彤、發(fā)明根穷、寫(xiě)論文時(shí))也會(huì)同時(shí)動(dòng)態(tài)改變多個(gè)參數(shù),甚至是參數(shù)之間產(chǎn)生關(guān)聯(lián)导坟。
  實(shí)驗(yàn)中屿良,為了展現(xiàn)實(shí)驗(yàn)效果,maxV取值較大惫周,一般取值為搜索空間范圍的10%-20%尘惧,按上面(-100,100)的范圍maxV應(yīng)該取值為20-40,在此基礎(chǔ)上递递,方案1喷橙、方案2效果應(yīng)該會(huì)更好啥么。
  粒子群算法是一種概率算法,所以并不能使用一次實(shí)驗(yàn)結(jié)果來(lái)判斷算法的性能贰逾,我們需要進(jìn)行多次實(shí)驗(yàn)饥臂,然后看看這些實(shí)驗(yàn)的效果最終來(lái)判斷,結(jié)果必須使用多次實(shí)驗(yàn)的統(tǒng)計(jì)數(shù)據(jù)來(lái)說(shuō)明似踱,一般我們都會(huì)重復(fù)實(shí)驗(yàn)30-50次隅熙,為了發(fā)論文去做實(shí)驗(yàn)的小伙伴們不要偷懶哦。
  粒子群算法的學(xué)習(xí)目前告一段落核芽,如果有什么新的發(fā)現(xiàn)囚戚,后面繼續(xù)更新哦!
以下指標(biāo)純屬個(gè)人yy,僅供參考

指標(biāo) 星數(shù)
復(fù)雜度 ★☆☆☆☆☆☆☆☆☆
收斂速度 ★★★★★☆☆☆☆☆
全局搜索 ★★★★☆☆☆☆☆☆
局部搜索 ★★★★★★☆☆☆☆
優(yōu)化性能 ★★★★★★☆☆☆☆
跳出局部最優(yōu) ★★★★☆☆☆☆☆☆
改進(jìn)點(diǎn) ★★★★☆☆☆☆☆☆

目錄
上一篇 優(yōu)化算法筆記(四)粒子群算法(2)
下一篇 優(yōu)化算法筆記(六)遺傳算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載轧简,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者驰坊。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哮独,隨后出現(xiàn)的幾起案子拳芙,更是在濱河造成了極大的恐慌,老刑警劉巖皮璧,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舟扎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡悴务,警方通過(guò)查閱死者的電腦和手機(jī)睹限,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讯檐,“玉大人羡疗,你說(shuō)我怎么就攤上這事”鸷椋” “怎么了叨恨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)挖垛。 經(jīng)常有香客問(wèn)我痒钝,道長(zhǎng),這世上最難降的妖魔是什么晕换? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任午乓,我火速辦了婚禮站宗,結(jié)果婚禮上闸准,老公的妹妹穿的比我還像新娘。我一直安慰自己梢灭,他們只是感情好夷家,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布蒸其。 她就那樣靜靜地躺著,像睡著了一般库快。 火紅的嫁衣襯著肌膚如雪摸袁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天义屏,我揣著相機(jī)與錄音靠汁,去河邊找鬼。 笑死闽铐,一個(gè)胖子當(dāng)著我的面吹牛蝶怔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播兄墅,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼踢星,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了隙咸?” 一聲冷哼從身側(cè)響起沐悦,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎五督,沒(méi)想到半個(gè)月后藏否,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡充包,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年秕岛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片误证。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡继薛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出愈捅,到底是詐尸還是另有隱情遏考,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布蓝谨,位于F島的核電站灌具,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏譬巫。R本人自食惡果不足惜咖楣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芦昔。 院中可真熱鬧诱贿,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至焙蹭,卻和暖如春晒杈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背孔厉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工拯钻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撰豺。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓说庭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親郑趁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刊驴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容