Насколько мне известно, Gurobi возобновляет оптимизацию с того места, где он оставался после вызова Model.Terminate()
, а затем повторного вызова Model.Optimize()
. Итак, я могу завершить работу и получить лучшее решение, а затем продолжить. Теперь я хочу сделать то же самое, но поскольку я хочу использовать части неоптимального решения, мне нужно установить некоторые переменные на фиксированные значения, прежде чем я снова вызову Model.Optimize()
и оптимизирую в остальном модель. Как это сделать, чтобы гуроби не начинался заново?
Гуроби возобновляет оптимизацию после модификации модели
Ответы (1)
Во-первых, это похоже на то, что вы описываете программу со смешанными целыми числами (MIP); модификация модели отличается от непрерывной оптимизации (линейное программирование, квадратичное программирование).
Когда вы изменяете модель MIP, информация о дереве перестает быть полезной. Вместо этого вы должны разрешить непрерывную (LP) релаксацию и создать новое дерево ветвей и разрезов. Однако предыдущее решение все же можно использовать в качестве начала MIP, что может сократить время решения для второй модели.
Однако ваш метод может быть избыточным с RINS алгоритм, который является автоматической функцией Gurobi MIP. . Вы можете управлять поведением RINS с помощью параметров RINS, SubMIPNodes и Heuristics.
person
Greg Glockner
schedule
07.08.2017
да, вы правы, я использую MIP и хочу поближе познакомиться с RINS (я новичок в LP / IP / MIP) - спасибо за ваш ответ
- person MrWoffle; 08.08.2017