PuLP python中的异或语句

问题描述

我正在用 python 处理 PuLP,我想对以下语句进行建模:

x 为正 XOR y 为正,其中 x 和 y 为整数。

如何将其转换为 PuLP 代码

我从 XOR

解决方法

我同意@kabdulla。二元变量将是这里的方法。

进一步扩展这个想法:您可以使用二元变量通过诸如 M*binary_variable_for_x <= X 之类的约束来指示 X 是否为正 (TRUE/1),其中 M 是一个足够大的数来解决问题限制 X。如果 X > 0,则 binary_variable_for_x 可以为 1。

当 Y 为正 (TRUE/1) 时执行相同的操作。

然后你可以编写另一个约束,要求这些布尔值的总和 >= 1。

binary_variable_for_x + binary_variable_for_y >= 1

有多种方法可以表述问题,但这可能是一种方法。