如果条件为整数编程

时间:2016-12-05 17:15:22

标签: linear-programming cplex gurobi integer-programming

我正在用条件

解决整数规划问题

如果a = 0则b = 0,否则b = 1

其中a是整数,而b是二进制

我查看了类似的上一个问题但找不到解决方案。 请帮助在上述条件下在整数规划中定义约束方程。

2 个答案:

答案 0 :(得分:0)

第一个约束很简单:a =0⇒b= 0可写为≥b。第二个约束(a≥1⇒b= 1)更复杂。如果a≤M,其中M相对较小,则可以将其写为M·b≥a。否则,您将需要使用名为indicator constraints的解算器功能。

答案 1 :(得分:0)

使用这两个约束:

a<=bM
b<=aM

其中M是大数(M> a)。当a = 0时,第一个约束是多余的,第二个约束是b = 0。如果&gt; 0则第二个约束是多余的,但是第一个约束会强制b得到值1(如果M足够大)。