2016-10-14 10 views
0

Мое положение: я хочу использовать SNOPT-Solver в Python через SolverFactory от pyomo. Я подал заявку на получение библиотек C/C++ для решателя оптимизации SNOPT и получилКак использовать библиотеки snopt?

libsnopt7.dylib libsnopt7_cpp.dylib.

Справившись сколотить фиктивный исполняемый файл, который SolverFactory может позвонить, он дает мне следующее сообщение об ошибке:

IOError: [Errno 2] No such file or directory: 
'/var/folders/_d/vnct15hn3.9j8dhgqr6gjf3rw0000gn/T/tmpoSB0fh.pyomo.sol' 

Тем не менее, есть файл с таким именем, только с .nl суффиксом.

Кто-нибудь знает, почему возникает эта проблема и как ее решить?

Большое спасибо.

ответ

0

У Pyomo нет привязки к SNOPT для специализированного или библиотечного режима. Чтобы использовать SNOPT из Pyomo, вам понадобится скомпилированный исполняемый файл под названием «snopt», который был создан против интерфейса ASL (библиотека библиотеки Solver Library). ASL предоставляет интерфейс, который может считывать входной файл .nl, который генерирует Pyomo, и создаст файл решения .sol, который ожидает Pyomo.

Вы можете получить источник для интерфейса библиотеки Solver Library AMPL вместе с оберткой для SNOPT через Netlib: http://www.netlib.org/ampl/solvers/.

+0

Я должен сначала сказать, что я нахожусь в системе Mac OS Sierra 10.12. Я загрузил файлы в каталог snopt netlib в папку «Загрузки» и удалил расширения .txt. Теперь я пытаюсь запустить ./configure, но он говорит мне: –

+0

Paul-MacBook-Pro: snopt пользователя $ Ls настроить \t \t makefile.u configurehere \t \t makefile.vc libsnopt7.dylib \t \t snopt.lbc libsnopt7_cpp .dylib \t snopt_.c makefile.fu Paul-MacBook-Pro: snopt пользователя $ ./configure -bash: ./configure: отказано в Paul-MacBook-Pro: snopt пользователя $ Sudo ./configure Пароль: sudo: ./configure: команда не найдена Paul-MacBook-Pro: snopt Пользователь $ –

+0

Во-первых, вам понадобится все ASL (а не только подкаталог snopt). В главном каталоге 'solvers' есть источник ASL, который вам понадобится для создания самой библиотеки ASL (с которой должна связываться оболочка SNOPT). Конкретная ошибка, которую вы видите, связана с тем, что вы не установили бит выполнения скрипта configure после его загрузки. Либо «chmod 755 configure *», либо явно запускаем скрипт через bash ('bash./Configure'). – jsiirola