未能找到路径的一部分_车辆路径规划三种MIP模型
車輛路徑規劃問題的三個MIP模型。從直觀的模型推導出高效的模型。
我們用最最標準的Capacitated VRP為例:
CVRP問題描述:給定一張完全有向圖:
, 其中 是客戶的集合, 分別是起點和終點, 是弧的集合。 給定一個車隊集合 ,每輛車的型號完全一樣且能夠裝載貨物的容量為 。 是對應所需要的貨物的數量。每個點 有配送需求 ,起點和終點的需求為0。目標是:找到一個車輛配送方案,所有客戶的貨物需求滿足,且最小化配送費用。配送費用實際就是車輛經過每條弧所產生的費用 。假設:1)圖
滿足三角形兩邊之和大于第三邊;2) 每個客戶只能被一輛車配送;3)每輛車從倉庫出發,經過若干客戶,回到倉庫后不能再被使用。這個組合優化問題暗含兩個決策點:1) 哪輛車配送哪些客戶;2)對每輛車而言,以什么順序配送。所以,我們定義一個決策變量
: 車輛 是否經過弧 ,如果經過則為1,否則為0。確定了該決策變量,上述決策也就確定了。下面我們給出整數規劃模型: 代表的是所有從點 出發的弧; 代表的是所有進入點 的弧; ( 是一個點的集合)(1.2)表示每個客戶都必須服務到位;(1.3)就是進入的流等于出去的流; (1.4)和(1.5)就是每輛車必須從o出發,回到d,不能停在客戶家不走了;(1.6)不能超載;(1.7)子回路消除。也就是避免出現,一輛車在幾個客戶之間無限打圈; (1.8)整數約束。
這個模型有個很不好的地方就是變量是三個索引,問題規模大了以后,變量瞬間就會變得很多。而且車輛都是相同的,整個搜索空間會有很強的對稱性,這會降低B&B分支的效率。最后一點是,子回路約束的數量是指數級,需要用行生成解LP松弛問題。所以我們改一改:
代表弧 被經過的次數,因為前面說的假設1),所以所有的弧最多只會被經過1次。嗯,這樣看起來,干凈了一些。其中(2.6)把子回路消除約束和滿足容量的約束合并了起來。這個模型的決策變量只有兩個index,消除了車輛帶來的對稱性,唯一不太好的地方就是(2.6)需要引入cut generation。
除了第二個模型以外,還可以對第一個模型做D-W[3]分解得到Set Partitioning模型。因為D-W的精髓就是“挑選合適的約束進入子問題”,所以先說哪些約束應該被選中。
觀察(1.3-1.5以及1.7),對于某個
而言即: 四個約束左邊的系數矩陣滿足Total Unimodular。這意味著這四個約束所構造的凸多面體的任意一個極點就是一個整數解[2],也就是一條出發于o終止于d且沒有子回路的路徑(如果沒有1.7的話,可能會出現一條從o至d的路徑加上一條子回路)。我們把這四個約束放入子問題,并且記這四個約束組成的凸多面體為P1。注意到(1.6)沒有被放進來,我們現在考慮(1.6)。如果把它加入P1,那么所有超載路徑會被去掉,反映在幾何上就是有部分極點被“砍去”,這時候我們得到凸多面體P2。按照D-W分解,需要用P2中所有的極點來表示主問題中的變量。然而,因為(1.6)的原因,突然多出了一些“非路徑”的極點。這些極點是不需要考慮的。兩條紅線代表(1.6)砍去的極點因為主問題的
是個整數變量,表示它只需要剩下的其余所有路徑極點即可。我們對主問題經過如下一頓D-W分解標準操作:其中:
是一個已知量,代表車 的路徑 中是否經過弧,經過為1,否則為0。 :D-W分解中的常見變量。 :車 的所有路徑。進一步對約束分析:
因為
的值是binary的,然后 也是binary的,所以有:如果 (3.5)不成立,(3.4)肯定也不成立。由于逆否命題與原命題等價,所以如果(3.4)成立,那么(3.5)也一定成立。那么(3.5)可以刪去。另外,經過觀察得知,即使 , 依然能被全部表示(因為它本來就代表路徑嘛)。而且在此條件下,(3.4)自然而然就成立了。還有,由于車輛是一致的,所以有
。根據[4]中的"commodity aggregation",我們進一步可以去掉所有的 以及上標 。于是,得到最后的主問題,也就是車輛路徑規劃的第三種模型了:其中:
所有合法路徑。 如果弧在路徑p中被使用則為1,否則為0。 如果點i在路徑p中則為1,否則為0。 。第三個模型的優勢:1)提供了很好的低界 ;2)能夠處理路徑相關的非線性成本或者約束。3) 減少相同資源帶來的對稱性問題。第一點和第三點的好處對于分支定界算法不言而喻,而第二點在我看來極大地提升了列生成的工程價值。
但是這個模型也有劣勢。子問題中包含了(1.7),所以子問題凸多面體P2是有指數級的極點。那么對主問題來說,我們只能先選擇一部分極點,然后慢慢生成剩余的。這也就引入了列生成。列生成和車輛路徑規劃(Vehicle Routing Problem, VRP)大概自從這篇文章[1]開始,相愛相殺了快30年。這30年里,幾乎所有高效的VRP精確算法都離不開列生成技術。子問題自身也是一個NP難問題,屬于Elementary shortest path problem with resource constraint (ESPPRC)。
所以在實際問題中,會采用一些啟發式算法先產生很多高質量的路徑,然后導入第三個模型里求解來從這些高質量的路徑中選擇出比較好的組合。
References:
[1] Agarwal Y, Mathur K, Salkin HM. A set‐partitioning‐based exact algorithm for the vehicle routing problem. Networks. 1989 Dec;19(7):731-49.
[2] Schrijver, A. (1998). Theory of linear and integer programming. John Wiley & Sons.
[3] Bertsimas, D., & Tsitsiklis, J. N. (1997). Introduction to linear optimization (Vol. 6, pp. 479-530). Belmont, MA: Athena Scientific.
[4] Desaulniers, G., Desrosiers, J., Solomon, M. M., Soumis, F., & Villeneuve, D. (1998). A unified framework for deterministic time constrained vehicle routing and crew scheduling problems. In Fleet management and logistics (pp. 57-93). Springer, Boston, MA.
總結
以上是生活随笔為你收集整理的未能找到路径的一部分_车辆路径规划三种MIP模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学python要有多少英语词汇量测试_“
- 下一篇: python中自定义变量名标识符_nam