2015-12-21 4 views
0

Я хотел бы частично решить MIP, клонировать проблему и иметь эту копию проблемы продолжить оптимизацию, но с другой стратегией (правило выбора узлов, правило выбора переменных и т. Д.), и сохранение текущего дерева ветвей и границ. Я знаю, что это невозможно сделать ни с CPLEX, ни с Gurobi, поскольку они начнут оптимизацию с нуля в копии.
Есть ли способ сделать это с помощью SCIP?Клонирование частично разрешено MIP и сохранение текущего дерева B & B

Я бы очень признателен за любую помощь.

Бест,
Родольфо

ответ

2

Если вы не настаиваете на копию/клон, у вас всегда есть возможность закодировать свой тормозной критерий в терминах обработчика событий. Я уверен, что вы знаете наш How to on adding event handlers.

Существует также обработчик событий в исходном коде scip, так называемый мягкий обработчик события времени src/scip/event_softtimelimit.c. Там вы можете найти пример кода, который изменит срок, после того как первое решение будет найдено. Параметры могут подаваться один за другим с использованием методов SCIPchg{Real,Bool,Int,Longint,Char,String}Param() в коде или передаваться в качестве файла настроек, что может быть проще, если вы хотите изменить множество параметров без адаптации кода каждый раз.

Полезно использовать файлы настроек, сохраненные с помощью команды set diffsave, которая сохраняет только настройки небезопасности. В противном случае, используя полный файл настроек, вы можете столкнуться с проблемами, потому что ограничение времени или ограничение памяти изменяется без контроля.

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

 Смежные вопросы

  • Нет связанных вопросов^_^