0

我们正在 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

4

1 回答 1

1

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

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

于 2021-05-12T16:27:13.677 回答