复现文章:Layout Design of Parking Lots with Mathematical Programming
Konrad Stephan, Felix Weidinger, and Nils Boysen
Transportation Science 2021 55:4, 930-945
背景是停车场布局设计,我正在实现第一个最简单的MIP模型,符号、约束如下图


用computeIIS()查找矛盾约束,感觉问题出现在约束7-10上,又有大M约束,又有绝对值,但是笔算一通也没看出来:

我的约束7-10的代码:
for i in range(m1 + 1):
for j in range(n1 + 1):
model_r1.addConstr(fr[i,j] <= M * y[i,j])
model_r1.addConstr(fr[i,j] >= -M * y[i,j])
model_r1.addConstr(fr[i,j] <= M * y[i,j+1])
model_r1.addConstr(fr[i,j] >= -M * y[i,j+1])
model_r1.addConstr(fd[i,j] <= M * y[i,j])
model_r1.addConstr(fd[i,j] >= -M * y[i,j])
model_r1.addConstr(fd[i,j] <= M * y[i+1,j])
model_r1.addConstr(fd[i,j] >= -M * y[i+1,j])
我的尝试:
- 如上所述,参考csdn里的文章,用computeIIS()查找矛盾约束,没找出来
- 又参考另一篇文章,判断是否为大M取值的问题,从1e1试到1e10发现都不行
- 把约束注释掉|fr[i,j]|<= M * y[i,j+1]和|fd[i,j]|<= M * y[i,j+1]中的任意两条后发现模型可行
求指点!!