mosek 可以写入 opf 格式通过 Pyomo吗?

问题描述

我们正在 Mosek 中制定优化问题(通过其 Pyomo 接口)。

我们需要以 opf 格式转储问题。

为了启用此功能,我们激活了 iparam.opf_write_problem [0] 求解器选项,但失败了(即未创建 opf 文件)。

最小可重现示例:

import pyomo.environ as pyo
import mosek

model = pyo.ConcreteModel()
model.x = pyo.Var([1,2],domain=pyo.NonNegativeReals)
model.OBJ = pyo.Objective(expr = 2*model.x[1] + 3*model.x[2])
model.Constraint1 = pyo.Constraint(expr = 3*model.x[1] + 4*model.x[2] >= 1)

opt = pyo.solverFactory("mosek")
opt.solve(model,options={'iparam.opf_write_problem': 1})   # doesn't create opf file

# opt.solve(model,options={'iparam.opf_write_problem': mosek.onoffkey.on})  # fails too

这是 Mosek 还是 Pyomo 中的错误

参考:

[0] https://docs.mosek.com/9.2/toolbox/parameters.html#mosek.iparam.opf_write_problem

解决方法

这些 opf 参数仅指示数据的哪些部分在写入时应该包含在 opf 文件中,哪些不包含。

要从 Pyomo 中实际写入文件,请按照 https://docs.mosek.com/9.2/faq/faq.html#pyomo 中的示例,将文件名更改为 something.opf。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...