8

如何设置 Pyomo solve() 方法的超时时间?更具体地说,告诉 pyomo,在 x 秒后,返回当前找到的最优解?

4

2 回答 2

11

所以我能够通过 pyomo 文档找到答案,我认为分享会很有帮助。

要为 Pyomosolve()方法设置超时:

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)

更多关于pyomocplex 文档

于 2016-02-15T10:02:34.467 回答
7

我在 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 是以秒为单位的整数时间限制。

于 2018-06-20T14:42:03.043 回答