在 Omg-tools 中使用 HSL 求解器
Using HSL solvers in Omg-tools
使用 OMG-tools I wish to run an example with an HSL solver, such as the ma57
used in compare_distributed_optimization_quadrotors.py.
首先,我使用 pip
安装了 OMG-tools,它还会自动安装 Casadi and Ipopt. I then followed the Casadi tutorial 以从源代码构建 HSL,我可以确认软件包已安装在 /usr/local/lib
中,但是当 运行 OMG-tools 的示例时,我总是为选定的求解器得到 Invalid_Option
。我添加了 link 和教程中提到的环境变量。
在我的系统上使用 Ipopt 设置 HSL 是否需要任何额外的步骤,我需要遵循这些步骤?
我的系统是运行Ubuntu16.04.
我知道了 运行宁。希望这篇短文 guide/advice 能对其他人派上用场,除了我未来的自己。
首先,当您在 OMG-tools 中声明一个新的 problem
时,options
语法应该如下所示:
options = {'horizon_time': horizon_time, 'solver_options': {'ipopt':{'ipopt.linear_solver': 'ma57'}}};
如果您在每个 update_time
的终端中打印出错误 Invalid_Option
,则无法识别 ipopt
命令。
如果程序退出说明 ma57
解算器有问题,那么 HSL 已安装,只是它找不到正确的解算器 - 您可能有 HSL 的存档版本。
要安装,请转到 Casadi guide on obtaining HSL follow the first option, building from source. Note, instead of libblas3gf
and liblapack3gf
, you can also use libblas3
and liblapack3
. Once that is done, you need to obtain HSL。下载使用学术许可证访问的两个包(RC,稳定版)之一的源代码。在此步骤中,您需要填写一些表格并等待一两分钟才能收到下载文件的 link。
准备好环境并下载所有必要的文件后,运行按照指南中的说明进行配置,我推荐使用/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"
配置后,运行 制作并 (sudo) 安装。最后,将 /usr/local/lib
添加到 $LD_LIBRARY_PATH
。通过将路径回显到终端来确保路径有效。
现在 ma27
和 ma57
求解器都应该可以工作了。如需有关哪些解算器以及如何使用它们的更多信息,请转至 http://www.hsl.rl.ac.uk/.
PS:每个 Coin-HSL
包都有自己的 README。此外,您可以 运行 configure --help
来理解命令本身。如果您在安装过程中遇到任何问题,请务必阅读两者。
使用 OMG-tools I wish to run an example with an HSL solver, such as the ma57
used in compare_distributed_optimization_quadrotors.py.
首先,我使用 pip
安装了 OMG-tools,它还会自动安装 Casadi and Ipopt. I then followed the Casadi tutorial 以从源代码构建 HSL,我可以确认软件包已安装在 /usr/local/lib
中,但是当 运行 OMG-tools 的示例时,我总是为选定的求解器得到 Invalid_Option
。我添加了 link 和教程中提到的环境变量。
在我的系统上使用 Ipopt 设置 HSL 是否需要任何额外的步骤,我需要遵循这些步骤?
我的系统是运行Ubuntu16.04.
我知道了 运行宁。希望这篇短文 guide/advice 能对其他人派上用场,除了我未来的自己。
首先,当您在 OMG-tools 中声明一个新的 problem
时,options
语法应该如下所示:
options = {'horizon_time': horizon_time, 'solver_options': {'ipopt':{'ipopt.linear_solver': 'ma57'}}};
如果您在每个 update_time
的终端中打印出错误 Invalid_Option
,则无法识别 ipopt
命令。
如果程序退出说明 ma57
解算器有问题,那么 HSL 已安装,只是它找不到正确的解算器 - 您可能有 HSL 的存档版本。
要安装,请转到 Casadi guide on obtaining HSL follow the first option, building from source. Note, instead of libblas3gf
and liblapack3gf
, you can also use libblas3
and liblapack3
. Once that is done, you need to obtain HSL。下载使用学术许可证访问的两个包(RC,稳定版)之一的源代码。在此步骤中,您需要填写一些表格并等待一两分钟才能收到下载文件的 link。
准备好环境并下载所有必要的文件后,运行按照指南中的说明进行配置,我推荐使用/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"
配置后,运行 制作并 (sudo) 安装。最后,将 /usr/local/lib
添加到 $LD_LIBRARY_PATH
。通过将路径回显到终端来确保路径有效。
现在 ma27
和 ma57
求解器都应该可以工作了。如需有关哪些解算器以及如何使用它们的更多信息,请转至 http://www.hsl.rl.ac.uk/.
PS:每个 Coin-HSL
包都有自己的 README。此外,您可以 运行 configure --help
来理解命令本身。如果您在安装过程中遇到任何问题,请务必阅读两者。