VRP文獻賞讀07:An Optimization Algorithm for the Vehicle Routing Problem with Time Windows

 

引文格式


Madsen K O B G . An Optimization Algorithm for the Vehicle Routing Problem with Time Windows Based on Lagrangian Relaxation[J]. Operations Research, 1997, 45(3):395-406.


摘要

Our paper presents a new optimization method for the Vehicle Routing Problem with Time Windows (VRPTW). The VRPTW is a generalization of the Vehicle Routing Problem, where the service of a customer must start within a given time interval- so-called a
time window . Our method is based on a Lagrangian relaxation of the constraint set requiring that each customer must be serviced. The master problem consists of finding the optimal Lagrangian multipliers and the subproblem is a Shortest Path Problem with Time Windows and Capacity Constraints. The optimal multipliers are found using a method exploiting the benefits of subgradient methods as well as a bundle method. The method has been implemented and tested on a series of well-known benchmark problems of size up to 100 customers. Our algorithm turns out to be very competitive compared to algorithms considered in the literature, and we have succeeded in solving several previously unsolved problems.

我們提出了一種求解帶時間窗車輛路徑問題的新優化算法,它是VRP的一個推廣問題,要求顧客必須在規定的時間區間,即時間窗內被服務。我們提出放鬆每個顧客點必須被訪問約束的朗格朗日鬆弛方法,主問題主要負責尋找拉格朗日乘子,子問題則要尋找帶時間窗和容量約束的最短路徑問題。優化乘子通過次梯度優化和束方法。所提方法通過著名的多大100個客戶點的基準算例上進行驗證,我們的方法較以往的方法取得了更優的結果,併成功地求解了一些之前未被求解的問題。

引言

路徑和調度問題是物流系統的主要要素,爲該組合優化問題的最優解決方案已湧現出了大量的研究成果。車輛路徑問題的本質在於尋找一組涵蓋所有顧客點節點需求的、起始和終止於車場的路徑集合。約束爲:每一個顧客需求量已知,任意車輛不得超過其容量限制。目標爲:得到最小化的路徑距離、車輛數目或其他組合優化目標。

我們要討論的VRPTW是VRP問題的一個拓展,要求任何顧客在其給定的時間窗內服務,也可將其視爲一個資源約束路徑問題,還包含帶時間窗的多旅行商問題、撥號乘車問題和乘務員調度問題,本文研究也適用於這些問題。

求解VRPTW最成功的方法是基於帶約束最短路徑鬆弛的求解方案,Desrochers(1992)提出了列生成方法,Halse(1992)提出了拉格朗日分解法,兩種方法都能夠帶時間窗和容量約束的最短路徑子問題。即使這個問題是一個NP-Hard,存在僞多項式算法,則大部分的中等規模的算例都是可解的。

我們提出了一種放鬆每個顧客必須被訪問約束的朗格朗日鬆弛算法,主問題是發現拉格朗日乘子,子問題是爲每一車輛找到滿足時間和容量約束的最短路徑問題。我們創建了比 Dantzig-Wolfe分解更容易、比Variable Splitting更間接的例子,因爲拉格朗日乘子的數目更小的。

主問題是發現拉格朗日乘子,常用的次梯度優化算法收斂速度緩慢。因此我們利用不可微優化理論的一些成果探索了一種更爲複雜的主迭代方案。一系列的Somolen基準算例在文獻中Desrochers(1992)和Halse(1992)中被報道,我們也求解了一些先前未被求解的例子。

接下來的部分爲VRPTW的數學模型;現有方法的簡要綜述;我們的方法,我們主要關注Desrochers(1992)和Halse(1992)的方法,因爲他們的方法跟本文的方法具有一定的相似之處;最短子路徑問題是被如何求解的,也提供了一些評估特定算例難度的信息;然後是主問題,一個不可微凹最大值問題;接着講述了分支策略實現的相關描述;報告所提方法求解基準算例的結果,並對研究成果進行了總結。

VRPTW的數學模型

參數 描述
車輛集合

 

顧客集合,

顧客數量爲n,標識爲1,2,...,n,

車場表示爲0和n+1兩個節點;

節點間的連接稱之爲弧段,沒有終止於0的弧段,也沒有起始於n+1的弧段;所有路徑起始於0終止於n+1

,

有向網絡中,弧段(i,j)的成本和旅行時間

表示車輛的使用成本

除了0和n+1,我們假設弧段是充分聯通的

車輛載重能力
顧客的需求量

顧客的時間窗,等待沒有成本,不接受越過時間窗下界的服務

 並不完全滿足

取1表示車輛k由節點i前往節點j

表示車輛k開始爲顧客點i服務的時間

表示車輛k返回車場的時間

如果i不是k服務的,則該變量不表示任何含義

目標函數爲:服務完所有顧客點的總路徑成本最小,所有路徑必須是滿足時間窗和容量約束的可行路徑。

