Gurobi 7.0-Как найти n лучших решений для MILP?

Я использую Gurobi 7.0 через Matlab. Исходя из документации, чтобы найти n лучших решений, вам необходимо установить параметры:

PoolSearchMode = 2, чтобы систематически находить альтернативные оптимальные решения.

PoolSolutions = n, количество решений в пуле.

Когда я это сделаю, мой результат будет содержать те же поля, что и параметры по умолчанию, то есть только одно решение. Я также попытался изменить параметр SolutionNumber, но это не повлияло на результат.

Я подозреваю, что альтернативные оптимальные решения уже найдены, поскольку решатель сообщает в приглашении количество решений, эквивалентное n с объективными значениями, но я не могу их получить. Надеюсь, это не очередное ограничение API Gurobi Matlab.

Кроме того, я знаю, что могу найти эти решения, используя целочисленные разрезы, но, насколько я понимаю, это было бы гораздо более неэффективно, поскольку потребовалось бы запускать ветвление и привязанное дерево с самого начала.


person Septimus G    schedule 01.11.2016    source источник


Ответы (1)


Это невозможно. Интерфейс Gurobi Matlab ограничен, потому что он не рассматривает модель как класс, хотя Matlab предлагает объектно-ориентированное программирование. Это ограничивает многие функции. Однако CPLEX позволяет пользователям Matlab взаимодействовать с классом модели и извлекать решения из пула решений.

person Septimus G    schedule 11.11.2016