首页 > 解决方案 > 使用 add_indicator 或 add_if_then 的时间优先级和负载约束

问题描述

我正在使用 Cplex 在 Python 中实现 VRP(车辆路由)的优先级和负载约束。我尝试使用 add_indicator 而不是 big-M。但我不知道如何为 i 制定 md1.add_indicators(x[i,j,k], t[j,k]==t[i,k]+t[i,j], true_values=1), j in A for k in K,实现约束t[j,k]>= t[i,k]+travel_time[i,j]。在我看来,add_indicator(或 add_if_then)仅适用于每个给定数量的 i、j、k,例如 md1.add_indicator(x[0,1,2], t[1,2]==t[0 ,2]+t[0,1],active_value=1)。

任何人都可以告诉我如何处理这个问题?提前致谢!!

标签: pythoncplex

解决方案


您是否知道,您可以使用逻辑约束甚至比指标更简单?

mdl.add(nbKindOfBuses==(nbbus40>=1)+(nbbus30>=1)) 

https://www.ibm.com/developerworks/community/forums/html/topic?id=0bab672a-5c2c-4235-bdf8-3837d4b32c46&ps=25


推荐阅读