【问题标题】:How to get `nl` file from `pyomo` from inside `pyomo` script solver?如何从`pyomo`脚本求解器中的`pyomo`获取`nl`文件?
【发布时间】:2017-06-11 20:00:08
【问题描述】:

我正在使用pyomo 构建许多模型,据我了解,pyomo 在求解模型之前会重新制定模型。

我想确切地知道模型在传递到求解器文件ipoptcouenne 时的样子。

从我看到的here 来看,我不清楚如何从脚本中获取nl 文件(但我知道如何从命令行获取它)。

这是我在 pyomo 中解决模型的方法:

ipopt_solver = SolverFactory('ipopt')
ipopt_results_solver = ipopt_solver.solve(my_model, tee=True)
print ipopt_results_solver

couenne_solver = SolverFactory('couenne')
couenne_results_solver = couenne_solver.solve(my_model, tee=True)
print couenne_results_solver

如何在求解之前获取nl 文件? (而且我认为吐出nl 以外的另一种格式同样容易)。

【问题讨论】:

    标签: python python-2.7 python-3.x pyomo


    【解决方案1】:

    如果您只需要 NL 文件,可以在文件名以 .nl 结尾的模型上调用 write 方法(例如,my_model.write('junk.nl')

    如果您想告诉求解器对象不要删除临时求解器文件以便在求解后访问它们,您应该在求解调用中添加keepfiles=True。这将打印临时求解器文件的位置。如果您需要从脚本中访问它们,我相信 NL 文件名可以作为求解器对象的 _problem_files 列表属性中的条目之一找到。日志文件名存储在_log_file 属性中。

    【讨论】:

      猜你喜欢
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      相关资源
      最近更新 更多