routes - 车辆路径的线性规划

标签 routes linear-programming cplex vehicle-routing

需要车辆路径问题的线性规划帮助。 在车辆路径问题(VRP)中,车辆将服务一组节点,以使总行驶成本最小化。 我的决策变量是:如果节点 j 在节点 i 之后被访问,则 Xij=1。 参数 dij 是节点 i 和 j 之间的距离。因此,模型如下:

enter image description here

请注意,车辆从仓库(节点号 0)开始巡游,最后返回仓库(约束 11 和 12)。所有的节点都应该被访问(约束13),并且当进入一个节点时,它应该离开该节点(约束14)。 但是,当我在 cplex 中针对大量节点解决这个问题时,有时该解决方案会因为像这样的循环而无效:

enter image description here

对于此解决方案,满足所有约束,但此解决方案无效,因为路线未连接。 现在,我的问题是我应该添加什么约束来完成模型。

最佳答案

正如@Erwin提到的,您需要添加子路线消除约束。简而言之:

  1. 解决问题。
  2. 分析解决方案。如果没有子路线,则该解决方案是最佳的。否则,对原始问题的子路线添加约束(在您的示例中,x_01+x_12+x_20 <= 2 且 x_34+x_45+x_53 <= 2)。转到1。

关于routes - 车辆路径的线性规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50379550/

相关文章:

networking - dhclient 是做什么的?

python - 寻找具有 11,390,625 个变量组合的函数的最小值

c++ - Coin-or-CBC 求解器性能 : command line utility vs. 编译的 c++ 程序

java - CPLEX Java - IloCplex 在此上下文中不支持二次方程

ruby-on-rails - 从 Rails 中的特定 URL 提供静态文件

angular - 如何将 Angular 2 应用程序部署为独立应用程序(使用 dist 文件夹)

Angularjs:如何从解析 routeProvider 注入(inject)依赖项

java - 如何快速找到给出最大值的点?请使用 Java 或 C++ 代码

java - 我如何使用 Java 解决 CPLEX : Infeasibility row 'c2' : 0 = -3

java - 如何使用 JAVA Concert 在 CPLEX 中结合时间限制和间隙终止标准