Pyomo
Материал из MachineLearning.
(→Примеры) |
|||
Строка 124: | Строка 124: | ||
=== Примеры === | === Примеры === | ||
==== Ensemble Clustering ==== | ==== Ensemble Clustering ==== | ||
- | В статье [http://www.sciencedirect.com/science/article/pii/S0031320315003039 Ensemble CLustering Using Factor Graphs] решается задача ensemble clustering, где промежуточным шагом является решение линейной бинарной задачи. Хотя авторы статьи применяют для этого метод, названный Belief Propagation, задачу можно решить и напрямую. | + | В статье [http://www.sciencedirect.com/science/article/pii/S0031320315003039 Ensemble CLustering Using Factor Graphs] решается задача ensemble clustering, где промежуточным шагом является решение линейной бинарной задачи. Хотя авторы статьи применяют для этого метод, названный Belief Propagation, задачу можно решить и напрямую. Приведенный ниже код основан на примере Diet оригинального мануала [http://nbviewer.jupyter.org/github/Pyomo/PyomoGallery/blob/master/diet/DietProblem.ipynb]. |
Версия 17:46, 21 декабря 2016
Pyomo — открытая библиотека языка Python, созданная для создания и использования оптимизационных моделей.
Содержание |
Установка
macOS
Через pip
- Устанавливаем
pyomo
черезpip
. В зависимости от используемой версии интерпретатора Python можно заменитьpip
наpip2
илиpip3
.
pip install pyomo
- Устанавливаем пакет
pyomo.extras
pip install pyomo.extras
Через Anaconda
См. раздел Windows.
Windows
- Установить Anaconda
- Запустить Anaconda Prompt (интерфейс командной строки)
- Выполнить следующие команды. Устанавливаем пакеты
pyomo
,pyomo.extras
и решательglpk
.
Для этого используется сторонний репозиторий:
conda install --channel https://conda.anaconda.org/conda-forge pyomo conda install --channel https://conda.anaconda.org/conda-forge pyomo.extras conda install --channel https://conda.anaconda.org/conda-forge glpk
Linux
Предполагается, что вы используете Debian-based дистрибутив (например, Ubuntu).
Скачиваем отсюда: https://www.gnu.org/software/glpk/
cd ~/Downloads tar -xzf glpk-4.43.tar.gz cd ./glpk ./configure --prefix=/usr/local # see note [1] make sudo make install
Через pip
Здесь лучше использовать виртуальную среду, используя virtualenv
. В этом случае в скрипте внизу перед pip3
не нужно sudo
. Обратите внимание, что вы можете использовать pip2
, если хотите работать со второй версией языка.
sudo pip3 install pyomo sudo apt-get install glpk*
Через Anaconda
См. раздел Windows.
Тестирование установки
Установка солверов
Для решения поставленных задач Pyomo использует заданный в параметрах солвер. Решение задачи состоит из
.py
скрипта с определением модели и сущностей и .dat
– файл с данными (параметрами) в AMPL формате. Пример запуска решения задачи:
pyomo solve --solver=bonmin sol.py prod.dat
Существует некоторое множество солверов, которые может использовать Pyomo. Среди них есть свободно распространяемые (glpk, bonmin, ipopt, cbc) и проприетарные (minos, другие решатели AMPL). Для их использования их нужно устанавливать отдельно.
macOS
На macOS для установки ПО удобно использовать менеджер пакетов homebrew.
GLPK
- Скачиваем с сайта проекта последнюю версию.
- Устанавливаем (предполагается, что архив скачался в
~/Downloads
, а скачаный архив называетсяglpk-4.43.tar.gz
).
cd ~/Downloads tar -xzf glpk-4.43.tar.gz ./configure --prefix=/usr/local # see note [1] make sudo make install
- Проверяем, корректно ли установлен солвер (должен вывести путь до исполняемого файла).
which glpsol
bonmin
brew tap staticfloat/homebrew-juliadeps brew install bonmin
cbc
brew tap coin-or-tools/coinor brew install cbc
ipopt
brew tap Homebrew/homebrew-science brew install ipopt
lpsolve
brew tap Homebrew/homebrew-science brew install lp_solve
Примеры решений задач с помощью Pyomo можно найти на странице документации. Попробуйте запустить Jupyter Notebook в архиве, решающий транспортную проблему (transport.ipynb).
Примеры
Ensemble Clustering
В статье Ensemble CLustering Using Factor Graphs решается задача ensemble clustering, где промежуточным шагом является решение линейной бинарной задачи. Хотя авторы статьи применяют для этого метод, названный Belief Propagation, задачу можно решить и напрямую. Приведенный ниже код основан на примере Diet оригинального мануала [1].