SolverFactory.solve 摘要选项
SolverFactory.solve summary option
Pyomo 求解器调用可以通过命令行使用或从 Python 脚本实现。
带摘要标志的命令行如何调用
pyomo solve model.py input.dat --solver=glpk --summary
翻译成例如SolverFactory
class 在 Python 脚本中的用法?
具体来说,在下面的例子中,如何指定摘要选项呢?它是 SolverFactory.solve
的(未记录的?)参数吗?
from pyomo.opt import SolverFactory
import pyomo.environ
from model import model
opt = SolverFactory('glpk')
instance = model.create_instance('input.dat')
results = opt.solve(instance)
--summary 选项特定于 pyomo
命令。它不是求解器选项。我相信它真正做的就是执行行
pyomo.environ.display(instance)
解决后,您可以轻松地将其添加到脚本中。查询解决方案的一种更直接的方法是通过 "evaluating" 访问模型变量或 objective 的值。例如,
instance.some_objective()
instance.some_variable()
instance.some_indexed_variable[0]()
或
pyomo.environ.value(instance.some_objective)
pyomo.environ.value(instance.some_variable)
pyomo.environ.value(instance.some_indexed_variable)
我更喜欢前者,但如果您要访问不可变的索引 Param 对象的值,后者更合适。另外,请注意变量有一个 .value
属性,你可以直接访问它(如果你想提供热启动则更新)。
默认情况下,--summary
命令选项以 json 格式将 'result' 文件存储到模型目录中。
您可以通过在代码中添加以下内容来获得相同的结果:
results = opt.solve(instance, load_solutions=True)
results.write(filename='results.json', format='json')
或:
results = opt.solve(instance)
instance.solutions.store_to(results)
results.write(filename='results.json', format='json')
Pyomo 求解器调用可以通过命令行使用或从 Python 脚本实现。
带摘要标志的命令行如何调用
pyomo solve model.py input.dat --solver=glpk --summary
翻译成例如SolverFactory
class 在 Python 脚本中的用法?
具体来说,在下面的例子中,如何指定摘要选项呢?它是 SolverFactory.solve
的(未记录的?)参数吗?
from pyomo.opt import SolverFactory
import pyomo.environ
from model import model
opt = SolverFactory('glpk')
instance = model.create_instance('input.dat')
results = opt.solve(instance)
--summary 选项特定于 pyomo
命令。它不是求解器选项。我相信它真正做的就是执行行
pyomo.environ.display(instance)
解决后,您可以轻松地将其添加到脚本中。查询解决方案的一种更直接的方法是通过 "evaluating" 访问模型变量或 objective 的值。例如,
instance.some_objective()
instance.some_variable()
instance.some_indexed_variable[0]()
或
pyomo.environ.value(instance.some_objective)
pyomo.environ.value(instance.some_variable)
pyomo.environ.value(instance.some_indexed_variable)
我更喜欢前者,但如果您要访问不可变的索引 Param 对象的值,后者更合适。另外,请注意变量有一个 .value
属性,你可以直接访问它(如果你想提供热启动则更新)。
默认情况下,--summary
命令选项以 json 格式将 'result' 文件存储到模型目录中。
您可以通过在代码中添加以下内容来获得相同的结果:
results = opt.solve(instance, load_solutions=True)
results.write(filename='results.json', format='json')
或:
results = opt.solve(instance)
instance.solutions.store_to(results)
results.write(filename='results.json', format='json')