在Python3.5 Numberjack(OSX)上安装SCIP解算器

时间:2016-10-12 22:04:41

标签: python python-3.x jupyter-notebook solver scip

我正在学习Python中的约束编程,为了解决这些问题,我应该使用SCIP求解器。我已经安装了Github女装的Numberjack标准包,包括Mistral,Mistral2,Toulbar2,MipWrapper,SatWrapper,MiniSat和Walksat求解器。

运行我的代码我收到以下错误:

Traceback (most recent call last):
  File "/Users/angelocoelho/anaconda3/lib/python3.5/site-packages/Numberjack/__init__.py", line 910, in load
    lib = __import__(solverstring, fromlist=[solverspkg])
ImportError: No module named 'Numberjack.solvers.SCIP'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "grafosdefluxos.py", line 42, in <module>
    solver = model.load('SCIP')
  File "/Users/angelocoelho/anaconda3/lib/python3.5/site-packages/Numberjack/__init__.py", line 915, in load
    solvername)
ImportError: ERROR: Failed during import, wrong module name? (SCIP)

我已在' scipoptsuite-3.1.0 '和' scip-3.2.1 '中运行make,已安装 Numberjack-master 的'setup.py'并尝试了这个:

python setup.py -solver SCIP

女巫返回错误

Error: the solver 'SCIP' is not known, please use one of: Mistral, SatWrapper, Toulbar2, Walksat, MipWrapper, MiniSat, Mistral2

我在Numberjack文件夹旁边和里面都有SCIP文件夹。 我阅读并运行README和INSTALL文件中的所有命令,了解如何配置此解算器,但我无法正确完成。 我怎样才能获得SCIP来解决Numberjack中的问题?

2 个答案:

答案 0 :(得分:2)

在与助理老师交谈后,我得到了这个问题的答案。

安装Numberjack / SCIP的文件夹不是它应该的文件夹,因此它并没有真正包含在求解程序列表中。完成python setup.py buildpython setup.py install安装后,我运行了python setup.py build -solver SCIP,终端反馈声明

Successfully built solver interfaces for MipWrapper, SCIP

但jupyter笔记本无法识别解算器。

安装了Anaconda(python3.5)的解决方案应该有效:

  1. 下载Numberjack(文件“Numberjack-master.zip”)并将其解压缩。
  2. 下载SCIP并复制下载的文件scipoptsuite-3.1.0.tgz。将其粘贴到里面 Numberjack-master解压缩目录。它的路径应为~/Downloads/Numberjack-master/scipoptsuite-3.1.0.tgz
  3. 在终端运行cd ~/Downloads/Numberjack-master(或您的Numberjack-master目录路径)中。
  4. 然后运行python3.5 setup.py install --user

    在我的案例中,Jupyter正在寻找解决方案 ~/anaconda3/lib/python3.5/site-packages/Numberjack/他们是 没有安装在那里,我使用python,而不是使用python3.5,因为我的Anaconda是Python 3.5包。

答案 1 :(得分:1)

为什么有scip-3.2.1目录? SCIP Opt Suite 3.1.0包含SCIP​​ 3.1.0。您需要确保按照Numberjack install page中的说明运行所有设置并使命令完全