我正在学习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中的问题?
答案 0 :(得分:2)
在与助理老师交谈后,我得到了这个问题的答案。
安装Numberjack / SCIP的文件夹不是它应该的文件夹,因此它并没有真正包含在求解程序列表中。完成python setup.py build
和python setup.py install
安装后,我运行了python setup.py build -solver SCIP
,终端反馈声明
Successfully built solver interfaces for MipWrapper, SCIP
但jupyter笔记本无法识别解算器。
安装了Anaconda(python3.5)的解决方案应该有效:
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包。
答案 1 :(得分:1)
为什么有scip-3.2.1
目录? SCIP Opt Suite 3.1.0包含SCIP 3.1.0。您需要确保按照Numberjack install page中的说明运行所有设置并使命令完全。