• 沒有找到結果。

導引式路徑改善法

在文檔中 Delivery Problem with Time Windows (頁 80-86)

第四章 調適型導引螞蟻演算法

4.3 導引式路徑改善法

螞蟻演算法是以群體為基礎,將求解過程所求得不錯的解,透過費洛蒙 激素記錄在路段上,是屬於廣度搜尋策略的方法。然而,許多研究指出,這 種僅具廣度搜尋策略的方法,必須搭配有力的區域搜尋方法,才能提升其解 題績效,因此研究配合GLS演算法,補足螞蟻演算法搜尋深度不足的缺點。

本研究求解問題屬PDPTW型態,每次執行作業交換時,皆須考慮一組 收、卸貨作業,以及服務時間窗、車容量與服務順序的限制,為避免交換法 複雜度太高而降低了求解效率,因此本研究採用路徑間與路徑中節點交換 法,配合巨集式啟發式演算法中的門檻接受法,設計導引式路線改善法的演 算核心。導引式路線改善法架構如圖4.4所示,包括路徑間1-0節點交換法、

路徑間 1-1 節點交換法、與路徑中節點交換法。求解SPDP問題的方式與作 業步驟,分別條列詳述於後。

一、路徑間 1-0 節點交換法

路徑間 1-0 節點交換法目的旨在減少車輛數(路徑數),Bent等學者 研究中指出,減少車輛數(路徑數)是減少總路徑成本的關鍵要素之一

【12】,且進行1-0節點交換法時,修改目標式如式(4.7)時,較僅考慮較 少車輛數與較低路徑成本的目標式而言,更可有效降低車輛數。

因此,本研究執行1-0 交換法時,目標式改以減少指派車輛數為主要目 標,加入考慮每條路徑中服務的作業(節點)數( 2

r

r

σ

− ∑

),將目標式(4.6) 修改為式(4.8),僅供路徑間 1-0 節點交換法使用。 

, 2, ( )

σ σ

σ

∈ ∈

∑ ∑

r r

Min r t r (4.7)

其中 σ:車輛集合;|σ|:使用的車輛數;

|r|:第 r 條路徑中服務的作業(節點)數;

t(r):第 r 條路徑的路徑成本

( )

2 2

0,

1 1 0 σ

= = = ∈

∑∑ ∑

m n f u k

− ∑

car ui

k u i r

Min C X r

(4.8)

1-0 交換法執行架構如圖 4.5 所示,從第一條路徑開始,將目前路 徑中所包含的其中一組需求(作業),試著插入其他路徑中,若可插入成 功,且車容量也能滿足限制,即將該需求作業從目前路徑中刪除,並插 入標的路徑中最適合的位置。反覆執行至目前路線中的需求作業皆無法 合併至其他路線中服務,即換其他路線重複執行相同的作業。

使 用1 -0 節 點 交 換 法 減 少 車 輛 數

現 有 解 改 變 ?

現 有 解 持 續 未 改 變 次 數 加1

使 用1 -1 節 點 交 換 法 改 善 現 有 解

現 有 解 改 變 ?

現 有 解 持 續 未 改 變 次 數 加1

路 徑 中 節 點 交 換 法 改 善 現 有 解

現 有 解 改 變 ?

更 新 現 有 解 持 續 未 改 變 次 數 等 於 0

更 新 現 有 解 持 續 未 改 變 次 數 等 於 0

更 新 現 有 解 持 續 未 改 變 次 數 等 於 0

現 有 解 持 續 未 改 變 次 數 加1

現 有 解 持 續 未 改 變 次 數

等 於 3 ?

現 有 解 持 續 未 改 變 次 數

等 於 2 ? 更 新 現 有 解 持 續

未 改 變 次 數 等 於 0

是 否

開 始

更 新 門 檻 值

符 合 停 止 條 件 ? 結 束

輸 出 目 前 最 佳 解

※ 停 止 條 件 :

1 . 所 有 門 檻 值 執 行 完 成 2 . 1 -0 、 1 -1 、 2 -2 皆 無 法 再 改 善 現 有 解

圖4.4 導引式區域搜尋法改善 SPDP 問題可行解架構圖  

設定初始參數值

i =j=s= 1

