【问题标题】:how to use the ipopt optimizer with pyomo on linux如何在 linux 上使用 ipopt 优化器和 pyomo
【发布时间】:2018-03-01 21:36:42
【问题描述】:

我已按照 ipopt coinor 网站说明安装了 ipopt 优化器。这在构建目录中产生了一些静态对象文件,但没有产生任何 bin 文件夹。

现在,当试图让 pyomo 使用 ipopt 时,我见过的唯一方法是指定可执行位置,就像这样 opt = SolverFactory('ipopt', executable='executable path here') 但我不知道那可能是什么。

我还注意到 coin-or 在他们的网站上有一些预编译的二进制文件。它们在 bin 文件夹中包含一个 ipopt 可执行文件,但链接该文件将使系统抱怨缺少名为 libsvml.so 的静态对象。

ipopt 安装指南没有提到 libsvm,所以这让我很困惑。

我在制作/安装步骤中是否遗漏了什么? 任何帮助将不胜感激

【问题讨论】:

    标签: python ubuntu pyomo ipopt


    【解决方案1】:

    这个问题与上一个问题非常相似。请看答案here

    根据我的经验,如果您按照说明从源代码安装 ipopt,但最终没有得到包含 ipopt 可执行文件的 bin 目录,那么您要么错过了一个步骤,要么配置/安装因缺少依赖项而失败,或者第三方代码。您应该从头开始重新安装。

    如果您更喜欢使用二进制文件,请确保为您的系统 Linux-32 位或 Linux-64 位下载正确的二进制文件,并确保包含可执行文件的 bin 文件夹位于您的搜索路径中。用二进制检查的另一件事是可执行文件具有可执行权限。您可以使用 Linux 命令chmod +x 来修改权限。您应该能够在命令行上键入 ipopt 并获得另一个答案中记录的输出。

    【讨论】:

    • 除了指定可执行文件还有其他方法可以使用这个求解器吗?
    • 不适用于 Ipopt。此外,在 Ipopt 的构建过程中很容易错过的一个步骤是在“make”成功完成后运行“make install”。 “make install”步骤是创建 bin 目录的过程。
    【解决方案2】:

    ipopt 确实是一个库,但它有时会分布在一个也称为 ipopt 的可执行二进制文件中,因此可能会让人感到困惑。

    package in the debian repos 只包含库,没有可执行文件。

    可以从应用程序代码链接到此库。要用作“独立”求解器,它需要一个接口。通常,ASL(AMPL Solver Library)接口。 ASL 接口允许 ipopt 从.nl 文件中读取输入数据,并将输出数据写入.sol 文件中。

    “从源代码编译”部分中的ipopt doc 提到了这一点,并指导如何从 AMPL 安装 ASL 代码。 GitHub 上有一个替代的 ASL 库:AMPL/MP。我不清楚这是否是相同的代码。至少这里的许可证更清楚恕我直言。

    有些将 ipopt 作为具有 ASL 功能的二进制文件分发,静态或动态链接。

    COIN-OR,例如,分发 ipopt 源但停止分发二进制文件。最新的 linux 二进制文件适用于 ipopt 3.7.1 (https://www.coin-or.org/download/binary/Ipopt/)。

    AMPL 分发带有 ASL 静态链接的二进制 on their website。没有提及许可证或版本,也没有版本历史记录,所以我不会使用它。

    在 conda-forge 频道中有一个 ipopt conda package 和一个 ipopt bin。它依赖于另一个使用上述 AMPL/MP ASL 实现的 conda 包。这是我目前最好的选择。

    编辑:download section of the ipopt doc 现在通告二进制文件的新来源:JuliaOpt GH repo

    编辑:COIN-OR 现在提供了一个构建和安装脚本 (coinbrew),它可以更轻松地编译 Ipopt 和依赖项以生成支持 AMPL 的可执行二进制文件。

    【讨论】:

      猜你喜欢
      • 2019-06-23
      • 2020-04-09
      • 1970-01-01
      • 2019-09-09
      • 2018-02-24
      • 1970-01-01
      • 2019-10-13
      • 2022-01-08
      • 2018-01-30
      相关资源
      最近更新 更多