0

我正在使用 PYOMO 以 CPLEX 作为我的求解器来求解线性程序。我想以某种方式访问​​最终的单纯形表,方法是将其输出到日志文件或将其保存到我的工作区中的变量中。以下脚本是我用来解决我的 LP 的。很可能,我可以将一个选项传递给 CPLEX 求解器以保存最终画面,但到目前为止,我的搜索一直没有结果。

self.solver = pyomo.opt.SolverFactory('cplex')
self.results = self.solver.solve(self.m, tee=True, keepfiles=True, options_string='lpmethod=1')

谢谢。

4

2 回答 2

1

我不知道有什么方法可以用 Pyomo 做到这一点。我认为第一步是弄清楚如何使用 Cplex 执行此操作,然后在 Pyomo 的 GitHub 页面上添加功能请求(或拉取请求),如果它需要与求解器进行任何额外的交互。

我认为最好的选择是在 Cplex 的 Python API 中寻找方法。这就是 Pyomo 与 Cplex 交互最灵活的地方。任何其他接口(例如,LP 文件、NL 文件)都仅限于 Cplex 提供的带有命令行选项的功能。

于 2017-06-11T21:30:17.110 回答
0

我最终使用scipy.optimize.linprog来获得单纯形表。它适用于我正在测试我的代码的中小型问题,尽管我猜它对于较大问题的效果不如 CPLEX。获取画面的关键是使用一个回调函数,我可以从中提取画面,以及有关 LP 的一些其他信息。

于 2017-06-19T05:24:02.183 回答