2016-10-12 2 views
1

Я изучаю Программу Constraint Programming в Python, и для решения проблем я должен использовать решатель SCIP. Я установил стандартный пакет Numberjack от Github, который включает в себя Mistral, Mistral2, Toulbar2, MipWrapper, SatWrapper, MiniSat и Walksat.Установите решатель SCIP на Python3.5 Numberjack (OSX)

Запуск мой код, я получил следующее сообщение об ошибке:

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) 

Я уже побежал make в 'scipoptsuite-3.1.0' и 'СКИП-3.2.1', установленный Numberjack- мастер «S 'setup.py' и попытался это:

python setup.py -solver SCIP

колдунья вернула е rror

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

У меня есть папки SCIP рядом и внутри папок Numjack. Я прочитал и выполнил все команды в файлах README и INSTALL, как я мог настроить этот решатель, но я не мог понять это правильно. Как я могу получить SCIP для решения проблем в Numberjack?

+0

Процедура установки номерного знака, кажется, сломана. Запуск 'python setup.py build' всегда будет искать CPLEX - даже если указан другой решатель. см. https://github.com/eomahony/Numberjack/issues/47 для получения обновлений – mattmilten

ответ

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) уже установлена:

  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 (или ваш путь к каталогу номерного знака).
  4. Затем запустить python3.5 setup.py install --user.

    В моем случае Jupyter искал решатель в ~/anaconda3/lib/python3.5/site-packages/Numberjack/ и они были не установлены там так, вместо того, чтобы использовать python, я использовал python3.5, так как мой Anaconda был 3,5 пакета Python.

1

Почему существует scip-3.2.1? SCIP Opt Suite 3.1.0 содержит SCIP 3.1.0. Вам необходимо убедиться в том, что все настройки и выполнить команды точно, как указано на Numberjack install page.

+0

Я сделал все, что указано на странице установки Numberjack. Используя команду установки python setup.py, она была установлена ​​в каталог, который не искал jupyter noteboook. Спасибо. – user3676951