我使用OMG-tools来运行一个带有HSL求解器的示例,例如compare_distributed_optimization_quadrotors.py中使用的ma57
。
首先,我使用pip
安装了OMG工具,该工具还自动安装了Casadi和Ipopt。然后,我按照the Casadi tutorial从源代码构建HSL,可以确认该软件包已安装在/usr/local/lib
中,但是在运行OMG-tools的示例时,我总是得到Invalid_Option
来选择解算器。我添加了本教程中提到的链接和环境变量。
在系统上使用Ipopt设置HSL 是否需要采取其他步骤?
我的系统正在运行 Ubuntu 16.04 。
答案 0 :(得分:0)
我让它运行了。希望这份简短的指南/建议除了我未来的自我之外,还会对其他人有用。
首先,当您在OMG工具中声明新的problem
时,options
语法应如下所示:
options = {'horizon_time': horizon_time, 'solver_options': {'ipopt':{'ipopt.linear_solver': 'ma57'}}};
如果在每个Invalid_Option
的终端上打印出错误update_time
,则无法识别ipopt
命令。
如果程序退出,说明ma57
求解器出现问题,则安装了HSL,只有它找不到正确的求解器-您可能已获得HSL的存档版本。
要安装,请转到Casadi guide on obtaining HSL,然后按照第一个选项从源代码进行构建。请注意,除了libblas3gf
和liblapack3gf
之外,您还可以使用libblas3
和liblapack3
。完成后,您需要obtain HSL。下载使用学术许可证访问的两个软件包之一的源代码(RC,稳定版)。在此步骤中,您需要填写一些表格,然后等待一两天,以获取指向下载文件的链接。
在准备好环境并下载了所有必需的文件之后,请按照指南中的说明运行配置,我建议在其中使用/usr/local
,这将把软件包安装在/usr/local/lib
中:
$> ./configure --prefix =(where_you_want_to_install)LIBS =“-llapack” --with-blas =“-L / usr / lib -lblas” CXXFLAGS =“-g -O2 -fopenmp” FCFLAGS =“-g -O2 -fopenmp” CFLAGS =“-g -O2 -fopenmp”
配置后,运行make和(sudo)安装。最后,将/usr/local/lib
添加到$LD_LIBRARY_PATH
。将路径回显到终端,以确保路径有效。
现在ma27
和ma57
求解器都可以使用。要获得有关哪些求解器以及如何使用它们的更多信息,请转到http://www.hsl.rl.ac.uk/。
PS:每个Coin-HSL
软件包都有自己的自述文件。此外,您可以运行configure --help
来了解命令本身。如果在安装过程中遇到任何问题,请确保同时阅读两者。