首页 > 解决方案 > 如何将逻辑约束转换为一组线性(整数)约束?

问题描述

我正在使用python纸浆解决论文中的线性整数程序问题,https://arxiv.org/abs/1903.07118,但是论文中的一些约束是逻辑约束,例如逻辑运算符,

在此处输入图像描述

和逻辑AND运算符,

在此处输入图像描述

标签: pythonlinear-programming

解决方案


我认为一旦您知道如何建模z = x ∧ yz = x ∨ y(x,y,z 所有二进制变量),您就可以开始了。

  1. z = x ∧ y可以建模为:

       z ≤ x
       z ≤ y
       z ≥ x + y - 1
    
  2. z = x ∨ y

       z ≥ x
       z ≥ y
       z ≤ x + y 
    

推荐阅读