微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Ubuntu Linux 20.04 上安装带有 AMPL 的 SCIP 7.0.2 以与 Pyomo 一起使用

如何解决在 Ubuntu Linux 20.04 上安装带有 AMPL 的 SCIP 7.0.2 以与 Pyomo 一起使用

我想按照 SCIP solver 手册中的说明在我的 Ubuntu Linux 20.04 机器上安装 Pyomos 版本 7.0.2 以在 this 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 机器上使用它效果很好,但我卡在这里了。

有什么提示吗?

提前致谢!

解决方法

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

,

我现在可以使用您的提示自行解决问题了!诀窍是使用标志 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。