首页 > 解决方案 > 如何实现 AND/OR 语句逻辑?

问题描述

我对如何使用约束来实现这个语句有疑问:只有 A 或 B 或两者,然后是 C 或 D 或两者。我想用采用二进制值的约束来实现它。这是一个例子:如果A然后B,意味着A=B;A 或 B 或两者兼有,表示 A+B>=1。太感谢了。

标签: binarylogiclinear-programming

解决方案


让我试试。

第一A => B不一样A=B。然而,它与 相同B >= A。如果我们想要:A <=> B那么确实A=B

真正的问题似乎是:A+B>=1 <=> C+D>=1

A+B>=1 => C+D>=1
A+B=0 => C+D=0

我们可以把它写成一个不等式系统:

C+D >= A
C+D >= B
C+D <= 2(A+B)

假设所有变量都是二进制的。


推荐阅读