我解决整数规划问题的条件如果在整数条件编程
如果A = 0,则B = 0,否则,B = 1
其中a为整数,而b为二进制
我查看了类似于此的前一个问题,但找不到解决方案。 请帮忙在整数规划中为上述条件定义约束方程。
我解决整数规划问题的条件如果在整数条件编程
如果A = 0,则B = 0,否则,B = 1
其中a为整数,而b为二进制
我查看了类似于此的前一个问题,但找不到解决方案。 请帮忙在整数规划中为上述条件定义约束方程。
第一个约束很容易:a = 0 ⇒ b = 0可写为≥ b。第二个约束(a b = 1)更复杂。如果一个≤ M其中M相对较小,那么您可以将其写为M ⋅ b ≥ a。否则,您将需要使用名为indicator constraints的解算器功能。
感谢回复,如果a为负整数,则约束a≥b不成立 –
通常,整数编程中不存在负整数。如果没有另外声明,则假定零的下限。 – mattmilten
使用这两个限制:
a<=bM
b<=aM
,其中M是一个很大的数目(M> a)中。当a = 0时,第一个约束是多余的,第二个约束是b = 0。如果a> 0,那么第二个约束是多余的,但是第一个约束会得到1的值(如果M足够大)。
既然b是二元的,你应该简化第二个约束到b <= a。 –
格雷格,这是我误解你以前的答案,我虽然你在M后面加的(点)是冒号。基本上,我只是告诉你已经做了什么。在你提到的第二个约束中,M是没有必要的。 –
它们是什么类型? – harold
a是整数,而b是二进制 –