为了不重新发明轮子,我试图找到一些代码来解析
数学编程系统文件,但我没有在 python 中找到任何实现。
是否有任何可用的代码?
更新
阅读数学程序。文件
示例 MPS (afiro.mps: link1 , link2 )
包含:
- 目标函数,一行,n 列
- 有限制的表,m 行,n 列
- 右表,一列,m行
许多语言都有用于读取和写入这些文件的包。
该问题没有解决具体问题,例如纯 python 与基于 c-wrapper 的比较,也没有任何许可证问题。
但是好吧......过去对我有用的两件事(前者在 netlib 数据集上针对我自己的 IPM 方法进行了更多测试;后者看起来也不错):
使用基于前一种方法的 netlib 的测试用例和 scipy 的求解器的脏代码。
对我来说看起来几乎只有python。
至少在向 cvxopt 询问矩阵形式时,应该小心 cvxopt 已经对问题进行的潜在修改。我现在不记得在这里会发生什么(在我的情况下也无关紧要)。
警告:如果您尝试安装整个项目,cvxopt 以 Windows 上的非平凡安装过程而闻名!
还有一些关于不支持 MPS 文件的哪些功能的警告。
基本上是基于 swig 的 GLPK 绑定。可在此处获得(可能是最新的 GLPK 的 python 绑定)。如果使用它,请将其与 GLPK 的手册和对SWIG(或其他)的一些了解一起使用。
就我们阅读的内容而言,这个应该更可控(参见手册)!
您可以在 Python中使用pysmps包。它可以简单地通过pip install pysmps
. 更多详情可参见: