车辆路径的线性规划

时间:2018-05-16 20:39:55

标签: routing linear-programming cplex vehicle-routing

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

enter image description here

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

enter image description here

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

4 个答案:

答案 0 :(得分:1)

正如@Erwin所提到的,您需要添加小计消除约束。简言之:

  1. 解决问题。
  2. 分析解决方案。如果没有小计,则解决方案是最佳的。否则,在原始问题的基础上添加约束(在您的示例中,x_01 + x_12 + x_20< = 2和x_34 + x_45 + x_53< = 2)。转到1.

答案 1 :(得分:1)

尽管这个问题很旧,但@alex答案中有一个重要的细节需要强调。他的link中的子巡回消除(SE)通过延迟约束回调动态实现。请牢记这一点,因为在较大的示例中,可能无法创建所有SE约束,因此最好懒惰地对其进行评估。

答案 2 :(得分:0)

在CPLEX_Studio128 \ opl \ examples \ opl \ models \ TravelingSalesmanProblem中 你可以找到一个你需要的一个小例子,它是一个小小的消除方法 问候

答案 3 :(得分:0)

感谢您的回答。我找到了Tucker配方,用于消除树脂,效果很好。 UI-Uj的+ nXij< = N-1