對於約束(8):連續鬆弛問題總是存在一個整數解,可行解是非凸的,因此它在實際的計算過程中是不需要的。

模型允許固定數目的車輛或車輛數目上限確定的情形,如果上限相當高,就意味着車輛數目是自由的。也可以十分容易的爲研究問題添加車輛數目的下界,車輛數目自由時,可以設置;如果車輛數目固定,則可將設置爲較大的值,確保弧段在任何情況下都不可用。對於車輛數目自由情況下的建模,可以爲每輛車設置成本,如果充分大時,首要目標是降低車輛數目,其次纔是最小化旅行成本。

VRPTW也包含許多著名的問題,如帶時間窗的多旅行商問題、車輛路徑問題和二位揹包問題。發現VRPTW最優解的過程是一個NP-hard,甚至是當發現可行解都是一個NP-hard,因爲包含了輛車的包裝需求問題。

現有方法的回顧

VRPTW是NP-hard,早期的研究聚焦於案例分析和啓發式方法,關於VRPTW優化的第一篇文獻出現於1987年,雖然求解該問題的啓發式算法的研究仍十分活躍,但這些方法在運籌優化領域缺乏通用性。雖然在Desrosiers(1995)回顧了一些啓發式方法,但是本文的研究焦點是優化方法。

Kolen(1987)提出了第一個VRPTW優化算法,該方法採用狀態空間鬆弛和動態規劃方法計算問題的下界,分支決策用於進行顧客路徑的分配。最大算例規模爲15個節點。

Fisher(1997)提出了基於K-tree鬆弛的VRPTW求解算法,載重約束被處理成集合中的顧客點必須被至少個車輛服務。雖然這個約束也是拉格朗日鬆弛,但是問題的解仍舊是帶修正弧段成本的K-tree問題。生成一個要求所有違背時間的弧段不可用的約束,他求解了一個多達100個顧客點的Solomn基準算例。

目前基於最短路徑鬆弛的方法是求解VRPTW的最成功的方法。基本的觀察是:對於每輛卡車而言,包含約束(2)~(8)的問題屬於一個帶時間窗和容量約束的初等最短路徑問題(Elementary Shortest Path Problem with Time Windows and Capacity Constraints,ESPPTWCC)問題。但是求解其鬆弛問題--帶時間窗和容量約束的最短路徑問題(Shortest Path Problem with Time Windows and Capacity Constraints,SPPTWCC)的高效的動態規劃算法,SPPTWCC問題允許一個顧客被多次訪問。大部分求解VRPTW的線性規劃和整數規劃解決方案,都是通過SPPTWCC來探索的得到的。Dantzig-Wolfedecomposition和Variable Splitting這兩種分解方法在計算中較爲常用。

Desrochers(1992,1995)採用列生成算法求解自由車輛數目下的VRPTW,在其1995年的論文中指出列生成算法實際上是丹尼斯沃夫分解,雖然在1992年的成果中他並沒有採用該術語。丹尼斯沃夫分解僅考慮約束(1),算法由路徑開始,每條服務一個客戶。其主問題爲在生成的路徑中找到成本最小的路徑集合,以確保所有顧客點被訪問到。一個路徑的時間數不一定是整數,但要求其位於區間[0,1]中。由於生成的路徑不是elementary paths,所以同一顧客點在一條路徑上可能不止一次被服務,故主問題是一個集分割類型的拉格朗日鬆弛問題。處於計算方便,1992年的文章,作者採用了集覆蓋類型的拉格朗日鬆弛作爲替代。如果時間和成本的三角不等式成立,這並不會改變最終的計算結果。

最優解的單純形乘子被用來修改SPPTWCC子問題的成本,子問題是完全一樣的,因此只解決了一個問題。如果發現一條編輯成本爲負的路徑,它就包含在主問題的路徑集合中。由於可以找到多個邊際成本爲負(negative marginal cost)的路徑,因此每次迭代都會生成許多路徑。

當沒有負邊際成本的路徑被生成時,算法終止。此時,主問題最優解中用到的所有路徑都將具有0邊際成本。如果主問題得到了一個整數解,他就是最優的;否則將會找到VRPTW的下界,並採用分支定界策略尋找最優解。該方法求解Solomn算例庫中多達100個節點的問題,也包含了許多其他方法無法求解的問題。

Jiirnsten(1986)提出使用Variable Splitting方法分解VRPTW,在Variable Splitting中一些約束被重新命名,一個新的約束被引入來建立原始變量和新變量的聯繫,並進行拉格朗日鬆弛。問題被分解爲兩個或更多的獨立的問題。對於VRPTW,使用二進制變量來替換,約束被引入,並進行拉格朗日鬆弛。這樣的話,問題就被分解成了兩個問題:一個是包含變量的問題,另一個是使用變量的問題。Variable Splitting有時也被成爲拉格朗日分解,已在文獻Jiirnsten et al. (1985) 和Guignard and Kim (1987)中進行了描述。對於VRPTW,有三種分割方式:

