二进制变量下两类IF-THEN约束的线性规划等价转化问询
二进制变量线性规划约束解决方案
约束1:当且仅当A+B=2时,C=1
所有变量均为二进制(0或1),该约束等价于C与A、B同时为1的情况完全等价,对应的线性约束如下:
C ≥ A + B - 1:当A和B都为1时,右边为1,强制C≥1(二进制下C=1)C ≤ A:若A为0,强制C≤0(C=0)C ≤ B:若B为0,强制C≤0(C=0)
约束2:当且仅当A+B+D=3时,E=1
该约束等价于E与A、B、D同时为1的情况完全等价,对应的线性约束如下:
E ≥ A + B + D - 2:当A、B、D都为1时,右边为1,强制E≥1(二进制下E=1)E ≤ A:若A为0,强制E≤0(E=0)E ≤ B:若B为0,强制E≤0(E=0)E ≤ D:若D为0,强制E≤0(E=0)
关于你之前尝试的约束问题
你引入额外变量y的约束逻辑冗余,且未准确建立C与A、B的直接关联。上述方案无需新增变量,直接通过原变量的线性不等式即可严格满足约束要求。
内容的提问来源于stack exchange,提问作者Ire Dami
相关产品推荐
相关产品推荐

