如何从 ortools 导出 MPS 文件?
How do you export an MPS file from ortools?
以ortools的SCIP代码为例:
from ortools.linear_solver import pywraplp
solver = pywraplp.Solver.CreateSolver('SCIP')
infinity = solver.infinity()
# x and y are integer non-negative variables.
x = solver.IntVar(0.0, infinity, 'x')
y = solver.IntVar(0.0, infinity, 'y')
print('Number of variables =', solver.NumVariables())
# x + 7 * y <= 17.5.
solver.Add(x + 7 * y <= 17.5)
# x <= 3.5.
solver.Add(x <= 3.5)
print('Number of constraints =', solver.NumConstraints())
# Maximize x + 10 * y.
solver.Maximize(x + 10 * y)
我想将其导出为 MPS 文件。我可以看到
solver.ExportModelAsMpsFormat
存在,但我能找到的唯一文档说
Signature: solver.ExportModelAsMpsFormat(fixed_format: 'bool', obfuscated: 'bool') -> 'std::string'
Docstring: <no docstring>
File: c:\users\csxrc\anaconda3\lib\site-packages\ortools\linear_solver\pywraplp.py
Type: method
我不明白如何使用它。例如如何指定文件名。
如果我只是想将模型保存为名为“test.mps”的 MPS 文件,我该怎么办?
更新
@Krerkkiat Chusap 建议调用该函数创建一个可以单独编写的字符串。如果我这样做
output_string = solver.ExportModelAsMpsFormat()
我明白了
TypeError: ExportModelAsMpsFormat() missing 2 required positional arguments: 'fixed_format' and 'obfuscated'
这两个参数似乎都是布尔值。它们代表什么?
从C++ implementation开始,fixed_format
似乎没有被使用,所以通过False
或True
应该没问题。
对于obfuscated
,它通常意味着让一些东西难以阅读,所以保持它为False
是有意义的。
with open("test.mps", "w") as out_f:
mps_text = solver.ExportModelAsMpsFormat(fixed_format=False, obfuscated=False)
out_f.write(mps_text)
以ortools的SCIP代码为例:
from ortools.linear_solver import pywraplp
solver = pywraplp.Solver.CreateSolver('SCIP')
infinity = solver.infinity()
# x and y are integer non-negative variables.
x = solver.IntVar(0.0, infinity, 'x')
y = solver.IntVar(0.0, infinity, 'y')
print('Number of variables =', solver.NumVariables())
# x + 7 * y <= 17.5.
solver.Add(x + 7 * y <= 17.5)
# x <= 3.5.
solver.Add(x <= 3.5)
print('Number of constraints =', solver.NumConstraints())
# Maximize x + 10 * y.
solver.Maximize(x + 10 * y)
我想将其导出为 MPS 文件。我可以看到
solver.ExportModelAsMpsFormat
存在,但我能找到的唯一文档说
Signature: solver.ExportModelAsMpsFormat(fixed_format: 'bool', obfuscated: 'bool') -> 'std::string'
Docstring: <no docstring>
File: c:\users\csxrc\anaconda3\lib\site-packages\ortools\linear_solver\pywraplp.py
Type: method
我不明白如何使用它。例如如何指定文件名。
如果我只是想将模型保存为名为“test.mps”的 MPS 文件,我该怎么办?
更新
@Krerkkiat Chusap 建议调用该函数创建一个可以单独编写的字符串。如果我这样做
output_string = solver.ExportModelAsMpsFormat()
我明白了
TypeError: ExportModelAsMpsFormat() missing 2 required positional arguments: 'fixed_format' and 'obfuscated'
这两个参数似乎都是布尔值。它们代表什么?
从C++ implementation开始,fixed_format
似乎没有被使用,所以通过False
或True
应该没问题。
对于obfuscated
,它通常意味着让一些东西难以阅读,所以保持它为False
是有意义的。
with open("test.mps", "w") as out_f:
mps_text = solver.ExportModelAsMpsFormat(fixed_format=False, obfuscated=False)
out_f.write(mps_text)