Если вы не настаиваете на копию/клон, у вас всегда есть возможность закодировать свой тормозной критерий в терминах обработчика событий. Я уверен, что вы знаете наш How to on adding event handlers.
Существует также обработчик событий в исходном коде scip, так называемый мягкий обработчик события времени src/scip/event_softtimelimit.c
. Там вы можете найти пример кода, который изменит срок, после того как первое решение будет найдено. Параметры могут подаваться один за другим с использованием методов SCIPchg{Real,Bool,Int,Longint,Char,String}Param()
в коде или передаваться в качестве файла настроек, что может быть проще, если вы хотите изменить множество параметров без адаптации кода каждый раз.
Полезно использовать файлы настроек, сохраненные с помощью команды set diffsave
, которая сохраняет только настройки небезопасности. В противном случае, используя полный файл настроек, вы можете столкнуться с проблемами, потому что ограничение времени или ограничение памяти изменяется без контроля.
Копия, которая включает в себя структуры данных, такие как дерево, используемое во время процесса решения ветвей и границ, в настоящее время не представляется возможным. Копи-механизм SCIP позволяет копировать проблему в целом и корректировать формулировку путем изменения переменных доменов и/или объективных коэффициентов.