[英]How to set Pyomo solver timeout?
如何設置 Pyomo solve() 方法的超時時間? 更具體地說,告訴 pyomo,在 x 秒后,返回當前找到的最佳解決方案?
所以我能夠通過 pyomo 文檔找到答案,我認為分享會有所幫助。
設置 Pyomo solve()
方法的超時時間:
solver.solve(model, timelimit=5)
但是,如果求解器未終止,則會拋出pyutilib.common._exceptions.ApplicationError: "Solver (%s) did not exit normally" % self.name )
。 我真正想要的是將timelimit
選項傳遞給我的求解器。 在我的cplex
求解器的情況下,代碼將是這樣的:
solver = SolverFactory('cplex')
solver.options['timelimit'] = 5
results = solver.solve(model, tee=True)
我在 PYOMO 中取得了以下成功。 cplex 和 glpk 的時間限制選項的名稱不同。
self.solver = pyomo.opt.SolverFactory(SOLVER_NAME)
if SOLVER_NAME == 'cplex':
self.solver.options['timelimit'] = TIME_LIMIT
elif SOLVER_NAME == 'glpk':
self.solver.options['tmlim'] = TIME_LIMIT
elif SOLVER_NAME == 'gurobi':
self.solver.options['TimeLimit'] = TIME_LIMIT
其中 TIME_LIMIT 是以秒為單位的整數時間限制。
調用pyomo grom comand行時,我無法執行此操作。 例如“ pyomo解決ReferenceModel_v2.py Instancia_Chica_fin_de_semana.dat --solver = gurobi --save-results = file.txt --logfile = log.txt --solver-options mipgap = 0.0
--solver-options TimeLimit = 1.0 --solver-optionsthreads = 8“,這不遵守一秒的時間限制
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.