SCIP:在特定节点以各种模式获取下限和上限
SCIP: Getting lower bounds and upper bounds in various modes at a specific node
我想在各种模式下获取分支定界树的特定节点的下限和上限。它将帮助我比较各种强调设置。
为此(下限示例),
- 我使用
SCIPCopy()
在该节点制作了 MIP 的全局副本,获得了一个单独的 SCIP 实例
- 然后设置
separating/emphasis
为aggressive
,presolve
为False,limits/nodes
为1
optimize
模特
此过程在退出前在单个节点上进行多次单纯形迭代。
如果在分支定界树中处理节点之前将设置设置为separating/emphasis/aggressive
,这个下限是否会与获得的下限相似? (类似的疑问是通过更改 heuristics/emphasis/aggressive
来确定上限)
是否有函数 - SCIPComputeLowerBound(setting=1)
用于 SCIP_NODE
。 (类似地,对于 SCIPComputeUpperBound(setting=1)
?
如果我决定在separating
中使用aggressive
或fast
,我如何将节点的结果复制回原始SCIP的节点? (对于 "heuristics" 也是如此,我需要更新原始解决方案)。 我可以考虑将原始 SCIP 树中的设置更改为所需级别,并让它使用更改后的设置进行求解,但这将需要求解该节点两次。
下限可能会不一样,尤其是对于分离而言。原因是许多分隔符 运行 在根节点中比在树的更下方更长。此外,SCIP 中的分隔符和启发式算法有一个 frequency
,这意味着它们不会在每个节点都被调用。因此可能是在您当前的节点上没有启发式算法 运行,但是如果您创建一个新的子目录并求解根节点,则启发式算法将 运行.
这个函数SCIPcomputeLowerBound
应该做什么?解决整个节点但不改变任何东西? (不存在)
你肯定可以复制一个解决方案复制回来,例如查看 heur_rens.c
中的 createNewSolution
。你想从分离中复制什么?
我想在各种模式下获取分支定界树的特定节点的下限和上限。它将帮助我比较各种强调设置。
为此(下限示例),
- 我使用
SCIPCopy()
在该节点制作了 MIP 的全局副本,获得了一个单独的 SCIP 实例
- 然后设置
separating/emphasis
为aggressive
,presolve
为False,limits/nodes
为1 optimize
模特
此过程在退出前在单个节点上进行多次单纯形迭代。
如果在分支定界树中处理节点之前将设置设置为
separating/emphasis/aggressive
,这个下限是否会与获得的下限相似? (类似的疑问是通过更改heuristics/emphasis/aggressive
来确定上限)是否有函数 -
SCIPComputeLowerBound(setting=1)
用于SCIP_NODE
。 (类似地,对于SCIPComputeUpperBound(setting=1)
?如果我决定在
separating
中使用aggressive
或fast
,我如何将节点的结果复制回原始SCIP的节点? (对于 "heuristics" 也是如此,我需要更新原始解决方案)。 我可以考虑将原始 SCIP 树中的设置更改为所需级别,并让它使用更改后的设置进行求解,但这将需要求解该节点两次。
下限可能会不一样,尤其是对于分离而言。原因是许多分隔符 运行 在根节点中比在树的更下方更长。此外,SCIP 中的分隔符和启发式算法有一个 frequency
,这意味着它们不会在每个节点都被调用。因此可能是在您当前的节点上没有启发式算法 运行,但是如果您创建一个新的子目录并求解根节点,则启发式算法将 运行.
这个函数SCIPcomputeLowerBound
应该做什么?解决整个节点但不改变任何东西? (不存在)
你肯定可以复制一个解决方案复制回来,例如查看 heur_rens.c
中的 createNewSolution
。你想从分离中复制什么?