#matlab #mathematical-optimization #gurobi
#matlab #математическая оптимизация #gurobi
Вопрос:
Я решаю задачу линейного программирования со смешанным целым числом (MILP) в matlab с использованием решателя gurobi. Во время итераций я вижу информацию, подобную:
Найдено оптимальное решение (допуск 1.00e-04) Лучшая цель 6.076620143590e 02, лучшая оценка 6.076620143590 e 02, разрыв 0.0000%
Мой вопрос: как получить доступ к информации о разрыве? Я хотел бы сохранять ее на каждой итерации в массиве. Однако, если я просто вызову X = gurobi(model);
, где model
содержится моя модель MILP, я не вижу информации о пробелах в X
.
Комментарии:
1. Возможно, вам потребуется вычислить это самостоятельно в рамках обратного вызова .
2. @sascha могу ли я сделать это в Matlab?
3. Эта страница может помочь: gurobi.com/documentation/8.1/refman/logging.html
Ответ №1:
Я обнаружил, что информация о пробелах уже возвращена gurobi начиная с версии 8. Я использовал версию 7 раньше, и поэтому у меня не было доступа к этой информации. Переменная в возвращаемом объекте, которая содержит информацию о разрыве, называется mipgap
, это объясняется здесь.