Cplex最佳解决方案

时间:2016-12-20 17:55:11

标签: linear-programming cplex

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

似乎我不能使用回调,因为只有信息回调与动态搜索兼容,但是4个信息回调中没有一个经常被调用,足以在需要时提供信息。

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

我想得到:

  • Best Integer
  • Best Bound
  • 问题变量值。

由于

1 个答案:

答案 0 :(得分:2)

您可以使用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版,但某些功能可能会丢失)。

我希望这有帮助!