首页 > 解决方案 > 如何在 C++ vs CPLEX 中实现宏节点回调

问题描述

我正在尝试实现一个宏回调来检索每个节点的目标值。我写了这段代码:

ILONODECALLBACK0(mycali) {
for (int i = 0; i < getNnodes(); i++) {
cout << "getObjValue"<< getObjValue(i) << endl;
}
}

当我运行代码时,它只在根节点中显示目标值,而 CPLEX 日志文件中有 10 个节点。预先感谢您的帮助。

标签: c++cplex

解决方案


据我所知,代码看起来是正确的。但是请注意,节点回调可能不是在这里使用的正确回调。选择下一个要处理的节点时,将调用节点回调。此时打印所有开放节点的目标可能不是您想要的。

您可以使用求解回调并从该回调中捕获节点的松弛值。

如果您想获得更多帮助,则必须使用完整的日志输出更新您的问题,包括回调的输出。


推荐阅读