標(biāo)準(zhǔn)粒子群算法(PSO)

姓名:車文揚 學(xué)號:16020199006

轉(zhuǎn)載至:https://www.cnblogs.com/yncxzdy/p/4280207.html,有刪節(jié)

【嵌牛導(dǎo)讀】:什么是標(biāo)準(zhǔn)粒子群算法

【嵌牛鼻子】:PSO

【嵌牛提問】:標(biāo)準(zhǔn)粒子群算法的基本步驟是什么?

【嵌牛正文】:

粒子群算法思想的起源

????? 粒子群優(yōu)化(Particle Swarm Optimization, PSO)算法是Kennedy和Eberhart受人工生命研究結(jié)果的啟發(fā)、通過模擬鳥群覓食過程中的遷徙和群聚行為而提出的一種基于群體智能的全局隨機搜索算法,自然界中各種生物體均具有一定的群體行為,而人工生命的主要研究領(lǐng)域之一是探索自然界生物的群體行為,從而在計算機上構(gòu)建其群體模型。自然界中的鳥群和魚群的群體行為一直是科學(xué)家的研究興趣,生物學(xué)家Craig Reynolds在1987年提出了一個非常有影響的鳥群聚集模型,在他的仿真中,每一個個體遵循:

????? (1) 避免與鄰域個體相沖撞;

????? (2) 匹配鄰域個體的速度;

????? (3) 飛向鳥群中心,且整個群體飛向目標(biāo)。

????? 仿真中僅利用上面三條簡單的規(guī)則,就可以非常接近的模擬出鳥群飛行的現(xiàn)象。1995年,美國社會心理學(xué)家James Kennedy和電氣工程師Russell Eberhart共同提出了粒子群算法,其基本思想是受對鳥類群體行為進行建模與仿真的研究結(jié)果的啟發(fā)。他們的模型和仿真算法主要對Frank Heppner的模型進行了修正,以使粒子飛向解空間并在最好解處降落。Kennedy在他的書中描述了粒子群算法思想的起源。

算法原理:

PSO從這種模型中得到啟示并用于解決優(yōu)化問題。PSO 中,每個優(yōu)化問題的潛在解都是搜索空間中的一只鳥,稱之為粒子。所有的粒子都有一個由被優(yōu)化的函數(shù)決定的適值( fitness value) ,每個粒子還有一個速度決定它們飛翔的方向和距離。然后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索。

PSO初始化為一群隨機粒子(隨機解),然后通過迭代找到最優(yōu)解。在每一次迭代中,粒子通過跟蹤兩個極值來更新自己;第一個就是粒子本身所找到的最優(yōu)解,這個解稱為個體極值;另一個極值是整個種群目前找到的最優(yōu)解,這個極值是全局極值。另外也可以不用整個種群而只是用其中一部分作為粒子的鄰居,那么在所有鄰居中的極值就是局部極值。

假設(shè)在一個D維的目標(biāo)搜索空間中,有N個粒子組成一個群落,其中第i個粒子表示為一個D維的向量


其中:c1和c2為學(xué)習(xí)因子,也稱加速常數(shù)(acceleration constant),w為慣性因子,r1和r2為[0,1]范圍內(nèi)的均勻隨機數(shù)。式(2-1)右邊由三部分組成,第一部分為“慣性(inertia)”或“動量(momentum)”部分,反映了粒子的運動“習(xí)慣(habit)”,代表粒子有維持自己先前速度的趨勢;第二部分為“認(rèn)知(cognition)”部分,反映了粒子對自身歷史經(jīng)驗的記憶(memory)或回憶(remembrance),代表粒子有向自身歷史最佳位置逼近的趨勢;第三部分為“社會(social)”部分,反映了粒子間協(xié)同合作與知識共享的群體歷史經(jīng)驗,代表粒子有向群體或鄰域歷史最佳位置逼近的趨勢,i=1,2,3...?,vid是粒子的速度,vid是常數(shù),由用戶設(shè)定用來限制粒子的速度。r1和r2是介于[0,1]之間的隨機數(shù)。

標(biāo)準(zhǔn)粒子群算法流程

算法的流程如下:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容