抛光期间会调用哪些回调?更具体地说,是否有一个回调会为在抛光过程中找到的每个新解决方案调用?
我在 C++ 中有一些(旧)代码使用 MIPInfoCallback 并且在 B&B 期间可以正常调用,但是在抛光过程中它似乎没有被调用,即使抛光发现可能有 20 或 30 个改进的解决方案。该文档指出,在抛光期间通常会调用回调,但可能是 MIPInfoCallback 仅在探索每个节点之前被调用,在我的情况下,抛光不会探索任何额外的节点。
我尝试切换到使用现有回调,但这似乎对我产生了巨大的性能影响 - 只需将回调的类型从 MIPInfoCallback 更改为 IncumbentCallback 即可将获得第一个整数可行解决方案的时间从大约 20 分钟更改为超过 3小时(我真的只是改变回调的类型,保持回调的主体不变)。我怀疑这是因为使用现有回调会在搜索中关闭某些内容。
这是在带有 CPLEX 12.1 的 Windows 上的 C++ 中,但计划很快更新到 12.5。