280 likes | 447 Views
Vehicle routing with time windows: Two optimization algorithms. Marshall L. Fisher ,Kurt O. Jornsten,Oli B. G. Madsen Operation Research,Vol.45,No3,May-June 1997,pp.488-492. 指導老師:林燦煌 博士 學生 : 劉芳怡. 目的. 作者提出兩個最佳化方法來解決有時間窗限制的車輛排程問題。 拉氏 鬆弛法 (Lagrangian relaxation) 。
E N D
Vehicle routing with time windows: Two optimization algorithms Marshall L. Fisher ,Kurt O. Jornsten,Oli B. G. Madsen Operation Research,Vol.45,No3,May-June 1997,pp.488-492 指導老師:林燦煌 博士 學生:劉芳怡
目的 • 作者提出兩個最佳化方法來解決有時間窗限制的車輛排程問題。 • 拉氏鬆弛法(Lagrangian relaxation)。 • K-Tree鬆弛法(K-tree relaxation)。
大綱 • 介紹VRPTW formulation • 拉氏鬆弛法(Lagrangian relaxation) • K-Tree鬆弛法(K-tree relaxation) • 結論
VRPTW之參數 • m=車輛數 • n=顧客數;index 0=場站 • Qk=第k輛車的容量 • qi=顧客i的需求量 • cij=從顧客i到顧客j的旅行成本 • tij=從顧客i到顧客j的旅行時間 • si=顧客i的服務時間 • ei=顧客i的時窗下限 • ui=顧客i的時窗上限 • T=為一個很大的常數,所有路線之中具有最大的可服務時間 • N={1,….,n},N0=NՍ{0} • M={1,….,m}
VRPTW之變數 • xijk= 1,代表顧客i至顧客j由第k輛車配送 0,otherwise • yik= 1,代表顧客i被第k輛車拜訪 0,otherwise • ti=顧客i到達時間 • t0ek=第k輛車離開場站的時間 • t0uk=第k輛車到達場站的時間
VRPTW之數學模式 • 目標:求總旅行成本最小 • cij=從顧客i到顧客j的旅行成本 • xijk= 1,代表顧客i至顧客j由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0}
限制式(2): • 表示車輛若服務某顧客,服務完之後必須離開該顧客。 • xijk= 1,代表顧客i至顧客j由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0}
限制式(3): • 限制每部車的起點與終點皆來自於同一配送中心 • xijk= 1,代表顧客i至顧客j由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0}
限制式(4): • 計算車輛從這個顧客到下一個顧客點的到達時間,同時避免不必要的子迴路。 • ti+si+tij-(1-xijk)T≤tj • xijk= 1,代表顧客i至顧客j由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0} • ti=顧客i到達時間 • tj=顧客j到達時間 • tij=從顧客i到顧客j的旅行時間 • si=顧客i的服務時間 • T=為一個很大的常數,所有路線之中具有最大的可服務時間
限制式(5): • 計算車輛從場站出發到下一個顧客點的到達時間。 • t0ek+t0j-(1-x0jk)T≤tj • x0jk= 1,代表場站至顧客j由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0} • tj=顧客j到達時間 • t0j=從場站到顧客j的旅行時間 • t0ek=第k輛車離開場站的時間 • T=為一個很大的常數,所有路線之中具有最大的可服務時間
限制式(6): • 計算車輛從顧客i到場站的到達時間。 • ti+si+tt0-(1-xi0k)T≤t0uk • xi0k= 1,代表顧客i至場站由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0} • ti=顧客i到達時間 • ti0=從顧客i到場站的旅行時間 • si=顧客i的服務時間 • T=為一個很大的常數,所有路線之中具有最大的可服務時間 • t0uk=第k輛車到達場站的時間
限制式(7): • 車輛抵達顧客i時,須在顧客i所規定的時間窗內到達。 • ei≤ti ≤ui • ti=顧客i到達時間 • ei=顧客i的時窗下限 • ui=顧客i的時窗上限
限制式(8): • 場站的時間窗上下限 • e0≤t0ek • t0uk ≤u0 • t0ek=第k輛車離開場站的時間 • t0uk=第k輛車到達場站的時間 • e0=場站的時窗下限 • u0=場站的時窗上限
限制式(10): • 每部車所服務的顧客總需求量必須小於等於車容量限制。 • xijk= 1,代表顧客i至顧客j由第k輛車配送 • 0,otherwise • m=車輛數,M={1,….,m} • n=顧客數,N={1,….,n},N0=NՍ{0} • qi=顧客i的需求量 • Qk=第k輛車的容量
限制式(11): • 每一顧客點之到達時間必大於0 • ti≥0 • 限制式(12): • xijk為0或1變數 • xijk∈{0,1}
限制式(13): • 確定每一顧客須被服務一次 • 限制式(14): • yik ∈{0,1} • 限制式(15): • 任一車輛只能從任一顧客點離開一次 • yik= 1,代表顧客i被第k輛車拜訪 • 0,otherwise
Solution Methods • 作者於時窗限制的車輛排程問題發展兩種最佳化演算法: • 拉氏鬆弛法(Lagrangian relaxation)。 • K-Tree鬆弛法(K-tree relaxation)。
Solution Method- Lagrangian relaxation(1/7) • 方法1:使用Lagrangian relaxation來分割變數,目的是將一個問題分成好幾個子問題。 • Lagrangian relaxation是一種可以求得近似最佳解(Near Optimal Solution)的方法,它藉由鬆弛(relax)複雜的限制式(constrain),使得原始的問題(primal problem)簡化。 • 它可以取代線性規劃(Linear Programming Relaxation),因為拉氏鬆弛法所求出來的下界(lower bound)比線性規劃所求出的下界,可以較逼近最佳化(optimal)。
Solution Methods- Lagrangian relaxation(2/7) • 在尋求目標函數的最小值時,可以將最複雜的限制式(constrain)移項再乘上一個Lagrangian multiplier,然後加回原來的目標函式,若限制式為不等式的情形下,拉氏乘數必需不為負的。 • 使用次梯度法(subgradient),去找出拉氏乘數,經由不斷地重覆計算以找到最接近最佳值的一個點。
Solution Methods- Lagrangian relaxation(3/7) • 將鬆弛限制式(15)並且導入拉式乘數λik。 • 子問題1變成: • min- (16) • subject to (13) and (14) • 是一個半指派問題
Solution Methods- Lagrangian relaxation(4/7) • 子問題2變成: min (17) subject to (2)-(12) • 是一個最短路徑問題,含有時窗及載重限制(shortest path problem with time windows and capacity constraints,SPTWCC)。 • 由於SPTWCC可能包含負cycles,為了避免發生此情形,two-cycle elimination(Kolen et al.1987)被使用來解決此種情形。
Solution Methods- Lagrangian relaxation(5/7) • 為了協調鬆弛限制式(15)所帶來的問題,將之寫成對偶型式: (18) Where
Solution Methods- Lagrangian relaxation(6/7) • 由於x,y在原始與對偶問題的目標函數的最佳解可能會有一個缺口(Gap=(Optimal solution-Lower bound)/Lower bound in %)。在這個case 對於VRPTW問題將是一個lower bound。 • 在式子(18)使用梯度最佳解(subgradient optimization)來做迭代。作者為了關閉對偶缺口,藉由引入branch-and-bound method,接著使用變數分離法(Variable Splitting Approach)去判斷lower bounds。
Solution Methods- Lagrangian relaxation(7/7) • 下面分割的規則是被使用在branching process: (1)分派一輛車給顧客,如固定yik不是1就是0。 (2)選擇過去最常拜訪的顧客。
Solution Method - K-tree Approach(1/3) • Tree: • Basis: one node is a tree • K-tree: • Basis: 有K個children is a K-tree ……
Solution Method - K-tree Approach(2/3) • Example: 4-tree
Solution Method - K-tree Approach(3/3) • 方法2:利用K-tree鬆弛法,是於時窗限制下所發展出的K-tree演算法;此法為應用求解TSP中典型解法1-tree的延伸。 • 在此法中,須假設每一路徑中至少須有兩個顧客。 • Fisher(1994)提到minimum K-tree method -有較少時窗違反的路徑發生。 -最少的限制式。
Conclusion • 這篇paper所使用的兩種演算法,皆能夠解決顧客數100的最佳化問題,但是尚無法判斷哪種問題形態對於此兩種方法是最合適的。 • 這兩個方法,無法像列產生法(Column Generation Approach)(Desrochers et al.1992)可以解決各種型態的問題。