为了不重新发明轮子,我试图找到一些代码来解析
Mathematical Programming System文件,但我没有在 python 中找到任何实现。
有现成的代码吗?
Update
MPS 示例(afiro.mps:link1、link2)
包含:
- 目标函数,一行,n列
- 有限制的表,m 行,n 列
- 右表,一列,m行
很多languages have packages用于读取和写入这些文件。
最佳答案
问题没有解决具体问题,例如纯 python 与基于 c-wrapper 的对比,也没有任何许可证问题。
但是好吧......过去有两件事对我有用(前者在 netlib 数据集上针对我自己的 IPM 方法进行了更多测试;后者看起来也不错):
Dirty code基于前一种方法将 netlib 的测试用例与 scipy 的求解器结合使用。
cvxopt
对我来说看起来很像 python-only。
应该小心 cvxopt 已经对问题进行的潜在修改,至少在向 cvxopt 询问矩阵形式时。我现在不记得在这里会发生什么(在我的情况下这也无关紧要)。
警告:如果您尝试安装整个项目,cvxopt 以其在 Windows 上的重要安装过程而闻名!
还有一些关于不支持 MPS 文件的功能的警告。
GLPK + swiglpk
基本上是基于 swig 的 GLPK 绑定(bind)。可用here (可能是 GLPK 的最新 python 绑定(bind))。如果使用它,请将它与 GLPK 的手册和对 SWIG 的一些理解一起使用。 (或 else )。
就我们阅读的内容而言,这个应该更可控(见手册)!
关于python - 加载/解析数学编程系统文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47306429/