• 沒有找到結果。

應用粒子群最佳化演算法

第三章 模式設定與研究方法

3.5 揀貨路徑規劃

3.5.4 應用粒子群最佳化演算法

粒子群最佳化演算法為一種具有群體智能(Swarm Intelligence)的演算 法,搜尋時透過粒子的認知模式與社會化模式,不斷修正移動速度與所在位 置,直到所有粒子找到全域最佳解。而粒子群最佳化演算法已於文獻探討中,

介紹其起始背景、原理、發展及應用,於此小節將詳述如何應用粒子群最佳 化演算法於揀貨路徑規劃。

3.5.4.1 粒子群最佳化演算法之演算流程

應用粒子群最佳化演算法求解問題時,首先初始設定包括粒子編碼方式

與使用 PSO 時所需之參數,再隨機產生各粒子起始位置及起始速度,將所得 之位置代入適應函數中,計算各粒子適應值,依此適應值找出各粒子至目前 為止之個別最佳位置與群體最佳位置,再更新各粒子速度與位置,隨後檢查 演算法是否達到終止條件,是則輸出結果,否則反覆更新各粒子速度與位置。

PSO 演算法流程如圖 3.8。

隨機產生粒子之 起始位置與起始速度

初始設定

計算每個粒子的適應值

更新目前粒子最佳適應值 與群體最佳適應值

更新每個粒子速度與位置

是否達到終止條件

輸出結果 是

圖 3.8 PSO 演算流程圖 3.5.4.2 粒子群最佳化演算法之初始設定

本研究將粒子群最佳化演算法應用於揀貨路徑規劃,而每一個粒子即為 一組可行解,於本問題中則代表一組揀貨路徑。

假設一張訂單中包含有四個儲位之貨品,儲位編號分別為 11, 87, 99, 341,由於揀貨員須從 I/O 點出發揀取貨品,假設此揀貨員依序揀取儲位 341, 87, 99, 11,揀完所有貨品後回到 I/O 點,其中儲位編號 0 代表 I/O 點編號,

可得到一揀貨順序(0, 341, 87, 99, 11, 0)。

由於此揀貨路徑為一封閉路徑,為簡化編碼形式,將省去最後一個編號,

所以揀貨順序編碼形式為(0, 341, 87, 99, 11),但考慮到本研究倉儲有 400 個 儲位,儲位編號落差過大,將不利於 PSO 運算,因此本研究將揀取儲位之編 號重新編列,由小到大重新給予編號。

(0, 341, 87, 99, 11)

重新編號

(1, 5, 3, 4, 2)

因此第 i 個粒子為 Xi=(xi1, xi2, …, xiD),其中 xiD代表某個儲位編號,此粒 子表示揀貨員依序揀取儲位 xi1, xi2,…, xiD

Xi= (xi1, xi2, xi3, xi4, xi5) = (1, 5, 3, 4, 2)

相關參數設定包括,粒子數、最大速度、學習因子、慣性權重及終止條 件。根據以往學者的研究結果【49、50、55】,各參數可依據以下設定:

粒 子 數:一般粒子數設在 20 到 30 之間;學習因子:學習因子c1c2之合小 於 4;慣性權重:慣性權重(

w

)設定介於 0.9 到 1.2;最大速度、終止條件通 常依使用者與問題特性而定。

3.5.4.3 粒子群最佳化演算法之適應函數

適應函數之功能在於評估 PSO 中的粒子是否找到理想位置,因此適應函 數隨著研究問題的不同而有所差異。在本研究中將 PSO 應用於揀貨路徑規 劃,因此以最小化揀貨距離作為適應函數。

3.5.4.4 粒子群最佳化演算法之速度與位置更新

針對粒子速度與位置更新運算公式之使用,本研究將採用 Shi and Eberhart 所提出之慣性權重模式,此模式亦為文獻中最廣為被學者所使用之 公式。

) x p (

* ) ( Rand

* c ) x p (

* ) ( rand

* c v

* w

vnewold old   old (3.9)

new id old id new

id

x v

x  

(3.10)





, v -x if v

-, v v v -if v

, v x

if v

v

max new

id max

max new

id max new

id

max new

id max

new

id (3.11)

各相關變數之定義如下:

i 表示第 i 個粒子。

d 表示第 d 個空間維度,d=1,2,…,D。

Xi表示第 i 個粒子的位置,Xi=(xi1, xi2,…,xiD)。

Pi表示第 i 個粒子先前最佳的位置,Pi=(pi1, pi2,…,piD)。

Pg表示群體粒子中最佳位置,Pg=(pg1, pg2,…,pgD)。

Vi表示第 i 個粒子的速度,Vi=(vi1, vi2,…,viD)。

v

max表示粒子可移動之最大範圍。

在粒子速度方面,第 i 個粒子之速度為 Vi=(vi1, vi2,…,viD),於本研究中表 示儲位編號改變量。由於本研究所採用之粒子編碼形式為整數編號,因此當 粒子經過速度更新後,可能產生非整數之編號或編號超出原始範圍,所以本 研究將發生上述問題之粒子重新賦予編號。

假設第 i 個粒子之速度為

Vi=(vi1, vi2, vi3, vi4, vi5) = (0, -3, +2, -1, -3) 因此第 i 個粒子依速度更新其位置

(1, 5, 3, 4, 2) + (0, -3, +2, -1, -3) = (1, 2, 5, 3, -1) 將儲位編號依大小重新編列

(1, 2, 5, 3, -1)

重新編號

   

(2, 3, 5, 4, 1)

最大速度之設定將決定粒子移動範圍,而本研究中每張訂單品項數皆不 同,因此粒子空間維度也不相同,所以將最大速度定為單一值的方式並不適 用,最佳設定方式因隨著粒子空間維度變化而改變,依此本研究將採用比例 之方式設定最大速度。假設比例值

v

max

 0 . 2

,若粒子空間維度為 5,則

1 5

* 2 .

0 

,表示粒子最大所能移動範圍於

 1

之間。

3.5.4.5 最大迴圈插入法結合粒子群最佳化演算法

考慮到粒子群最佳化演算法之初始解是以隨機方式產生,因此在求解過 程中,可能因隨機產生之母體無法均勻散佈於求解空間中,致使求解品質低 落,因此本研究擬將最大迴圈插入法所求得之解作為粒子群最佳化演算法之 初始解,藉此以避免粒子盲目搜尋並期盼提昇其求解品質。

隨機產生粒子之 起始位置與起始速度

初始設定

計算每個粒子的適應值

更新目前粒子最佳適應值 與群體最佳適應值

更新每個粒子速度與位置

是否達到終止條件

輸出結果 是

代入MLI之解 作為初始解

圖 3.9 最大迴圈插入法結合粒子群最佳化演算法之演算流程