python - 如何在我们的 MIP 问题中使用 or-tools 设置像 y = max(x1,x2,x3) 这样的等式约束?
问题描述
我使用 or-tools 来解决 MIP 问题,我想添加一个约束,其中变量 y 等于其他变量 Xi 中的最大值。例如:y = max(x1,x2,x3)。or-tools 中是否有任何 max 函数可以执行此操作?
我可以添加 4 个约束,例如:
y >= x1
y >= x2
y >= x3
y <= MAX # where MAX is the upper bound of y.
但是可能会出现错误的情况
x3 >= y.
解决方案
使用 python 的 max() 运算符不起作用。你应该看看文献
见:https ://www.leandro-coelho.com/how-to-linearize-max-min-and-abs-functions/