我做了一个用户剪切回调,为我正在处理的模型添加了一些剪切。这工作得很好。我想将这些剪切添加到搜索树的顶部节点。问题是,我无法弄清楚如何检索当前节点的深度。我做了一个节点回调,每次调用它时都会增加一个整数变量。这意味着当这个整数超过某个数字时,我不能在 cut 回调中做任何事情。但是,如果 cplex 有 fx,我现在没有。仅在左分支上创建节点,这意味着不向右分支上的节点添加任何剪切,反之亦然。
查看节点回调的文档
http://pic.dhe.ibm.com/infocenter/cosinfoc/v12r4/index.jsp?opic=%2Filog.odms.cplex.help%2Frefpythoncplex%2Fhtml%2Fcplex.callbacks.NodeCallback-类.html
我看到有一个 getDepth() 方法,它将节点标识符作为参数。但是如何获得这个标识符,我根本想不通。
问问题
721 次
3 回答
2
CPLEX 版本 12.10.0.0 有方法
getCurrentNodeDepth()
您可以在您的ILOUSERCUTCALLBACK
方法中调用它,它会将当前节点深度作为一个long
值。
于 2020-05-25T21:33:03.197 回答
0
我在 C++ 中尝试了同样的事情。
我试图使用函数 getDepth(),它将节点标识符作为参数。但我不知道如何获取节点标识符。
从文档中并不清楚,但是:当调用节点回调时,下一个要处理的节点是索引 0 处的节点。
然后,要知道当前节点的深度,需要使用索引 0 作为标识符。
于 2014-08-13T09:43:43.393 回答
-1
使用可调用库:
CPXgetcallbacknodeinfo(env, cbdata, wherefrom, 0, CPX_CALLBACK_INFO_NODE_DEPTH, &depth);
抱歉,我对演唱会技术了解不多。
于 2013-11-17T16:22:12.097 回答