如何使用snopt库?

时间:2016-10-14 09:35:40

标签: c++ interface libraries solver

我的情况:我想通过pyomo的SolverFactory在Python中使用SNOPT-Solver。我申请获得优化求解器SNOPT的C / C ++库并得到了

libsnopt7.dylib libsnopt7_cpp.dylib。

在管理完SolverFactory可以调用的虚拟可执行文件之后,它给出了以下错误消息:

 IOError: [Errno 2] No such file or directory:
'/var/folders/_d/vnct15hn3.9j8dhgqr6gjf3rw0000gn/T/tmpoSB0fh.pyomo.sol' 

然而,有一个带有该名称的文件,只有.nl后缀。

有谁知道为什么会出现这个问题以及如何解决它?

非常感谢。

1 个答案:

答案 0 :(得分:0)

Pyomo没有专门的或库模式绑定到SNOPT。要从Pyomo使用SNOPT,您需要一个名为“snopt”的已编译可执行文件,该可执行文件是针对ASL(AMPL解算器库接口)构建的。 ASL提供的接口可以读取Pyomo生成的.nl输入文件,并生成Pyomo期望的.sol解决方案文件。

您可以通过Netlib获取AMPL Solver Library界面的源代码以及SNOPT的包装器:http://www.netlib.org/ampl/solvers/