Cplex 当前最佳解决方案

Cplex best current solution

我想在解决过程中获得有关复杂问题的信息。我的第一个想法是使用 IloCplex.IncumbentCallback,但它与动态搜索不兼容,但我通过动态搜索获得了更好的结果。 所以我正在寻找一种在不失去动态模式的情况下获取信息的方法。

我似乎无法使用回调,因为只有信息回调与动态搜索兼容,但是 4 个信息回调中的 none 被调用的频率足以在我需要时提供信息。

当 cplex 找到一个新的解决方案时,我想这个解决方案必须存储在某个地方,所以应该有一种方法来获取关于这个解决方案的信息

我想得到:

谢谢

您几乎可以通过 MIPInfoCallback:

检索所有这些
  • 对于最佳整数使用get_incumbent_objective_value(self)
  • 对于最佳绑定使用get_best_objective_value(self)
  • 要检索现有(最佳解决方案)值,请使用get_incumbent_values(self, *args)
  • 坏消息是当您想在节点 LP 解决方案中检索变量的值时:您需要使用 ControlCallback,它有一个 get_values 方法。确实在这里你失去了动态搜索。我不确定是否有办法解决这个问题..

以上链接指的是 Python API,但其他 API 的情况也应该类似。可以通过信息回调检索的信息是 here(尽管此列表指的是版本 12.5,并且可能缺少某些功能)。

希望对您有所帮助!