Как линеаризовать ограничения в Gurobi - PullRequest
0 голосов
/ 01 мая 2019

Я использую Gurobi ,

У меня есть 2 переменные решения x и y, и я хочу линеаризовать некоторые ограничения, вот мой код:

m.addConstr( x == max(0, y) )
m.addConstr( x >= 0 )

1 Ответ

0 голосов
/ 03 мая 2019

Предполагая, что целевая функция является минимизацией, и вы просто хотите отследить максимальное значение чего-либо, скажем, энергетический пик,

Если m.addConstr (x> = 0) является реальным требованием, то выможно просто установить y = x, что не имеет смысла, так как x останется неотрицательным само по себе, без необходимости y

ИЛИ

вы можете использовать

m.addConstr(x>=0)
m.addConstr(x>=y)

и поместите x в целевую функцию с положительным коэффициентом стоимости.Это будет держать x привязанным к максимальному (0, y)

ref https://orinanobworld.blogspot.com/2011/01/max-and-min-functions-in-mip.html

...