Pyomo - 使用 baron 求解器设置函数评估的最大数量
Pyomo - Set maximum number of function evaluations using baron solver
我想在使用 Pyomo(使用 BARON 求解器)时设置函数计算的最大次数。我的代码是:
from __future__ import division
from pyomo.environ import *
opt = SolverFactory('baron')
m = ConcreteModel()
m.x1 = Var(bounds=(-10.0, 10.0))
m.x2 = Var(bounds=(-10.0, 10.0))
m.o = Objective(expr=(2.0 * m.x2 + m.x1 - 7.0) ** 2.0 + (2.0 * m.x1 + m.x2 - 5.0) ** 2.0)
results = opt.solve(m) # maxEvaluations=5
print results
其中 expr
对应于 Booth 的功能。 我想将函数求值的最大次数设置为终止条件。我怎样才能做到这一点?
如果还可以获得更详细的结果输出,理想情况下列出 运行 最好的结果和函数评估的数量,那将是一个奖励。
您可以使用 solve
方法的 options
关键字参数将选项作为字典发送给求解器。选项逐字传递给求解器。您将需要查看各个求解器文档以了解它支持哪些选项(对于 BARON,请参阅 here)。例如:
solver = SolverFactory('baron')
solver.solve(model, options={'MaxIter': 5})
如果您想实时观看求解器过程,可以使用 tee
选项告诉 Pyomo 不要抑制求解器 stdout/stderr 输出:
solver.solve(model, options={'MaxIter': 5}, tee=True)
由于几乎所有求解器都是作为单独的子进程启动的,因此(目前)Pyomo 无法在求解器执行期间获取侵入性信息(如当前的现有变量值)。
我想在使用 Pyomo(使用 BARON 求解器)时设置函数计算的最大次数。我的代码是:
from __future__ import division
from pyomo.environ import *
opt = SolverFactory('baron')
m = ConcreteModel()
m.x1 = Var(bounds=(-10.0, 10.0))
m.x2 = Var(bounds=(-10.0, 10.0))
m.o = Objective(expr=(2.0 * m.x2 + m.x1 - 7.0) ** 2.0 + (2.0 * m.x1 + m.x2 - 5.0) ** 2.0)
results = opt.solve(m) # maxEvaluations=5
print results
其中 expr
对应于 Booth 的功能。 我想将函数求值的最大次数设置为终止条件。我怎样才能做到这一点?
如果还可以获得更详细的结果输出,理想情况下列出 运行 最好的结果和函数评估的数量,那将是一个奖励。
您可以使用 solve
方法的 options
关键字参数将选项作为字典发送给求解器。选项逐字传递给求解器。您将需要查看各个求解器文档以了解它支持哪些选项(对于 BARON,请参阅 here)。例如:
solver = SolverFactory('baron')
solver.solve(model, options={'MaxIter': 5})
如果您想实时观看求解器过程,可以使用 tee
选项告诉 Pyomo 不要抑制求解器 stdout/stderr 输出:
solver.solve(model, options={'MaxIter': 5}, tee=True)
由于几乎所有求解器都是作为单独的子进程启动的,因此(目前)Pyomo 无法在求解器执行期间获取侵入性信息(如当前的现有变量值)。