我有一些gurobi变量a [i],b [i],c [i](对于0到某个数字中的i),我想添加约束条件
for i in range(0, number):
m.addConstr(a[i]==b[i] if c[i]==1)
根据gurobi网站,这是可能的,但是当我尝试实现它(在python中)时,由于if,我一直收到无效的语法错误。有人知道我在做什么错吗?
谢谢
答案 0 :(得分:0)
如果c [i]是二进制变量,则可以在指示符约束下实现if-then-logic:
"false"
或者您可以使用重载形式:
for i in range(0, number):
m.addGenConstrIndicator(c[i], 1, a[i] == b[i])
有关更多详细信息和示例,请参见here。
答案 1 :(得分:0)
这里运行的for
循环将创建多个约束,因此,请尝试使用以下使用addConstrs()
方法的代码。
m.addConstrs((a[i]==b[i] for i in range(number) if c[i]==1), name = "c")