SCIP_EVENTTYPE_NODESOLVED包含的事件是什么意思?

时间:2019-06-27 16:16:53

标签: scip

我正在尝试使用事件处理程序来捕获对偶边界的更改。 There is no event in type_event.h for catching this,所以我想使用SCIP_EVENTTYPE_NODEFEASIBLE事件。

我对SCIP_EVENTTYPE_NODESOLVED由(SCIP_EVENTTYPE_NODEFEASIBLESCIP_EVENTTYPE_NODEINFEASIBLESCIP_EVENTTYPE_NODEBRANCHED)组成的事件之间的关系感到困惑。这些事件是不相交的吗?它们具体是什么意思?恕我直言,文档对此不太清楚。

我的猜测如下(假设三个事件不相交):

  • SCIP_EVENTTYPE_NODEFEASIBLE:此节点中的LP是不可或缺的。
  • SCIP_EVENTTYPE_NODEINFEASIBLE:该节点不可行或已被绑定修剪。
  • SCIP_EVENTTYPE_NODEBRANCHED:此节点上的LP解决方案是零碎的,已完成分支。

谢谢!

1 个答案:

答案 0 :(得分:3)

您的猜测几乎是正确的。如果通过传播或在求解节点LP之后检测到当前焦点节点不可行,则会引发SCIP_EVENTTYPE_NODEINFEASIBLE

但是,仅在找到新的现有解决方案后才通过修剪除去树中的开放节点。这是内部树动作,不会被任何事件捕获

幸运的是,您不必为此担心,因为双重限制不受修剪的影响。只需在每个SCIP_EVENTTYPE_NODESOLVED处查询对偶边界。