1

我正在解决 Gurobi 6.0 中的大型 MIP。我的顾问想为这个问题设定一个 12 小时的时间限制。我发现我可以设置 TimeLimit 参数,这将在分配的时间后杀死求解器,但我不知道当时如何检索最佳可行解决方案,只是目标值和最优性差距。有没有办法获得最佳可行的解决方案?

4

2 回答 2

1

要获得迄今为止最好的可行答案,您应该首先通过检查模型对象的状态属性来验证是否存在可行的解决方案,然后查询X变量对象的属性。如果你已经命名了你的变量(使用 name 参数,使用 python api 的巧妙方法是创建一个具有非零值的字典。

import math
epsilon = 1e-6
m = grb.Model()
# .....
if m.SolCount > 0:
    solution = {v.varName: v.X for v in m.getVars() if math.abs(v.X) > epsilon}
于 2014-12-19T22:25:11.820 回答
-1

您是否尝试过使用Xn属性,可能与SolutionNumber参数结合使用?尽管对于您的情况,您应该保留默认的 0 值SolutionNumber。您可以从这里开始: http: //www.gurobi.com/documentation/6.0/reference-manual/xn

于 2015-01-03T18:27:12.010 回答