我正在使用具有Pyomo(使用GLPK)的具体模型,其中一年中的每一天都进行两次优化,但是在测试运行期间(仅仅几天),MIP差距有时非常高(大约8%)限制。我希望(在数据框中)存储每次优化所用的时间和达到的MIP差距,这样我就可以了解a)平均优化需要多长时间,以及b)结果与最优性的接近程度。我该如何检索这些数据?我找不到办法做到这一点。
使用的代码和数据太长,无法共享,但这就是我调用求解器并给出时间限制和差距标准的方式:
model = create_model(parameters_a, parameters_b)
solver = SolverFactory('glpk')
solver.options["mipgap"] = 0.01
solver.options["tmlim"] = 1000
solver.solve(model, tee=True, symbolic_solver_labels=False)
Python有各种用于计时的实用程序,这可能很有用。您还可以从solve()
调用中检查返回对象的内容:
import time
start = time.time()
results = solver.solve(model, tee=True)
print(results)
end = time.time()
print(end - start)