Переменное деление в Python or-tools - PullRequest
0 голосов
/ 16 декабря 2018

Я работаю с MIP-решателем , предоставленным или-tools (в python)

Предположим, у нас есть две переменные x и у .Я знаю, как максимизировать одну переменную ИЛИ сумму двух переменных. Например,

, если мы хотим максимизировать 2 * x , мы можем сделать это следующим образом

objective = solver.Objective()
objective.SetCoefficient(x,2)
objective.SetMaximization()

и если мы хотим максимизировать 2 * x + 3 * y , мы можем сделать это следующим образом

objective = solver.Objective()
objective.SetCoefficient(x,2)
objective.SetCoefficient(y,3)
objective.SetMaximization()

, но я не знаю, как максимизировать переменнуюэто делится на другую переменную.у меня вопрос как развернуть (х / у) ?

1 Ответ

0 голосов
/ 16 декабря 2018

MIP решатель принимает только линейные уравнения.По определению, деление не является линейным.Могут быть очень особые случаи, когда вы можете линеаризовать деление, например, если у имеет небольшой набор возможных значений.

Вы можете взглянуть на решатель CP-SAT, который предлагает деление, но не может иметь дело снепрерывные переменные.

...