【问题标题】:Accessing branch-and-cut node id in generic Cplex callback在通用 Cplex 回调中访问分支和切割节点 ID
【发布时间】:2019-12-10 17:46:35
【问题描述】:

我有一个使用 Benders 分解分解的优化问题。我实现了一个 Cplex 通用回调(在 JAVA 中),其中包括 Lazy、User 和 Heuristic 回调。现在,我需要添加一些切割管理策略,例如,限制树中每个节点的切割数量。问题是我不知道如何访问当前候选人的节点 ID。如果有人可以提供帮助,我将不胜感激。

【问题讨论】:

    标签: java cplex decomposition generic-callback


    【解决方案1】:

    此答案适用于刚刚发布的 12.10 版本:

    在松弛上下文中,您可以使用CPXXcallbackgetinfolong()CPXCALLBACKINFO_NODEUIDCPXCALLBACKINFO_NODEDEPTH 请求节点的UID 和深度。

    但是,在候选上下文中,您目前无法获得此信息。原因是上下文可能不会在节点的上下文中被调用(例如,当候选者来自启发式时)。我们已经在进行一项改进,以使这些信息至少在节点上下文中调用回调的情况下可用。另一方面,除非 CPLEX 疯狂地找到候选者,否则可能没有必要限制分离的惰性约束的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多