问题描述
我正在用 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
有多种方法可以表述问题,但这可能是一种方法。