首页 > 解决方案 > 为什么 CPLEX 的变量选择策略会影响用户分支决策?(Python)

问题描述

我按照示例在 MIP 的 control(branch) 回调中使用make_branch()进行分支。但我注意到,在变量选择策略的不同设置下,求解过程出人意料地不同。自从我用自己的决定替换了所有 CPLEX 的决定后,这怎么可能?

标签: pythoncplexmixed-integer-programmingbranch-and-bound

解决方案


CPLEX 无法判断您是否要从回调中查询其分支决策。因此,在调用回调之前,CPLEX 计算它将在哪些变量上分支,以便可以将此信息报告给回调。

即使您从未查询此信息,它仍然会被计算,并且计算该信息可能会改变其余的执行,从而导致不同的搜索树。


推荐阅读