如何使用snopt库

How to use snopt libraries?

本文关键字:snopt 何使用      更新时间:2023-10-16

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

libsnopt7.dyliblibsnopt7_cpp.dylib .

在设法把SolverFactory可以调用的虚拟可执行文件放在一起后,它给了我以下错误消息:

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

尽管如此,还是有一个同名的文件,只是后缀为。nl。

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

Pyomo没有专门的或库模式的SNOPT绑定。要在Pyomo中使用SNOPT,您将需要一个名为"snopt"的编译可执行文件,该文件是根据ASL (AMPL求解库接口)构建的。ASL提供了一个接口,可以读取Pyomo生成的.nl输入文件,并生成Pyomo期望的.sol解决方案文件。

您可以通过Netlib获得AMPL求解器库接口的源代码,以及SNOPT的包装器:http://www.netlib.org/ampl/solvers/.