我想知道pyomo脚本将哪些信息传递给求解器(例如Cbc)。具体来说,我想问的是,无论我编写的约束和目标函数是什么,求解器是否要求python进行这些函数的计算,或者它们是以求解器编写的语言完成的。
答案 0 :(得分:1)
计算是使用求解器编写的语言完成的。在大多数情况下,Pyomo会采用您的模型并将其分别使用.lp
或.nl
格式的线性和非线性模型输出到文件中。求解器将读取文件,创建自己的模型表示形式,解决问题,并使用解决方案编写一个.sol
文件。然后Pyomo将读取.sol
文件,并将解决方案重新加载到Python中的Pyomo模型中。此工作流程的一个例外是,如果您使用的是Gurobi的直接或持久接口。在那种情况下,不会写入任何文件,但我相信所有计算都仍以求解器的语言完成。