在Omg-tools中使用HSL求解器

时间:2018-10-19 18:22:46

标签: ubuntu-16.04 ipopt

我使用OMG-tools来运行一个带有HSL求解器的示例,例如compare_distributed_optimization_quadrotors.py中使用的ma57

首先,我使用pip安装了OMG工具,该工具还自动安装了CasadiIpopt。然后,我按照the Casadi tutorial从源代码构建HSL,可以确认该软件包已安装在/usr/local/lib中,但是在运行OMG-tools的示例时,我总是得到Invalid_Option来选择解算器。我添加了本教程中提到的链接和环境变量。

在系统上使用Ipopt设置HSL 是否需要采取其他步骤?

我的系统正在运行 Ubuntu 16.04

1 个答案:

答案 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,然后按照第一个选项从源代码进行构建。请注意,除了libblas3gfliblapack3gf之外,您还可以使用libblas3liblapack3。完成后,您需要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。将路径回显到终端,以确保路径有效。

现在ma27ma57求解器都可以使用。要获得有关哪些求解器以及如何使用它们的更多信息,请转到http://www.hsl.rl.ac.uk/

PS:每个Coin-HSL软件包都有自己的自述文件。此外,您可以运行configure --help来了解命令本身。如果在安装过程中遇到任何问题,请确保同时阅读两者。