【问题标题】:Installation of SCIP 7.0.2 with AMPL on Ubuntu Linux 20.04 for usage with Pyomo在 Ubuntu Linux 20.04 上安装带有 AMPL 的 SCIP 7.0.2 以与 Pyomo 一起使用
【发布时间】:2021-06-17 21:01:23
【问题描述】:

我想按照this 手册中的说明在我的Ubuntu Linux 20.04 机器上安装7.0.2 版本的SCIP solver 以在Pyomos SolverFactory 中使用。

但是当我使用make 时,我收到以下错误:

crd@crd-laptop:~/Downloads$ cd scipoptsuite-7.0.2/
crd@crd-laptop:~/Downloads/scipoptsuite-7.0.2$ make
make[1]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2“ wird betreten
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/static".
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/include".
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/include/zimplinc".
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/include/".

** Building SoPlex library "/home/cord/Downloads/scipoptsuite-7.0.2/soplex/lib/libsoplex.linux.x86_64.gnu.opt.a".
make[2]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird betreten
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird betreten
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird verlassen
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird betreten
-> compiling obj/O.linux.x86_64.gnu.opt/lib/soplex/clufactor_rational.o
In file included from src/soplex/clufactor_rational.cpp:18:
src/soplex/spxdefines.h:46:10: fatal error: boost/multiprecision/number.hpp: Datei oder Verzeichnis nicht gefunden
   46 | #include "boost/multiprecision/number.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:503: obj/O.linux.x86_64.gnu.opt/lib/soplex/clufactor_rational.o] Fehler 1
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird verlassen
make[2]: *** [Makefile:375: makelibfile] Fehler 2
make[2]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird verlassen
make[1]: *** [Makefile.doit:187: /home/cord/Downloads/scipoptsuite-7.0.2/soplex/lib/libsoplex.linux.x86_64.gnu.opt.a] Fehler 2
make[1]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2“ wird verlassen
make: *** [Makefile:85: scipbinary] Fehler 2

在我的带有 AMPL 绑定的 Windows 机器上使用它运行良好,但我卡在这里。

有什么提示吗?

提前致谢!

【问题讨论】:

    标签: pyomo ampl scip


    【解决方案1】:

    我现在可以根据您的提示自行解决问题!诀窍是使用标志 BOOST=falseZIMPL=false 进行编译,现在它就像 pyomo 的 SolverFactory 的魅力一样。

    这些是对我有用的命令(输出被抑制):

    user@machine:~/Downloads$ $ sudo apt install g++ zlib1g-dev bison flex libgmp-dev libreadline-dev libncurses5-dev
    user@machine:~/Downloads$ tar xzf scipoptsuite-7.0.2.tgz 
    user@machine:~/Downloads$ cd scipoptsuite-7.0.2/
    user@machine:~/Downloads/scipoptsuite-7.0.2$ make BOOST=false ZIMPL=false
    user@machine:~/Downloads/scipoptsuite-7.0.2$ cd scip/interfaces/ampl/
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ ./get.ASL
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ cd solvers/
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl/solvers$ sh configurehere
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl/solvers$ make
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl/solvers$ cd ..
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ make 
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ cd ..
    user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces$ sudo cp ampl/bin/scipampl /usr/local/bin/
    

    在 pyomo 中,如果使用 solver_io='nl' 没有自动检测到,solver interface 可以设置为 nl 格式。

    感谢@Leon 为我指明了正确的方向!

    编辑:如果libboost-all-dev 是通过apt install 安装的,它也适用于BOOST=true

    【讨论】:

    • 抱歉没有尽快回复。也许需要澄清一下:ZIMPL 的问题可能是缺少 GMP 库。 Boost 仅在 SoPlex 中使用,但如果您只想在 SCIP 中使用 SoPlex,则不相关。
    • 谢谢。这偏离了最初的问题,但是:我为编译选择的设置是解决 LP/MIP 最快的设置吗?
    【解决方案2】:

    您是否尝试使用make BOOST=false 进行重建?

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 嗨莱昂!非常感谢您的回答,如上述手册中所述,这似乎适用于构建 scipampl。但是现在我在使用crd@crd-laptop:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ sudo cp bin/scipampl /usr/local/bin/ 复制可执行文件时出现错误,它表示在文件夹bin 中找不到可执行文件scipampl。我错过了什么吗?
    • 我现在再次尝试在所有make 命令中使用BOOST=false 并更新了我的要点。现在我收到一个错误:reader_zpl.c:(.text+0x3228): undefined reference to numb_todbl'`
    • 感谢您的提示 :)
    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 2021-12-08
    • 2021-07-03
    • 2021-08-23
    • 1970-01-01
    • 2020-09-01
    • 2021-08-10
    • 2020-09-19
    相关资源
    最近更新 更多