【问题标题】:Cannot load HSL for IPOPT in Google Colab无法在 Google Colab 中为 IPOPT 加载 HSL
【发布时间】:2023-02-02 09:57:52
【问题描述】:

我正在尝试将 HSL MA97 用于 Google colab 上的 IPOPT。 我在没有 HSL 线性求解器的情况下成功运行了 IPOPT(和 cyipopt),但无法使用 HSL 运行,例如 ma97。

谢谢您的帮助。

设定如下。

  1. 安装 IPOPT 使用
    !apt install coinor-libipopt1v5 coinor-libipopt-dev
    
    1. 安装 cyipopt 使用
    !pip install -q cyipopt
    
    1. 克隆第三方-HSL
    !git clone https://github.com/coin-or-tools/ThirdParty-HSL.git
    
    1. 将hsl复制到third Party-HSL并安装
    !cp -R /content/drive/MyDrive/solver/coinhsl/ /content/ThirdParty-HSL/
    %cd /content/ThirdParty-HSL/
    !./configure
    !make
    !make install
    

    IPOPT 可以在没有 HSL 的情况下工作,但不能与 HSL 一起工作。我想找到如何使 IPOPT 与 HSL MA97 一起工作。

    以下是我制作的 Colab notebook。

    https://colab.research.google.com/drive/1gFsHMlFUp6eVGEdf3W_t4DHZKhiE7xpx#scrollTo=-N_5KP7kIs8U

【问题讨论】:

  • 您需要提供有关“不起作用”的含义的更多信息。使您得出“不起作用”结论的输出是什么?还包括有关您正在使用哪个 Ipopt 版本的信息,并查看 Ipopt 文档 (coin-or.github.io/Ipopt/INSTALL.html#LINEARSOLVERLOADER)。
  • 谢谢你的意见。 “不起作用”意味着,如我在 Colab 笔记本中所示,如果我选择使用 HSL,则会出现以下错误。 “ TypeError:IPOPT 的无效选项:b'hsllib':/usr/local/lib/libcoinhsl.so(原始消息:“分配选项时出错”)”但是,如果我不使用 HSL,IPOPT 会工作并显示以下消息。 “消息:b'算法在局部最优点成功终止,满足收敛容差(可以通过选项指定)。' “
  • 另外,由于我使用上面提供的“!apt install ~~”安装 IPOPT,根据 Ubuntu 软件包 (packages.ubuntu.com/focal/coinor-libipopt-dev),版本为 3.11.9。

标签: google-colaboratory hsl ipopt


【解决方案1】:

hsllib 选项仅在 Ipopt 3.14 之后可用。因此,由于您使用的是非常旧的 Ipopt 版本(3.11.9 来自 2014 年),因此您无法使用此选项。但是 Ipopt 仍然可以尝试在运行时加载 HSL 库(如果它在 Ipopt 构建中没有被禁用)。您只需要确保可以找到 libhsl.so,例如,通过设置 LD_LIBRARY_PATH。 (您需要将libcoinhsl.so 重命名为libhsl.so。)

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2019-12-29
    • 2020-10-18
    • 2019-11-17
    • 1970-01-01
    • 2018-08-17
    • 2022-11-18
    • 2022-11-07
    • 2021-12-29
    相关资源
    最近更新 更多