如何在CPLEX中访问分支定界树中的最佳LP节点解决方案?

问题描述 投票:0回答:1

我正在有限时间内运行 MIP,并且它以非零间隙终止。我想访问最佳 LP 松弛(最小化问题的最佳下界)的解决方案(决策变量和目标),以便我可以想出添加/生成有效不等式的方法。有没有办法获取这些信息。

任何帮助将不胜感激。谢谢!

这是我迄今为止尝试过的。

  • 我尝试过 NodeCallback,它有助于找到目标函数估计,但它无助于获取决策变量的值。
  • ControlCallback 似乎为所有节点提供了此信息,但我不知道如何为活动/最佳节点(具有最低 LP 目标的节点)找到它。它还会减慢代码速度。
  • MIPCallback 似乎仅提供有关现有(整数)解决方案的信息。
linear-programming cplex branch-and-bound
1个回答
0
投票

函数 get_relaxation_point() 返回当前 LP 松弛的最优解。

参见示例https://github.com/PhilippeCouronne/docplex_contribs/blob/master/docplex_contribs/src/docplex_gencb.py

for j in self.locations:
            for c in self.clients:
                s, o = context.get_relaxation_point(
                    [self.supply_indices[c, j], self.used_indices[j]])
© www.soinside.com 2019 - 2024. All rights reserved.