【问题标题】:What do the events that `SCIP_EVENTTYPE_NODESOLVED` comprises mean?`SCIP_EVENTTYPE_NODESOLVED` 包含的事件是什么意思?
【发布时间】:2019-06-27 16:16:53
【问题描述】:

我正在尝试使用事件处理程序捕捉双重绑定的变化。 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 解决方案是分数的,并且已完成分支。

提前致谢!

【问题讨论】:

    标签: scip


    【解决方案1】:

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

    但是,只有在找到新的现有解决方案后才能通过修剪来移除树中的开放节点。这是一个不被任何事件捕获的内部树操作。

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

    【讨论】:

    • 非常感谢,格雷戈尔!正如您所说,我实际上不需要知道节点事件的详细信息来检查绑定中的更新。但是学习这个很好。像我这样的普通人如何对 SCIP 文档提出改进建议?
    • 我们一直在努力改进文档。由于我负责文档,因此您可以随时亲自与我联系。我将在网页上更新我的职责,以使这一点更清楚。另一种方法是使用submission form for bugs,它将在我们的 gitlab 中创建 SCIP 票证。期待您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2011-09-13
    • 2019-02-15
    • 1970-01-01
    相关资源
    最近更新 更多