![数学建模与数学规划:方法、案例及编程实战(Python+COPT/Gurobi实现)](https://wfqqreader-1252317822.image.myqcloud.com/cover/577/52521577/b_52521577.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.2.4 逻辑异或
考虑两个命题P和Q,则二者的逻辑异或关系可表示为P⊕Q。当命题P、Q中有且仅有一个为真时,P⊕Q为真。引入3个0-1变量x1、x2和y,分别表示命题P、Q和P⊕Q的真值,则逻辑异或运算可以被等价地转换为以下约束。
![](https://epubservercos.yuewen.com/0DD641/31155568907421606/epubprivate/OEBPS/Images/txt003_13.jpg?sign=1738785282-R5QoqPcba8zjmTgqoN1CdxsfO1bIlQnf-0-c55e11c33d66c15deb7c6b1baa38678c)
下面使用Python分别调用COPT和Gurobi来验证上述转换的等价性。这里仅展示Python调用COPT的完整代码,Python调用Gurobi的实现方法与COPT基本一致,完整代码见本书配套电子资源2-2。
![](https://epubservercos.yuewen.com/0DD641/31155568907421606/epubprivate/OEBPS/Images/txt003_14.jpg?sign=1738785282-fshOKmjnuk8Hy0HRE2fKi6SR23DkCx1N-0-a8f33b26a9c30d42a043f799c6890cb2)
求解结果如下。
![](https://epubservercos.yuewen.com/0DD641/31155568907421606/epubprivate/OEBPS/Images/txt003_15.jpg?sign=1738785282-1RrAhojMxJJREdq1WcB8FSDpM1KdRUk2-0-96ccbfeb4c7343e79d1050f8f56eafdc)
进一步地,考虑N个命题的逻辑异或运算。引入N个0-1变量xi(∀i=1,…,N),表示对应命题的真值。引入0-1变量y,表示N个命题的逻辑异或运算的真值,即y=(x1⊕x2⊕…⊕xN)。y的真值取值情况可用以下约束等价描述。
![](https://epubservercos.yuewen.com/0DD641/31155568907421606/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1738785282-VdDUiZzpytmtudSZ2KuNDp62hzpB8704-0-a61a57937bf867b1d65a36451a145ad9)