如何在python docplex脚本中获取分支切割法探索的节点数量
docplex获取分支切割算法探索节点总数的方法
你可以直接通过求解完成后模型的solve_details属性获取对应数值,具体操作如下:
- 完成模型变量、约束、目标函数的定义并调用
solve()方法求解后,访问model.solve_details.nb_nodes_processed,返回值就是分支切割算法运行过程中总共探索的节点总数。
完整示例代码:
from docplex.mp.model import Model # 初始化你的优化模型 mdl = Model(name="mip_demo") # 此处添加你的变量、约束、目标函数定义逻辑 # x = mdl.binary_var(name="x") # mdl.minimize(2*x) # ... # 触发求解 solution = mdl.solve() if solution: # 读取已探索节点总数 explored_node_count = mdl.solve_details.nb_nodes_processed print(f"分支切割算法共探索节点数:{explored_node_count}")
补充说明:
- 即使求解过程因时间上限、节点上限、间隙阈值等停止条件提前中断,该属性依然会返回中断前已完成处理的节点数,统计数据不会丢失。
- 该数值由CPLEX求解器原生统计输出,和求解日志中打印的节点总数完全一致,包含所有被剪枝、被探索的分支节点。
内容的提问来源于stack exchange,提问作者Pablo Adasme
相关产品推荐
相关产品推荐

