【发布时间】:2021-01-23 16:31:08
【问题描述】:
我是优化新手,并且有一个相当基本的查询。
我有一个模型,其中包含两个随时间变化的决策变量 x 和 y。我想根据x[t-1] 在t 时为y 添加一个条件约束,这样我就实现了以下代码:
for t in model.timesteps:
if t>1:
if model.x[t-1] <= 1:
model.addConstr(model.y[t] >= 100)
elif model.x[t-1] <= 0.5:
model.addConstr(model.y[t] >= 50)
elif model.x[t-1] <= 0.3:
model.addConstr(model.y[t] >= 20)
但是,上面的代码会产生错误:
文件“tempconstr.pxi”,第 44 行,在 gurobipy.TempConstr.bool gurobipy.GurobiError: Constraint has no bool value(你在尝试“lb
在阅读了本页之前的相关查询后,我相信我可能需要使用二进制指标变量来实现上述内容。但是,我不确定这是否会解决上述问题。
谁能给我指出正确的方向吗?
提前非常感谢!
【问题讨论】:
-
x[t-1] 是否曾经 > 1?您是否担心像 x[t-1] = 0.50001 这样的边缘情况?
-
您好,感谢您的回复!不,x[t-1] 在 [0,1] 之间,边缘情况不是问题。
标签: python optimization linear-programming gurobi