第二章 文獻探討
第三節 粒子群演算法
壹、 粒子群演算法概述
傳統的人工智慧(Artificial Intelligence, AI),僅在探討生物個體複雜構造之組
成,進而衍生的ㄧ門計算技術。若仔細觀察大自然現象,諸如螞蟻群落、侯鳥遷徙與 覓食、魚群為躲避捕食者侵略所產生的群流效應等,看似簡單個體所組成的族群中,
僅憑著個體在環境裡與其他個體間的互動行為之簡單規則,竟隱涵了許多不可預估的
「群體智慧」 (蔡清欉,2003)。與傳統人工智慧不同的是,群體智慧強調的並非只是 研究組成個體之複雜構造,而是藉由個體間的社會行為(Social Behavior)及自我組織 (Self-Organization)之智慧,使其系統更能充分展現符合需求的整體性行為,具有進ㄧ 步探索(Exploration)與開掘(Exploitation)新方法之動力。與傳統人工智慧不同的是,群 體智慧強調的並非只是研究組成個體之複雜構造,而是藉由個體間的社會行為(Social Behavior)及自我組織(Self-Organization)之智慧,使其系統更能充分展現符合需求的整 體性行為,具有進ㄧ步探索與開掘新方法之動力。相較之下,更能突顯出群體智慧之 自我組織、分散(Distributedness)以及並行(Parallelism)等特性(Kennedy et al., 2001)。
粒子群演算法(Particle Swarm Optimization, PSO)是由Kennedy & Eberhart(1995)年所 提出,它的靈感是來自於鳥類飛行聚集的行為,理論是循著一群鳥在一個區域隨機的 搜尋食物,一開始不曉得食物在哪,鳥群會尋著自己的經驗和群體間訊息的交換,選 擇最好的方案去接近食物。粒子群演算法即是學習這樣的行為來解決最佳化的問題。
每一個單一解就像一隻鳥在空間中搜尋,也稱為「粒子」,所有的粒子有利用適應函數 去計算出適應值,並使得適應值最佳化,且粒子群也描述著飛行的速度,沿著目前最 好的解飛行穿越問題的空間(Hu, et al.,2004)。
貳、 PSO 基本模式
PSO是一種全域搜尋法(Kennedy & Eberhart, 1995),此法具備一項重要特點,那就 是「記憶(Memory)」功能,這是其他啟發式搜尋法所無法比擬的,因此近十幾年來,
被廣泛應用於各領域中。PSO 在初始搜尋階段是以隨機方式產生一組初始粒子群,經 由反覆迭代搜尋後找到問題的最佳解。而在每一次的迭代中,每個粒子是透過兩個極 值來改變自己的搜尋方向:第一種就是粒子本身曾經找到適應值最佳的解,這個解稱 之為自身最佳解Pbest,另一種則是全部粒子群目前所找到適應值最佳的解,稱為整體最
佳解Gbest。假設粒子群係由m個粒子所組合而成,在搜尋過程中,粒子i的速度及位置 乃根據下列二式進行更新:
V V c r P X c r PG x (式2.16) X X V (式2.17) 式中,k為迭代次數,V 及X 分別為粒子i於第k代之速度與位置,而P 為粒子i於第 k代之自身最佳解,PG為第k代之整體最佳解,其更新後粒子i於第k+1代之速度為 V ,則X 為粒子i於第k+1代之位置,r1、r2為介於0~1之間的均勻亂數,c1和c2稱為 學習因子(Acceleration Constants),Eberhart和Kennedy建議將c1、c2皆取值為2。PSO 的 搜尋如圖2.15所示。
圖2.15 粒子速度及位置之搜尋示意圖 資料來源:(Kennedy & Eberhart, 1995)
在式2.16中的第二部份稱為粒子本身之認知模式,而第三部份則是粒子群中所謂的 群體模式。每一粒子之速度及移動位置,均受限於最大速度Vmax與最大位置Xmax,一旦 粒子更新後之速度及位置超出所設定的最大限制時,則需將其分別限定為Vmax及 Xmax 。
Y
X X
V
VP VG V
參、 線性慣量遞減(Linear Inertia Reduction)
為了解決不易選取合理之常數慣性權重的困難,Shi & Eberhart於1998年繼而提出 將慣性權重以線性遞減方式加以處理之方法,即將式2.18中的w以下列式子決定:
式中 為使用者設定的慣性權重上限值, 為慣性權重下限值,一般建議慣性權 重w之範圍為0.8~1.4。
Shi & Eberhart所提出之線性遞減慣性權重的概念,使得初始搜尋階段較高的慣性 權重值,藉以保持搜尋初期全域搜尋的靈活性,並隨著進化迭代之過程逐漸調降慣性 權重,進而轉入局部搜尋之動作,加強粒子之局部搜尋能力。但許多測試結果發現並 不是所有問題皆適合使用此一線性處理方式,因此使用慣性權重之線性遞減作法,仍 然有其改善空間(Shi & Eberhart, 1998)。
肆、 最大速度限制(Limitation of Maximum Velocity)
為了避免各粒子在使用式2.19後產生過大移動步幅,Shi & Eberhart (1998)亦建議給 予各粒子最大移動速度之限制,其最大速度計算公式如下所示:
V γ X X (式2.19) 式中Xub及Xlb分別為搜尋空間中設計變數之上、下限值, 則是用於取決搜尋空間中最 大速度的移動距離。
針對各粒子在更新其速度及位置時,有過大移動步幅之疑慮,經研究證實,一旦 採用最大速度限制加以約束後,使得粒子在搜尋成效上更為可靠,且可減少不必要的 計算時間(Shi & Eberhart, 1998; Carlisle & Dozier, 2001)。
伍、 動態慣量及最大速度遞減
動態慣量及最大速度遞減(Dynamic Inertia and Maximum Velocity Reduction)由於使 (式 2.18)
用線性慣量遞減的搜尋策略仍受問題之特性不同而影響其求解效能,求解品質的好壞 主要取決於線性調降之比例。一般而言,要使其能夠在初始搜尋階段以及接近最佳解 之搜尋時均有合適的w值,並不是件容易的事,且使用線性遞減易造成搜尋初期下降速 率過快,以及後期搜尋階段收斂速率過慢之現象,導致需花費較多的迭代次數才有機 會搜尋到問題之最佳解。另外,考量搜尋後期粒子會隨距離整體最佳解Gbest愈近,其 搜尋速度亦會逐漸下降,一旦搜尋初期及後期皆使用相同之最大速度限制下,不但會 造成後期搜尋效率不佳,且會浪費過多的結構分析次數。為了克服上述問題,Fourie &
Groenwold(2002)提出將慣性權重及最大速度限制予以動態遞減方式處理,其使用時機 為:當整體最佳解經過連續t世代後,其適應值仍無法改善時,則需進行動態遞減處 理,亦即:
(式2.20) 式中 和 分別為慣性權重及最大速度之動態調整係數,通常建議取值在0~1之間。
為第k+1代整體最佳解Gbest之適應值, 則代表第k世代整體最佳解Gbest之適 應值。其中,初始最大速度 則以式2.20加以定義。
上述作法之優點在於:僅需依據搜尋過程中整體最佳解Gbest 之適應值加以判斷是 否須調降慣性權重及最大速度,如此作法除了可節省過多的結構分析次數,更能提昇 粒子之搜尋效率,進而展現不錯的搜尋性能。故本文在慣性權重及最大速度方面,即 採用此動態遞減策略加以處理,而 和 兩者動態遞減係數則採用Fourie & Groenwold (2002)的建議值,即 = 0.99, = 0.95。另外,在初始最大速度方面,保留原始解空間之 搜尋範圍,故將 取值為1。
陸、 粒子群演算法架構
粒子群演算法初始化產生的粒子為一群隨機的粒子,透過迭代以找到近似最佳 解,在每一次的迭代中,粒子的移動受到自身目前為止所搜尋到的最佳適應值 Pbest, 以及社交鄰居中目前為止所搜尋到的最佳適應值記憶 Nbest 影響,我們也可以把母體中
所有的粒子都視為鄰居,則群體所搜尋到的最佳適應值記憶為 Gbest,Gbest 可視 Pbest 的 特例(李維平、江正文,2007)。
粒子群演算法最佳化的原始架構是非常的簡單,詳細步驟如下(Eberhart & Kennedy, 1995):
步驟一:在D 個維度的空間中,產生粒子的初始位置和速度。
步驟二:利用適應函數計算每個粒子在D 維度中的適應值。
步驟三:將粒子先前最好的適應值Pbest和目前搜尋到的適應值做比較,如果目前搜尋 到的適應值較優於Pbest,則用此粒子的新適應值和位置來更新Pbest。
步驟四:將母體中所有粒子的Pbest和目前搜尋到的做比較,如果目前搜尋到的適應值 優於Gbest值,則更新Gbest值與位置。
步驟五:利用式2.21、式 2.22 來更新粒子的速度和位置:
)) ( (
() ))
( (
() )
( )
(t 1 V t C rand P X t C rand G X t
V 1 best 2 best (式 2.21) )
( ) ( )
(t 1 X t V t 1
X (式 2.22) 其中,V(t+1)為下一回合的速度,V(t)為現在的速度;C1、C2 為學習因子,通常被 設定為 2.0 或 1.49445,當學習因子被設為相同值時,意味著粒子在自我搜尋以及社會 方面的搜尋具有同樣比重;Rand ()為介於 0~1 之間的隨機亂數;Pbest為目前經歷過的 最佳解位置,Gbest 為所有粒子找過最佳解位置;X(t)為目前粒子本身位置,X(t+1)為粒 子下一回合位置。
步驟六:返回步驟二繼續重覆執行,直到滿足終止條件。
在粒子群演算法中,粒子於解空間中的移動方向是受到粒子本身目前為止所搜尋 到的最佳解,以及全域最佳解所影響。Hu, et al. (2004)認為原始架構無法保證粒子能快 速收斂且避免局部最佳解的發生。因此,提出線性慣性權重因子,使粒子群能在初始 保持多樣性,並且也能在後期有效的收斂。模式改變之後如式2.23:
)) ( (
() ))
( (
() )
( ) 1
(t wV t C1 rand P X t C2 rand G X t
V best best (式 2.23) 其中,增加了 w 之後,改善了許多應用的表現,w 在過去的研究實驗中通常被設 置由 0.9 線性遞減至 0.4。合適的 w 設定將可以提供局部和全域一個平衡的探索 (Exploitation) 及開發(Exploration)能力(李維平、江正文,2007)。
柒、 吸引與互斥粒子群演算法
吸引與互斥粒子群演算法(Attractive and Repulsive Particle Swarm Optimization, ARPSO)採用以分散度為導向的搜尋(Diversity-Guided Search)策略,將分散程度區分為 吸引階段與互斥階段,並利用這兩個階段的交互交替來控制群體多樣性的變化,進而 避 免 於 求 解 的 初 期 陷 入 區 域 最 佳 解 ,ARPSO 的速度更新公式如式 2.24 (Riget &
Vesterstrøm, 2002):
id
id id
gd id
id t w V dir c Rand P X c Rand P X
V 1 1 2 (式 2.24)
其中dir參數代表粒子移動的方向,dir會根據整體粒子的分散程度(Diversity)與上下 限比較,判斷目前是屬於吸引階段或是互斥階段,如圖2.16:
iS Nj pij pj L
S S
diversity 1 1 1 2
(式 2.25)
若Diversity小於dLow時,代表原本是吸引階段但開始出現過於集中的現象,則dir設 為-1;若Diversity大於dHigh時,代表原本是互斥階段但開始出現過於發散的現象,則dir 設為1。
圖2.16 吸引階段與互斥階段的關係 資料來源:Riget & Vesterstrom, 2002
吸引階段與互斥階段的狀態會不斷地交替,這樣的意義在於適時地保持群體的多 樣性,避免群體過早收斂於區域最佳解,因此參數dlow與dhigh是ARPSO演算法得以發揮 效用的重要參數,使用者可依照各自的需求透過Training的方式來訂定,建議將dlow設 為5×10-6,dhigh設為0.25(Riget & Vesterstrøm, 2002)。
Riget & Vesterstrøm所提出的ARPSO只考慮分散程度大於上限或小於下限值,並未 考慮當值若於上、下限值間,粒子將如何移動的方向;Pant et al. (2007)提出ATRE-PSO,改進ARPSO未考慮分散程度介於上、下限值間,其粒子更新速度公式如式
Riget & Vesterstrøm所提出的ARPSO只考慮分散程度大於上限或小於下限值,並未 考慮當值若於上、下限值間,粒子將如何移動的方向;Pant et al. (2007)提出ATRE-PSO,改進ARPSO未考慮分散程度介於上、下限值間,其粒子更新速度公式如式