Я пытаюсь реализовать простую CP-SAT, где цель состоит в том, чтобы минимизировать наибольшее значение, присваиваемое всем переменным решения. Я могу минимизировать любую отдельную переменную или линейную функцию переменных, но мне кажется, что я не могу минимизировать максимум переменных. Есть ли способ добиться этого? Возможно, способ линеаризовать функцию max ()?
Примечание. У меня есть ограничения в моей модели, но я здесь их опускаю, поскольку не считаю, что они имеют отношение к моему вопросу.
from ortools.sat.python import cp_model
model = cp_model.CpModel()
num_vars = 50
variables = {}
for i in range(num_vars):
variables[i] = model.NewIntVar(0,i,'n_%i'% i)
Следующая строка всегда приводит к ошибке, как и альтернативные аргументы, например, итератор.
model.Minimize(max(variables))