МОНЕТА-ИЛИ - COIN-OR
Эта статья может чрезмерно полагаться на источники слишком тесно связан с предметом, потенциально препятствуя публикации статьи проверяемый и нейтральный.Сентябрь 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Интернет сайт | www |
---|
Вычислительная инфраструктура для исследования операций (МОНЕТА-ИЛИ), это проект, целью которого является «создание для математических программного обеспечения что такое открытая литература по математике теория. "Открытая литература (например, исследовательский журнал) предоставляет исследование операций (ИЛИ) сообщество с процессом рецензирования и архивом. Статьи в журналах исследования операций по математической теории часто содержат подтверждающие численные результаты вычислительных исследований. Программные реализации, модели и данные, используемые для получения численных результатов, обычно не публикуются. Статус-кво мешал исследователям воспроизводить результаты вычислений, проводить справедливые сравнения и расширять существующие знания.
Успех Linux, Apache, и другие проекты популяризировали модель с открытым исходным кодом разработки и распространения программного обеспечения. Группа в IBM Исследования предложили открытый исходный код как аналогичный, но жизнеспособный способ публиковать программное обеспечение, модели и данные. COIN-OR был задуман как инициатива по продвижению открытого исходного кода в сообществе исследователей вычислительных операций и по предоставлению онлайн-ресурсов и услуг хостинга, необходимых для того, чтобы другие могли запускать свои собственные программное обеспечение с открытым исходным кодом проекты.
Веб-сайт COIN-OR был запущен в качестве эксперимента в 2000 году в связи с 17-м Международным симпозиумом по математическому программированию в Атланте, штат Джорджия. В 2007 году у COIN-OR было 25 прикладных проектов,[1] включая инструменты для линейное программирование (например., МОНЕТА-ИЛИ CLP ), нелинейное программирование (например., IPOPT ), целочисленное программирование (например, CBC, Bcp и МОНЕТА ИЛИ СИМФОНИЯ ), языки алгебраического моделирования (например., Coopr ) и больше. К 2011 году это количество выросло до 48 проектов.[2] COIN-OR размещается в Институте операционных исследований и управленческих наук, ИНФОРМАЦИЯ, и управляется образовательным некоммерческим фондом COIN-OR.
Проекты
CLP
COIN-OR LP (CLP или Clp) с открытым исходным кодом линейное программирование решатель написано в C ++. Публикуется под Общая общественная лицензия так что его можно использовать в проприетарное программное обеспечение без каких-либо ограничений Стандартная общественная лицензия GNU. CLP в первую очередь предназначен для использования в качестве вызываемой библиотеки, хотя может быть создана автономная исполняемая версия. Он разработан, чтобы быть таким же надежным, как и любой коммерческий решатель (хотя и немного медленнее), и иметь возможность решать очень большие проблемы.
CLP предназначен для решения таких задач линейного программирования, как:
- свести к минимуму
- при условии проблемы ограничения следующего вида
- и неотрицательные переменные
с миллионами переменных и / или ограничений. Его основной алгоритм - это симплексный алгоритм.
CLP используется в других проектах COIN-OR, таких как СИМФОНИЯ, Branch and Cut (BCP), COIN-OR Branch and Cut (CBC ), и другие.
CBC
МОНЕТА-ИЛИ разделить и разрезать (CBC или Cbc) является открытым исходным кодом смешанное целочисленное программирование решатель написан на C ++. Его можно использовать как автономный исполняемый файл и как вызываемую библиотеку (через Математический язык программирования (AMPL ) [изначально], Общая система алгебраического моделирования (GAMS) [используя ссылки, предоставленные Услуги по оптимизации COIN-OR (ОС) и GAMSlinks проекты], MPL [сквозь CoinMP проект], ЦЕЛИ [сквозь Ссылки на AIMMS проект], PuLP, CMPL, OpenSolver для Excel, Прыгать, или же MiniZinc ).
СИМФОНИЯ
Одно- или многопроцессный оптимизация над сети (SYMPHONY) - это открытый исходный код разделить и разрезать рамки для решения смешанные целочисленные программы (MIP) по разнородным сетям.[3] Он может использовать CLP, CPLEX, XPRESS или другое линейное программирование решатели для решения лежащих в основе линейных программ.
SYMPHONY - это вызываемая библиотека, которая реализует как последовательные, так и параллельные версии ветвления, сокращения и цены для решения MILP. Алгоритм ветвления, сокращения и цены аналогичен ветвь и переплет алгоритм, но дополнительно включает режущие методы и алгоритмы ценообразования. Пользователь библиотеки может настраивать алгоритм любым количеством способов, предоставляя специфичные для приложения подпрограммы для чтения в пользовательских файлах данных, создания плоскостей разреза для конкретных приложений или применения пользовательских правил ветвления, что приводит к индивидуальному алгоритму ветвления и разреза. Большинство компонентов алгоритма, например, управление деревом поиска, управление решением линейного программирования, управление пулом разрезов и управление связью, являются внутренними по отношению к библиотеке, и пользователь не должен их трогать. Исполняемые файлы могут быть созданы в любом количестве конфигураций, от полностью последовательных до полностью параллельных, с независимо функционирующими генераторами вырезок, пулами вырезок и решателями LP. Распределенная версия в настоящее время работает в любой среде, поддерживаемой PVM протокол передачи сообщений. Тот же исходный код также может быть скомпилирован для архитектур с общей памятью с использованием любого OpenMP совместимый компилятор.
СИМФОНИЯ читает MPS (через считыватель COIN-OR MPS) и GNU MathProg файлы. SYMPHONY не имеет собственного LP-решателя, но может использоваться с такими решателями, как Clp, Cplex, Xpress, через интерфейс Osi. Вырезы создаются с использованием библиотеки генерации вырезок COIN: CGL. SYMPHONY также имеет специфичные для структуры реализации для таких проблем, как задача коммивояжера, проблема с маршрутизацией автомобиля, установить проблему разделения, смешанная проблема почтальона и т.д. SYMPHONY также имеет интерактивную оболочку, в которой пользователь может вводить команды для выполнения и управления программой.
PuLP
PuLP - это средство моделирования LP / IP, написанное на Python.[4] Он может генерировать MPS или файлы LP и позвоните ГЛПК, CLP /CBC, CPLEX, и Гуроби для решения линейных задач. PuLP - это инструмент оптимизации по умолчанию в SolverStudio за Excel.
СМИ
СМИ - это стохастическое программирование модельер и решатель написаны на C ++.[5] Он может читать стохастический MPS и предлагает прямые интерфейсы для построения стохастических программ. Он генерирует детерминированную эквивалентную линейную программу, решает ее и предоставляет интерфейсы для доступа к решениям сценария.
Смотрите также
- Решатели COIN-OR доступны в ЦЕЛИ, AMPL и GAMS системы моделирования, а в FortSP решатель. Их также можно использовать изнутри Excel через OpenSolver и SolverStudio надстройки.
Рекомендации
дальнейшее чтение
- J.T. Линдерот и Т. Ральфс: Некоммерческое программное обеспечение для смешанно-целочисленного линейного программирования. В: Целочисленное программирование: теория и практика, Джон Карлоф (редактор), CRC Press Operations Research Series, 2005, 253-303. (Версия рабочего документа)
- Т. Ральфс: Введение в пакет оптимизации COIN-OR: инструменты с открытым исходным кодом для построения и решения моделей оптимизации. Дни оптимизации, Монреаль, 7 мая 2013 г. (слайды презентации)
внешняя ссылка
- Официальный веб-сайт COIN-OR, Вычислительная инфраструктура для исследования операций