如何使用 snopt 库?
How to use snopt libraries?
我的情况:我想通过 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。
有谁知道为什么会出现这个问题,如何解决?
非常感谢。
Pyomo 没有专门或库模式绑定到 SNOPT。要使用 Pyomo 的 SNOPT,您需要一个名为“snopt
”的已编译可执行文件,它是针对 ASL(AMPL 求解器库接口)构建的。 ASL 提供了可以读取 Pyomo 生成的 .nl
输入文件的接口,并将生成 Pyomo 期望的 .sol
解决方案文件。
您可以通过 Netlib 获取 AMPL Solver Library 接口的源代码以及 SNOPT 的包装器:http://www.netlib.org/ampl/solvers/。
我的情况:我想通过 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。
有谁知道为什么会出现这个问题,如何解决?
非常感谢。
Pyomo 没有专门或库模式绑定到 SNOPT。要使用 Pyomo 的 SNOPT,您需要一个名为“snopt
”的已编译可执行文件,它是针对 ASL(AMPL 求解器库接口)构建的。 ASL 提供了可以读取 Pyomo 生成的 .nl
输入文件的接口,并将生成 Pyomo 期望的 .sol
解决方案文件。
您可以通过 Netlib 获取 AMPL Solver Library 接口的源代码以及 SNOPT 的包装器:http://www.netlib.org/ampl/solvers/。