以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建议调用该函数来创建一个可以单独编写的字符串。如果我做了
output_string = solver.ExportModelAsMpsFormat()我得到了
TypeError: ExportModelAsMpsFormat() missing 2 required positional arguments: 'fixed_format' and 'obfuscated'看来这两个论点都是布尔人的。它们意味着什么?
发布于 2022-05-21 16:07:12
在C++实现中,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)https://stackoverflow.com/questions/72331011
复制相似问题