我希望根据求解过程的状态动态地更改与切割生成和原始启发式算法相关的参数。当我在特定节点上设置分支后的参数时,它不会给我一个错误,但我不能确认它是否对后端进程进行了任何更改。
有人能确认在求解过程中更改参数是否真的会将这些参数设置为新值,以便进一步解决问题?
发布于 2019-07-04 14:58:21
可以,可以在搜索过程中更改参数。例如,SCIP将通过根据新的节点选择器的排序策略对开放节点队列进行重新排序来作用于节点选择器优先级的切换。
请注意,通常情况下,SCIP与其他求解器一样,不希望在搜索过程中修改参数,奇怪的组合可能会终止求解过程。
在解决过程中更改某个参数是否“安全”,这在一定程度上取决于该参数的特定实现。它应该总是安全的调整,例如,separating/maxrounds
或其他核心参数独立于特定的插件。但是,如果在搜索过程中动态启用单个插件,则它们可能会正常工作,也可能不会正常工作,因为它们错过了初始化步骤。
你可以看看src/scip/event_solvingphases.c
,它通过改变强调设置来调整几个参数。在搜索过程中调整这些参数肯定是安全的。
https://stackoverflow.com/questions/56878848
复制相似问题