2.1 粒子族群最佳化
2.1.1 基本的粒子族群最佳化
在基本的粒子群最佳化演算法中,粒子群由粒子所組成每個粒子的位置即代
個群體中最佳解這三項資訊來做為更新狀態之依據,如式(2.1), (2.2)所示:
( 1) ( )
ij ij cognition social
v t v t v v (2.1)
1 [ ( ) ( )]
cognition ij ij
v c rand p t x t (2.2)
2 [ ( ) ( )]
social j ij
v c rand g t x t (2.3)
( 1) ( ) ( 1)
ij ij ij
x t x t v t (2.4) 其中xij(t)代表第i個粒子在第 j 個維度在時刻t的位置,pij(t)代表第i個粒子在
第 j 個維度在時刻t之前最優的位置,gj代表整個粒子群在第 j 個維度在時刻t之 前最優的位置。上面式(2.1)的含義為將每個個體視為n維空間中一個沒有體積的 粒子(點),在搜索空間中以一定的速度飛行,而此速度根據他本身的飛行經驗以及 同伴的飛行經驗進行動態調整而分為當前速度,個體的認知,以及社會影響三部 分,其中個體的認知即對應了式(2.2)即每一個個體會對他在搜索過程中所經歷過 一個最好的結果 pij加以記錄下來並以這個認知做為其下一階段行動之依據,當
中的c1為個體的認知部分的權重, rand 則代表在
0,1 上均勻分布的模型所產生 的隨機數,而式(2.3)則表示了社會影響即整個粒子群中每一個個體均會受到這個 粒子群中表現最優良的個體的行為gj所影響而增加這種行為發生的機會,當中的c2為社會影響部分的權重, rand 則代表在
0,1 上均勻分布的模型所產生的隨 機數,這種學習群體中不同個體的行為也被稱為社會行為。式(2.4)就是下一階段 每個粒子群所在的位置。如果式(2.2)中的c1為零則代表速度更新式(2.1)中的個體認知部分沒有作用而只剩下社會影響,以及當前速度兩個部分在這種模型下粒子 之間雖然可以相互作用但容易陷入局部極值點,而若式(2.3) 中的c2為零則代表 速度更新式(2.1)中的社會影響的部分沒有作用而只剩下個體認知,以及當前速度 兩個部分在這種模型下粒子之間無法相互作用,相當於單獨的粒子進行重複整個 粒子群個數的最佳位置的搜索,這使得找到最佳解的機率大大的減少,由上面分 析知道,式(2.2)、式(2.3)即個體認知部分以及社會影響對粒子群最佳化演算法的 重要性。
以下為粒子群最佳化演算法的流程:
Step 1
:初始化粒子群的隨機位置(xij)和速度(vij)。Step 2
:評值粒子的適應值(fitness value),適應值根據最佳化問題所給的函數而 定。Step 3
:對每個粒子,將其當前適應值與其個體最佳位置pij比較,若當前適應值較佳則以當前粒子的位置更新pij。
Step 4
:對每個粒子,將其當前適應值與整個粒子群中最佳位置gj比較若當前適應值較佳則以當前粒子的位置更新粒子群最佳位置gj。
Step 5
:根據式(2.1)和式(2.4) 更新粒子的速度(vij)以及位置(xij)。S
tep 6
:檢查是否滿足停止條件,如未滿足則返回 step 2。通常以是否達到最大疊代次數或是最佳適應值的改變量是否小於給定的閥值做 為是否終止演算法之依據。
圖 2.1 為基本的粒子群演算法流程圖:
圖 2.1 基本粒子群演算法流程。