[英]Linear programming of vehicle routing
需要幫助進行車輛路徑問題的線性規划。 在車輛路徑問題 (VRP) 中,車輛將為一組節點提供服務,從而使總行駛成本最小化。 我的決策變量是:Xij=1 如果在節點 i 之后訪問節點 j。 參數 dij 是節點 i 和 j 之間的距離。 所以,模型如下:
請注意,車輛從倉庫(節點編號 0)開始游覽,最后返回倉庫(約束 11 和 12)。 應該訪問所有節點(約束 13),並且當進入一個節點時,它應該離開該節點(約束 14)。 但是,當我在 cplex 中為大量節點解決此問題時,有時由於這樣的循環,解決方案無效:
在此解決方案的情況下,滿足所有約束但此解決方案無效,因為路由未連接。 現在,我的問題是我應該添加什么約束來完成模型。
正如@Erwin 提到的,您需要添加 subtour 消除約束。 簡要地:
雖然這個問題很老,但@alex 的回答中有一個重要的細節需要強調。 他的鏈接中的子旅游消除(SE)是通過延遲約束回調即時實現的。 記住這一點很重要,因為在較大的示例中,創建所有 SE 約束可能是不可能的,最好懶惰地評估它們。
在CPLEX_Studio128\\opl\\examples\\opl\\models\\TravelingSalesmanProblem
您可以找到您需要的一個小示例,即 subtour 消除。
謝謝你的回答。 我發現用於 subtour 消除的 Tucker 公式效果很好。
Ui-Uj+nXij<=n-1.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.