在时间限制后获得最着名的可行答案

时间:2014-12-18 14:36:27

标签: python mathematical-optimization linear-programming gurobi integer-programming

我正在Gurobi 6.0中解决大型MIP问题。我的顾问希望在问题上设定12小时的时间限制。我发现我可以设置TimeLimit参数,这将在分配时间之后终止求解器,但我不知道如何在那时检索最佳可行解,只是客观值和最优性差距。有没有办法获得最佳可行解决方案?

2 个答案:

答案 0 :(得分:1)

要获得目前为止最好的可行答案,首先应通过检查模型对象的Status属性,然后查询变量对象的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}

答案 1 :(得分:-1)

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