如何使用or-tools在我们的MIP问题中设置y = max(x1,x2,x3)等式约束?

时间:2019-05-22 18:29:24

标签: python python-3.x or-tools

我使用or-tools解决MIP问题,我想添加一个约束,其中变量y等于其他变量Xi中的最大值。例如:y = max(x1,x2,x3)。或工具中是否有任何max函数可以做到这一点?

我可以添加4个约束,例如:

y >= x1
y >= x2
y >= x3
y <= MAX  # where MAX is the upper bound of y.

但是可能存在错误的情况

x3 >= y.

2 个答案:

答案 0 :(得分:1)

使用python的max()运算符不起作用。 你应该看一下文学作品

请参阅:https://www.leandro-coelho.com/how-to-linearize-max-min-and-abs-functions/

答案 1 :(得分:-1)

Just put it into some simple structure, like:

-tuple max((x1,x2,x3))

-list max([x1,x2,x3])

-or set max({x1,x2,x3})

Last case is the best, becouse eliminate duplicates before checking difference.