第i輛車中的第s組 作業,插入第 i+j 輛

車中服務

滿足所有 限制條件?

換下一輛車 ( j++)

第 i+j 輛 車存在?

作業改交由 第 i+j 輛車服務

第 i 輛車 中還有作業組?

i++

s=j=1 第 s 組 作業存在?

s++

第 i+j 輛車 存在?

結束1-0節點交換法

j=1

j=1 更新解特徵

懲罰值

成本增量 最小,且符合接

受法則?

  圖4.5 路徑間 1-0 節點交換法執行架構圖 二、路徑間 1-1 節點交換法

1-1 交換法執行架構如圖 4.6 所示,從第一條路徑開始,將目前路 徑中所包含的其中一組需求(作業),試著與其他路徑中的需求(作業)交 換,若可交換成功,且車容量與成本增量皆能滿足限制條件,即將交換 結果儲存於集合 S 中,當單一標的路徑中可交換的需求(作業)皆試著交 換完成後,若 S 為空集合,表示沒有任何可以交換的需求(作業),則換 下一條標的路徑嘗試交換;若 S 不為空集合,表示有成功交換的新路 徑,及選擇並接受成本增量最小的交換結果,作為兩條新的路徑,且目 前路徑中已經交換過的需求作業,在同一回合終將不在考慮其他交換的 可能性。如此反覆執行至目前路徑中的需求作業全部都試著執行交換 後,即換其他路線重複執行相同的作業。

設定起始參數 i = j = s = 1 Si為車輛 i 所服務的作業集合 Si+j為第 i+j 輛車所服務的作業集合 Si中的第s項作業,與Si+j中的作業,

逐一交換服務,並將交換成功,且符 合車容量的結果,儲存於集合S中

接受S中成本增量 最小的交換結果

S為空集合?

S中 成本增量最小的 交換結果符合接

受法則?

將s從Si中刪除

Si為空集合?

j++ 第 i+j 輛 車存在?

i++

j=1 第 i+j 輛

車存在?

是 是

否 否

1-1節點交換法結束 否

現有解 優於目前最佳

解?

更新解特徵懲罰值 更新目前最佳解

否 是

 

圖4.6 路徑間 1-1 節點交換法執行架構圖

該節點交換法是將目前路徑中的一組需求(作業),與其他路徑(標的 路徑)中的一組需求(作業)交換。需選擇標的路徑中成本增量最小的需求 (作業)進行交換,並將執行交換的兩個需求作業,都加入路徑中成本增 量最小的位置。為避免執行效率低落,以及避免搜尋過程快速落入區域 最佳解,因此路徑間 1-1 節點交換法並非選擇所有需求(作業)中成本增 量最小的那一個進行交換,而是只針對標的路線中成本增量最小的需求

(作業)進行交換。交換的必要條件必須同時滿足車容量限制,以及成本 增量必須小於或等於門檻值,如此反覆執行至目前路徑中的需求(作業) 皆考慮過後,即換下一條路徑重複執行相同的作業。值得注意的是,為 避免交換作業出現無窮回圈,因此本研究所使用的1-1 交換法設定在同 一回合中曾經作為現有路徑者,將不被當作標的路徑進行交換作業。

三、路徑中節點交換法

與路徑間 1-1 節點交換法相似,是將目前路徑中的二組需求(作業) 的服務順序重置。目的在於改善現有路徑的成本以及增加0 交換與 1-1 交換產生新的可行解的機會。路徑中節點交換法執行架構如圖 4.7。

設定起始參數 i =s = 1 Si為車輛 i 所服務的作業集合

Si中第s項作業與Si中其他作業s'逐 一交換服務(s'> s),將交換成功且 符合車容量的結果,儲存於集合S中

接受S中成本增量 最小的交換結果

S為空集合?

S中 成本增量最小的 交換結果符合接

受法則?

換下一條路徑 (i++)

第 i輛 車存在?

路徑中節點交換法 結束

現有解 優於目前最佳

解?

更新解特徵懲罰值 更新目前最佳解

圖4.7 路徑中節點交換法執行架構圖

4.4 調適型導引螞蟻演算法求解績效測試

在文檔中 Delivery Problem with Time Windows (頁 80-86)