智慧演算法-粒子群演算法(3)

語言: CN / TW / HK

theme: healer-readable

一起養成寫作習慣!這是我參與「掘金日新計劃 · 4 月更文挑戰」的第17天,點選檢視活動詳情

1. 粒子群演算法

本節主要介紹粒子群演算法的關鍵引數選取,簡單回顧一下粒子群演算法思路:一群分散的鳥兒在隨機地飛行覓食,它們不知道食物所在的具體位置,在覓食過程中,每隻小鳥都會記錄自己飛行位置。突然,其中某一隻小鳥A發現好多玉米,於是就喊:“快來,我這裡有好多食物!”,然而,其他小鳥都只發現了零零星星的幾個玉米粒。於是,每個小鳥在飛行的時候就有了一個指導的方向(往小鳥A的位置飛),但是,每個小鳥都有不忍心放棄當前努力搜尋過的位置(小鳥們心想:我這裡剛才也找到點玉米粒,再繼續找找說不定比你還要多)。因此,它們最終決定結合自身的經驗整個群體的經驗,調整自己的飛行速度和所在位置,不斷地尋找更加接近食物的位置,最終使得群體聚集到食物位置。

粒子群算基本介紹及例項詳解請參考智慧演算法-粒子群演算法 - 掘金 (juejin.cn)

粒子群演算法改進策略請參考智慧演算法-粒子群演算法(2) - 掘金 (juejin.cn)

2. 關鍵引數選取

2.1 種群規模

種群規模N是指有多少個粒子,即粒子的數量。通常根據問題的複雜度來嘗試選取,總結如下: - 影響演算法的搜尋能力和計算量 - 一般取 $20-40$ - 對於較難問題,可以取到100或200

2.2 粒子長度和範圍

  • 粒子長度$D$相當於每個解的長度,一般根據具體問題來具體定義。
  • 粒子範圍$R$由優化問題本身決定,將粒子規定在某一範圍內,每一維可以設定不同的範圍

2.3 粒子最大速度

粒子的最大速度$Vmax$,也就是限定每個粒子一次迭代最大移動的距離。其選取思想概括如下: - 決定粒子每一次的最大移動距離,制約著演算法的探索和開發能力 - 一般取相應搜尋空間的$10%-20%$

2.4 慣性權重

慣性權重控制著前一速度對當前速度的影響,用於平衡演算法的探索和開發能力,該引數選取思路如下: - 一般設定從0.9線性遞減到0.4 - 演算法開始階段,大的慣性因子可以使演算法不容易陷入區域性最優 - 演算法的後期,小的慣性因子可以使收斂速度加快,使收斂更加平穩,不至於出現振盪現象

2.5 壓縮因子

壓縮因子$χ$限制粒子的飛行速度,保證演算法有效收斂,其選取思路如下:

通常取值0.729,同時設c1和c2為2.05,可以保證收斂,但不能收斂到全域性最優

2.6 加速係數$C1$和$C2$

加速係數代表了粒子向自身極值pbest和全域性極值gbest推進的加速權值,通常情況下的選取經驗概括如下: - 通常都等於2.0 - $c1$先大後小,而$c2$先小後大

2.7 演算法終止條件

演算法終止決定演算法執行的結束,由具體的應用和問題本身確定,最簡單的可以由達到規定的迭代次數作為終止條件,迭代次數一般設定500、1000、5000,需要根據具體問題規模去做不同嘗試。