需要帮助进行车辆路径问题的线性规划。 在车辆路线问题(VRP)中,车辆将服务于一组节点,使得总的行驶成本最小化。 我的决策变量是:如果在节点i之后访问节点j,则Xij = 1。 参数dij是节点i和j之间的距离。所以,模型如下:
请注意,车辆从仓库(节点编号0)开始巡视,最后返回仓库(约束11和12)。应该访问所有节点(约束13),并且当进入节点时,它应该离开该节点(约束14)。 但是,当我在cplex中为大量节点解决这个问题时,有时解决方案因为像这样的循环而无效:
如果是此解决方案,则满足所有约束,但此解决方案无效,因为路由未连接。 现在,我的问题是我应该添加什么约束来完成模型。
答案 0 :(得分:1)
正如@Erwin所提到的,您需要添加小计消除约束。简言之:
答案 1 :(得分:1)
尽管这个问题很旧,但@alex答案中有一个重要的细节需要强调。他的link中的子巡回消除(SE)通过延迟约束回调动态实现。请牢记这一点,因为在较大的示例中,可能无法创建所有SE约束,因此最好懒惰地对其进行评估。
答案 2 :(得分:0)
在CPLEX_Studio128 \ opl \ examples \ opl \ models \ TravelingSalesmanProblem中 你可以找到一个你需要的一个小例子,它是一个小小的消除方法 问候
答案 3 :(得分:0)
感谢您的回答。我找到了Tucker配方,用于消除树脂,效果很好。 UI-Uj的+ nXij< = N-1