python - 加载/解析数学编程系统文件

标签 python python-2.7 linear-programming mps

为了不重新发明轮子,我试图找到一些代码来解析
Mathematical Programming System文件,但我没有在 python 中找到任何实现。

enter image description here

有现成的代码吗?

Update

阅读 Mathematical Prog. files

MPS 示例(afiro.mps:link1link2)
包含:

  1. 目标函数,一行,n列
  2. 有限制的表,m 行,n 列
  3. 右表,一列,m行

很多languages have packages用于读取和写入这些文件。

最佳答案

问题没有解决具体问题,例如纯 python 与基于 c-wrapper 的对比,也没有任何许可证问题。

但是好吧......过去有两件事对我有用(前者在 netlib 数据集上针对我自己的 IPM 方法进行了更多测试;后者看起来也不错):

Dirty code基于前一种方法将 netlib 的测试用例与 scipy 的求解器结合使用。

cvxopt

MPS-阅读有点隐藏herehere .

对我来说看起来很像 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/

相关文章:

python - 在哪里调用 gc.collect()

python - 使包仅作为一次导入使用

Python 2.7 多处理日志记录和循环

linear-programming - 线性规划 - 等于表达式符号的变量

java - GLPK for Java 库似乎找不到

python - 像Python中的正则表达式一样替换ACD|BCD

python - 多个字典放入列表中

django - 如何在保存到数据库之前加密 TextField

python - 如何消除相等运算符的 python3 弃用警告?

julia - 基于列的反向替换函数的数学失败计数(Julia)