• 沒有找到結果。

特殊方法求解時間窗車輛路線問題

第二章 文獻探討

2.3 啟發式演算法

2.3.5 特殊方法求解時間窗車輛路線問題

大 部 分 研 究 所 採 用 的 路 線 改 善 法 都 是 分 別 使 用 Or-opt 、 2-opt* 及

-interchange 組成,Homberger 所提出的 ( , λ) 演化策略中的鄰域函式集合,就

是由上述三個所組成,而 Bräysy [22] 所提出的 Ejection Chain (EC) 則是一個專 門用來縮短路線的方法,如圖 8 所示,要消除路線 3,但因為路線 1 和 2 的時窗 限制關係,使得路線 3 上的點 i 無法直接插入 1 或 2,此時可以考慮 1 上的客戶 j 是否可以插入到路線 2,若是可以插入到路線 2,則路線 1 因為少了顧客點 j,

所以可以空出空間給予路線 3 上的點 i 進行插入,路線 3 上的顧客點就減少一個。

另外在 Bräysy [22] 提到其他方法,執行插入步驟時,先忽視時窗限制,先直接 插入路線中,在違法的路線中找出第一個違反時窗限制的顧客點。接著為了使路 線合法,需將車輛抵達違法顧客點的時間降低,這邊有兩種作法,第一是將違法 顧客點以前的合法顧客點,改插入到違法顧客點之後的位置。第二是將違法點以 前的顧客點重新排序,目的都是為了將違反時間窗限制的值降下來。

20

圖 8 Ejection Chain 示意圖

在 2003 年時 Bräysy [24] 提出的快速的區域搜尋法中使用了類似 Ejection

Chain 演算法當作鄰域函式,並且提出了多種策略來提升 Ejection Chain 演算法 的速度。

I. 限制 Ejection Chain 的最大長度和限制單一路線中重新插入的顧客數。

II. 限制在顧客重新插入路線後,使得路線總距離變長的距離。

III. 使用 Solomon 等人[25] 提出的 push-forward 和 push backward 的策略 來評估路線變動後的適應度。

IV. 重新插入顧客點時,會優先計算在幾何距離上較近的顧客,並且只會去 評估顧客點數最少的路線。

V. 單一顧客在插入新的位置時,會去比較目標路線中所有顧客點的幾何距 離,若這個距離超過一個使用者定義的距離限制後,則放棄這次的插 入。

21

Bräysy [23] 則提出 Injection Trees (IT),Injection Trees 作法類似 Ejection Chain,IT 的做法是將圖 8中路線 3 上的點 j 忽略容量和時窗限制直接插入到路 線 1,此時路線 1 是一個不可行的路線,接著將路線 1 的其他顧客點,盡可能插 入到其他沒參與交換的鄰近路線 (即除了路線 1 和路線 2) ,直到使得顧客點 j 可以不違反時窗限制的合法存在於路線 1 上,路線 1 改變為合法的解。Ejection

Chain 和 IT 的差別在於 Ejection Chain 會每移除路線 1 上的一個顧客點,就檢查 顧客點 j 是否可以合法插入路線 1,而 IT 則是直接將顧客點 j 插入路線 1,以節 省檢查的計算效能。

Lim 與 Zhang [18] 也是提出了兩階段求解的演算法,但是他們使用了改良後 的 Ejection Chain 演算法,來進行車輛消除程序,並搭配其他路線改善法的使用。

在他們展示的結果中,可以看到車輛消除程序造成良好的影響使的車輛數明顯較 少。車輛消除程序的做法是挑選顧客數最少的路線,將上面所有的顧客放進

Ejection Pool (EP) 之中,並刪除這條路線。接著會將這些顧客依加入 EP 的順序 去嘗試安排至其他的路線之中,可以合法插入已存在路線的顧客都會優先被插入 進存在路線。在安排顧客的過程中會去計算顧客 u 插入現有路線顧客 i 和 j 之 間的插入花費(式(29)) ,並挑選花費最少的位置插入。

( ) ( ) ( ) (29)

diu、duj、dij:分別代表顧客點 i 和 j、u 和 j、i 和 j 之間的距離。

22

和 :控制花費值中距離成本和時間延遲成本的比重。

( ) (30)

( ) (31)

在式(30)和式(31)中, 表示在 u 插入 i 和 j 之件後 u 最早可以開始被服務的 時間,而且這段時間顧客 u 是可以暫時違反時間窗的限制。式(31)中, 表示 u 服務的所需的時間, 則表示顧客 j 的最晚抵達時間,這一個時間是不能違反

顧客 j 的時間窗限制。

若是插入顧客後導致路線上有顧客的時間窗限制被違反的話,則會進行釋放 顧客的動作(如同 Ejection Chain 演算法中的 eject 步驟),在釋放顧客時會計算節 省成本 (kick saving, ks),假設顧客 為路線上第 x 個顧客,計算節省的路線距離

成本以及增加的延遲成本,延遲成本則是計算 mdl 值得到。整個節省成本的算法 如式 (32) 所示

( ) ( ) ( ) (32)

( ) ( ) (33)

:表示欲移除的目標顧客點 :表示現在的路線

:表示移除顧客點 之後的路線

:表示不包含路線 的其他路線所形成的部分解集合

23

式(33)中的 ( ) 則是利用式(24)計算所得,在計算出節省成本之後挑

選節省成本大的顧客移出這一條路線,並放入 EP 之中,並重複到這條路線上的 所有顧客都符合限制。接著,再從 EP 之中,挑選顧客繼續進行插入路線,直到 EP 中沒有顧客或是其他終止條件。

24

相關文件