【发布时间】:2020-11-16 17:16:14
【问题描述】:
我在 python 上使用 gurobi 和 我想解决一个路线问题,但是有一些限制我不知道怎么写,如图:
我尝试了几种方法,
第一次尝试:model.addConstr(a[j,k] == max_((b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M), 0) )
第二次尝试:单独使用指标约束,如下所示
model.addConstr((c == 0) >> (b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M <= -eps) )
model.addConstr((c == 1) >> (b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M >= 0))
第三次尝试:model.addGenConstrMax( a[j,k], [0, b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M] )
运行代码,但不是每次都运行。
- 注意,M 代表 BigM,我设置的 eps 是 1e-6
- a[]和b[]是连续变量,x[]是二元变量,T_ij[]是参数
【问题讨论】:
-
这已在official Gurobi forums 中得到解答。