在Linux上的Python 3.7虚拟环境中使用SCIP和GLPK安装或工具

我决定参加比赛,有必要为他使用软件包来解决优化问题。我选择了Google工具或工具,它是不同求解器(或已求解的?求解器)的接口。它包含多个优化工具,但创建者声称支持多个外部软件包,包括商业Gurobi和CPLEX。但是,我们不是有钱人,我们将使用免费的SCIP和GLPK(顺便说一下,这是来自国内开发商的)。令我惊讶的是,没有关于如何在虚拟python环境中实现所有这些出色功能的单一说明,我没有在我们的互联网和说英语的互联网部分的空地上找到东西,因此我不得不进行一些修改。对于那些着急的人,请在这里阅读,我建议其他人熟悉我的绘画狂的可疑品质,该品质描述了安装Google软件的起伏。是的,我忘了马上说所有东西都已安装在Manjaro Linux中。


第一步


这三个软件包都存在于python仓库中,因此我们通过pip安装。

它们中的每个都有其自己的接口,而选择or-tool只是为了尝试不同的程序包而无需大量重写程序,因此任务是or-tools拾取这些求解器并让它们自己运行。你觉得怎么样?通过pip或-tools安装无法通过pip看到已安装的求解器,并且他们也看不到(谁会想到的)。因此,您仍然需要查看他们在文档中写的内容
他们在码头上写下需要从源头收集什么,以便or-tools提取外部包裹。我们尝试收集,但没有任何结果,因为通过pip安装的求解器不可见。
因此,通过pip安装所有软件包的最简单方法不起作用,因为or-tools不会拉出求解器,求解器不会按照or-tools的要求安装库,每个人都会向您倾倒错误,他们以各种可能的方式称您为愚蠢和大笑。他们

进一步在码头上写道,有必要从源代码中收集求解器,然后从源中收集或使用工具本身。说到做到!安装了SCIP,安装了GLPK,但是文档中未描述的问题是如何将or-tools放置在虚拟环境中。

扩展坞上唯一的make python命令会在系统上全局安装软件包(令人惊讶的是吗?)。

但是,我很幸运:在使用无休止的猴子方法进行工程搜索的过程中,我无意中键入了make help,并获得了所有“或工具”构建选项的列表,其中包括构建车轮套件的机会。如果是的话,这是make python_package命令(我将在末尾再次重复)。那么,是时候构建和发布了吗?



寻找问题


在or-tools构建阶段没有任何工作,它对糟糕的GLPK库发誓。



使用文档中的参数使用SCIP进行的构建成功,但是or-tools在导入时仍然拒绝工作。



我自己找不到这些问题的解决方案,因此我去了github询问开发人员,为什么按照他们的说明进行安装会在他们的代码内部出现错误。


嗯,谢谢您的澄清,

当我在github上等待答案时,我在互联网上翻遍,希望找到对我有帮助的东西。而且并不奇怪,我发现了它。这是一个项目团队负责人博客,他在其中撰写了如何将GLPK与or-tools链接的文章。而且这种方法终于奏效了!现在,如果不使用SCIP而是使用GLPK构建所有内容,那么甚至可以使用它。已经取得进展。

但是,or-tools团队负责人没有建议使用GLPK,他说结果并不重要,我仍然想击败SCIP并使之发挥作用。博客中的相邻帖子提到了Google发布包可与特定版本一起使用的想法。我们查看发行版更改列表,并在那里看到版本6.0.0的明确指示。尽管makefile中指示版本6.0.2,但我们仍在尝试安装旧版本,瞧!

现在又是一个可行的动作序列。

安装顺序


  1. 下载压缩文件SCIP,并确保对下载的版本明确的支持(在我的情况下为developers.google.com/optimization/support/release_notes#support-for-scip-6.0.0)并解压缩。
  2. 下载GLPK(发布最新版本4.65时)并解压缩。
  3. 安装SCIP命令

    make GMP=false READLINE=false TPI=tny ZIMPL=false scipoptlib install INSTALLDIR=<path>/scipoptsuite-6.0.0
    
  4. 使用以下命令安装GLPK:

    ./configure --prefix=<install_path> --with-pic --enable-shared
    make
    make install
    
  5. 从github下载OR-Tools

    git clone https://github.com/google/or-tools
  6. 使用以下命令安装OR-Tools:

    make third_party
    make python_package
    

    如果最后一个命令不起作用,请使用以下命令安装wheel:

    pip install wheel
  7. 要激活虚拟环境,请转到带有Python软件包的文件夹,然后从那里安装它。

    如果您不需要在虚拟环境中安装,而是在整个系统的全局安装,则:

    make python_package

    执行命令:

    make python
    

All Articles