如何在 Gurobi 中添加 if(A and B) then C 约束
How to add if(A and B) then C constraints in Gurobi
现在我有三个 5×3 矩阵,X、Y、Z。它们中的所有元素都是二进制变量。我想添加以下约束:
我知道我应该在这里引入一个辅助二进制变量。但我真的坚持如何将这些简单的条件等式写成线性约束。有什么意见、技巧、建议吗?
非常感谢!
实际上你不需要额外的二进制变量。
x(i,j)=1 and x(i+1,j)=0 => z(i+1,j)=1
可以解释为:
z(i+1,j) >= x(i,j)*(1-x(i+1,j))
这可以写成一个线性不等式:
z(i+1,j) >= x(i,j) - x(i+1,j)
同样,
x(i,j)=0 and x(i+1,j)=1 => y(i+1,j)=1
可以表示为:
y(i+1,j) >= x(i+1,j) - x(i,j)
现在我有三个 5×3 矩阵,X、Y、Z。它们中的所有元素都是二进制变量。我想添加以下约束:
我知道我应该在这里引入一个辅助二进制变量。但我真的坚持如何将这些简单的条件等式写成线性约束。有什么意见、技巧、建议吗?
非常感谢!
实际上你不需要额外的二进制变量。
x(i,j)=1 and x(i+1,j)=0 => z(i+1,j)=1
可以解释为:
z(i+1,j) >= x(i,j)*(1-x(i+1,j))
这可以写成一个线性不等式:
z(i+1,j) >= x(i,j) - x(i+1,j)
同样,
x(i,j)=0 and x(i+1,j)=1 => y(i+1,j)=1
可以表示为:
y(i+1,j) >= x(i+1,j) - x(i,j)