Как найти все возможные оптимальные решения в LP с GUROBI - PullRequest
0 голосов
/ 13 октября 2018

Я решил модель LP с GUROBI, и я знаю, что модель имеет бесконечное число оптимальных решений.Как вы можете видеть ниже, целевая функция и constr 1 имеют одинаковый наклон, а constr 1 является обязательным.GUROBI показывает только одно оптимальное решение, но как мне найти все возможные решения (или диапазон)?Как я могу найти количество оптимальных решений в более сложных моделях LP?

Maximize
   <gurobi.LinExpr: -1.0 x1 + 2.0 x2>
Subject To
   non negative x1 : <gurobi.LinExpr: x1> >= 0.0
   non negative x2 : <gurobi.LinExpr: x2> >= 0.0
   constr 1 : <gurobi.LinExpr: -1.0 x1 + 2.0 x2> <= 4.0
   constr 2 : <gurobi.LinExpr: x1 + x2> <= 5.0
   constr 3 : <gurobi.LinExpr: x1 + -1.0 x2> <= 3.0

1 Ответ

0 голосов
/ 14 октября 2018

Все оптимальные решения LP - сложная концепция.Их, вероятно, бесконечно много.У Gurobi есть инструменты для перечисления всех оптимальных целочисленных решений (пула решений), но это не применимо в чистом LP.Таким образом, короткий ответ - нет.

Можно перечислить все оптимальные базисы, но это требует некоторой работы (в основном кодирование базиса с использованием двоичных переменных: переменная или ограничение являются базовыми или неосновными).Смотрите эту ссылку .Этот подход может быть реализован путем добавления дополнительных ограничений или более эффективно с использованием вышеупомянутого пула решений.Хотя концептуально интересно, отмечается, что этот подход не является практичным для больших проблем.

...