分解方式 子問題 約束
Shortest Path Problem with Time Windows (SPPTW)
Generalised Assignment Problem (GAP)
Shortest Path Problem with Time Windows and Capacity Constraints
Semi Assignment Problem (SAP)
SPPTWCC 約束(2)被複制,並應用於兩個問題的建模
GAP

Halse (1992)實現了分解,並對Solomn算例庫中多達100個節點的算例進行了求解,更進一步,選擇了連個105個節點的算例進行了求解。Olsen (1988)實現了分解方法,求解了16個節點的問題。的求解方法並未被實現。

一種基於拉格朗日鬆弛的新算法

拉格朗日鬆弛

在這一部分,我們提出一種新的求解VRPTW的拉格朗日鬆弛方法,雖然問題採用丹尼斯沃夫分解,但是採用對偶變量(拉格朗日乘子)優化的方式是新內容。我們展示了車輛數目的下界,並於採用方式進行丹尼斯沃夫分解得到的下界進行比較,我們採用拉格朗日鬆弛約束(1),這與Desrochers(1992)和FIalse (1992)採用SPPTWCC子問題的方法是一致的。

使用拉格朗日鬆弛並不是帶時間約束路徑問題的新內容,Desrosiers(1988)採用拉格朗日鬆弛分配約束,來評估帶時間窗的多旅行商問題的最小化車隊數目,該問題是不帶容量約束()的VRPTW。在她們最近的時間約束路徑問題綜述中,關注的焦點是基於丹尼斯沃夫分解的方法,並認爲丹尼斯沃夫分解能夠產生優於其他方法的計算結果。這是因爲子問題中獲得信息在丹尼斯沃夫主問題中得到了很好的利用,因此生成的主問題的所有路徑都是可用的。同時,也提到,丹尼斯沃夫分解可以爲分支定界方法的設計提供更好的信息。本文將顯示這些信息時如何被應用到拉格朗日鬆弛問題中的。

如果約束(1)被鬆弛,目標函數將被改寫爲:

這裏的拉格朗日乘子與顧客j必須被服務的約束相關聯。定義修正弧段成本,則乘子反映了一個顧客的服務成本,並且是一個正數。由於約束(1)爲等式約束,乘子也可能是負值。如果乘子非常大,將十分有希望在子問題中獲得服務多個顧客點的長路徑。如果乘子非常小(或爲負值),子問題將會得到非常短的路徑。

對於任意給定的拉格朗日乘子向量模型分解的結果是每輛車對應一個子問題,由於車輛本身是無差別的,因此對應的子問題都是相同的。因此,子問題屬於初等最短路徑問題,要求車輛從節點0返回到節點n+1,爲容量約束,爲時間窗約束,爲整數約束,也是一個ESPPTWCC。弧段成本通過拉個朗日乘子被修正,因此不再假設他們是非負或者整數。

在實際場景下,ESPPTWCC是不可解的,但是他的鬆弛問題SPPTWCC確是可以使用動態規劃方法求解的。因爲SPPTWCC,只要累計時間和容量消耗滿足要求,它允許一條路徑中的同一顧客點被多次訪問。使用SPPTWCC替代求解ESPPTWCC可以削弱問題的下界,但其得到的下界質量是相當優秀的。

與分配約束相關的拉格朗日乘子可被解釋爲給定約束顧客服務的定價問題,每輛車通過服務顧客的乘子選擇屬於他自己的成本最小的路徑。如果車輛數目是自由的,任何車輛都可以無成本的選擇(0)~(n+1)路徑;如果車輛數目有下界約束,例如,則對這個約束進行拉格朗日鬆弛,對應的拉格朗日乘子通過公式修正從0開始的終止於節點的弧段成本,這裏的表示與最小化車輛數目約束相關的乘子。

對於任意拉格朗日向量,鬆弛問題的目標函數的最優解給出了一個VRPTW最優目標函數值的對偶下界(Geoffrion 1974)。我們將SPPTWCC中的路徑成本定義爲邊際成本。若表示最短路徑的邊際成本,如,則有公式,此時我們定義的最小值。

如果SPPTWCC具有唯一的最優解,所有車輛將選擇所有的路徑,因爲車輛是無差別的。除非問題僅包含一輛卡車,否則無法得到VRPTW的可行解,因爲最短路徑上的所有顧客點被服務了次,而其他顧客點卻未被服務到。然而,在這裏我們要說的是當最佳拉格朗日乘子被找到時,SPPTWCC的路徑方案通常並不唯一。

 

命題一:假設有上界,如果則對於任意節點,存在一條以最小化邊際成本服務節點的路徑。

如果存在一條所有顧客點都可以被精確服務一次的路徑,則可行且最優的解就會被找到。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章