0

使用OMG 工具,我希望使用 HSL 求解器运行一个示例,例如compare_distributed_optimization_quadrotors.pyma57中使用的。

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

在我的系统上使用 Ipopt 设置 HSL是否需要任何其他步骤,我需要遵循这些步骤?

我的系统正在运行Ubuntu 16.04

4

1 回答 1

0

我让它运行起来。希望这个简短的指南/建议对其他人有用,除了我未来的自己。

首先,当你problem在 OMG-tools 中声明一个 new 时,options语法应该是这样的:

options = {'horizon_time': horizon_time, 'solver_options': {'ipopt':{'ipopt.linear_solver': 'ma57'}}};

如果您Invalid_Option在 each 的终端中打印出错误update_time,则该ipopt命令未被识别。

如果程序退出,说明ma57求解器有问题,则安装了 HSL,只是找不到正确的求解器 - 您可能拥有 HSL 的存档版本。

要安装,请转到有关获取 HSL 的 Casadi 指南,请按照第一个选项,从源代码构建。请注意,您也可以使用and代替libblas3gfand 。完成后,您需要获取 HSL。下载使用学术许可访问的两个包(RC、stable)之一的源代码。在此步骤中,您需要填写一些表格并等待一两个 daz 以接收下载文件的链接。liblapack3gflibblas3liblapack3

准备好环境并下载所有必要的文件后,按照指南中的说明运行配置,我建议使用/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) install。最后,添加/usr/local/lib$LD_LIBRARY_PATH. 通过将路径回显到终端来确保路径有效。

现在ma27ma57求解器都应该工作。有关哪些求解器以及如何使用它们的更多信息,请访问http://www.hsl.rl.ac.uk/

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

于 2018-10-30T15:24:44.340 回答