scip - SCIP:在特定节点以各种模式获取下限和上限
问题描述
我想以各种模式在分支定界树的特定节点处获得下限和上限。它将帮助我比较各种强调设置。
为此(下限示例),
- 我在该节点上制作了 MIP 的全局副本,使用以下方法获取单独的 SCIP 实例
SCIPCopy()
- 然后设置
separating/emphasis
为aggressive
,presolve
为 False,limits/nodes
为 1 optimize
该模型
此过程在退出之前在单个节点上执行多次单纯形迭代。
separating/emphasis/aggressive
如果将设置设置为刚好在分支定界树中处理节点之前获得的下限,此下限是否类似于获得的下限?(一个类似的疑问是通过改变上限heuristics/emphasis/aggressive
)是否有一个功能 -
SCIPComputeLowerBound(setting=1)
对于SCIP_NODE
. (同样,对于SCIPComputeUpperBound(setting=1)
?如果我决定使用
aggressive
或fast
inseparating
,如何将节点的结果复制回原始 SCIP 的节点?(同样对于“启发式”,我需要更新原始解决方案)。我可以考虑将原始 SCIP 树中的设置更改为所需的级别,并让它使用更改后的设置进行求解,但这需要两次求解该节点。
解决方案
下界可能不一样,尤其是对于分离。原因是许多分隔符在根节点中运行的时间比在树的更下方运行的时间更长。此外,SCIP 中的分隔符和启发式方法有一个frequency
,这意味着它们不会在每个节点上都被调用。因此,可能在您当前的节点上不会运行启发式算法,但是如果您创建一个新的 subscip 并解决根节点,就会运行启发式算法。
这个函数应SCIPcomputeLowerBound
该做什么?解决整个节点但不改变任何东西?(不存在)
您可以复制绝对复制一个解决方案,例如查看createNewSolution
. heur_rens.c
你想从分离中复制什么?
推荐阅读
- java - 如果第一个字符是“+”或“-”,如何按字母顺序对 TreeMap 进行排序
- python - 用方括号将文件和 OUT 文件导入 python 的困难
- javascript - 使用引导程序 4 将 A 排序到 Z 或 Z 到 A 时,我的表没有排序
- python - django.core.exceptions.ImproperlyConfigured:AUTH_USER_MODEL 指的是尚未安装的模型“User.User”
- dmn - 关于“in”运算符,表 55,语法规则 49.c 在 DMN 1.3 规范中是什么意思?
- postgresql - 由于“类型 abstime 不存在”,Postgresql 从 11 升级到 12 失败
- r - 在 R 中的多列中查找不匹配的值
- reactjs - React 开发服务器刷新问题。我该如何解决?
- android - 如何伪造 Firestore 流
在科特林 - c# - 如何将变量从一个项目传递到另一个项目C#