我正在用条件
解决整数规划问题如果a = 0则b = 0,否则b = 1
其中a是整数,而b是二进制
我查看了类似的上一个问题但找不到解决方案。 请帮助在上述条件下在整数规划中定义约束方程。
答案 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足够大)。