我正在学习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中的问题?

最佳答案

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

安装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)的解决方案应该起作用:


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

在我的情况下,Jupyter在寻找解算器
~/anaconda3/lib/python3.5/site-packages/Numberjack/他们是
没有安装在这里,所以我没有使用python,而是使用python3.5,因为Anaconda是Python 3.5软件包。

关于python - 在Python3.5 Numberjack(OSX)上安装SCIP求解器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40009141/

10-10 13:40