我正在使用PYOMO来解决线性程序,使用CPLEX作为我的求解器。我想通过输出到日志文件或将其保存到我的工作区中的变量来以某种方式访问最终的Simplex tableau。以下脚本是我用来解决我的LP的。可能有一个选项,我可以传递给CPLEX解算器以保存最终的画面,但到目前为止,我的搜索一直没有结果。
self.solver = pyomo.opt.SolverFactory('cplex')
self.results = self.solver.solve(self.m, tee=True, keepfiles=True, options_string='lpmethod=1')
感谢。
答案 0 :(得分:1)
我不知道有什么方法可以用Pyomo做到这一点。我认为第一步是找出如何使用Cplex执行此操作,然后在Pyomo的GitHub页面上添加功能请求(或拉取请求),如果它需要与解算器进行任何其他交互。
我认为你最好的选择是在Cplex的Python API中寻找方法。这就是Pyomo与Cplex交互最灵活的地方。任何其他接口(例如,LP文件,NL文件)仅限于Cplex提供的命令行选项功能。
答案 1 :(得分:0)
我最终使用scipy.optimize.linprog来获取单面画面。它适用于我测试我的代码的中小型问题,尽管我猜它对于更大的问题并不像CPLEX那样有效。获得画面的关键是使用一个回调函数,我可以从中获取画面,以及有关LP的一些其他信息。