COIN-OR

редактировать
COIN-OR
МОНЕТА ИЛИ LOGO.png
Веб-сайтwww.coin-or.org

Вычислительная инфраструктура для исследования операций (COIN-OR ) - это проект, направленный на «создание для математического программного обеспечения того, что есть в открытой литературе для математической теории. " Открытая литература (например, исследовательский журнал) предоставляет сообществу операционных исследований (OR) процесс экспертной оценки и архив. Статьи в журналах исследования операций по математической теории часто содержат подтверждающие численные результаты вычислительных исследований. Программные реализации, модели и данные, используемые для получения численных результатов, обычно не публикуются. Статус-кво мешал исследователям воспроизводить результаты вычислений, проводить справедливые сравнения и расширять существующие знания.

Успех Linux, Apache и других проектов популяризировал модель с открытым исходным кодом разработки и распространения программного обеспечения. Группа из IBM Research предложила открытый исходный код как аналогичный, но жизнеспособный способ публикации программного обеспечения, моделей и данных. COIN-OR был задуман как инициатива по продвижению открытого исходного кода в сообществе исследователей вычислительных операций и по предоставлению интерактивных ресурсов и услуг хостинга, необходимых для того, чтобы другие могли запускать свои собственные проекты с открытым исходным кодом.

Веб-сайт COIN-OR был запущен в качестве эксперимента в 2000 году в связи с 17-м Международным симпозиумом по математическому программированию в Атланте, штат Джорджия. В 2007 году у COIN-OR было 25 проектов приложений, включая инструменты для линейного программирования (например, COIN-OR CLP), нелинейного программирования (например, IPOPT ), целочисленное программирование (например, CBC, Bcp и COIN-OR SYMPHONY), языки алгебраического моделирования (например, Coopr ) и многое другое. К 2011 году это количество выросло до 48 проектов. COIN-OR находится в ведении Института исследований операций и управленческих наук, INFORMS, и управляется образовательным некоммерческим фондом COIN-OR.

Содержание
  • 1 Проекты
    • 1.1 CLP
    • 1.2 CBC
    • 1.3 СИМФОНИЯ
    • 1.4 PuLP
    • 1.5 SMI
  • 2 См. Также
  • 3 Ссылки
  • 4 Далее чтение
  • 5 Внешние ссылки
Проекты

CLP

COIN-OR LP (CLP или Clp) - это решатель линейного программирования с открытым исходным кодом написано на C ++. Он опубликован под Стандартной общественной лицензией, поэтому его можно использовать в проприетарном программном обеспечении без каких-либо ограничений Стандартной общественной лицензии GNU. CLP в первую очередь предназначен для использования в качестве вызываемой библиотеки, хотя может быть создана автономная исполняемая версия. Он разработан, чтобы быть таким же надежным, как и любой коммерческий решатель (хотя и немного медленнее), и иметь возможность решать очень большие проблемы.

CLP разработан для решения таких задач линейного программирования, как:

минимизировать c 1 x 1 + c 2 x 2 {\ displaystyle c_ {1} x_ {1} + c_ {2} x_ {2} \,}c_ {1} x_ {1} + c_ {2} x_ {2} \,
  • с учетом ограничений задачи следующего вида
a 11 x 1 + a 12 x 2 ≤ b 1 {\ displaystyle a_ {11} x_ {1} + a_ {12} x_ {2} \ leq b_ {1}}a_ {11} x_ {1} + a_ {12} x_ {2} \ leq b_ {1}
a 21 x 1 + a 22 x 2 ≤ b 2 {\ displaystyle a_ {21} x_ {1} + a_ {22} x_ {2} \ leq b_ {2}}{\ displaystyle a_ {21} x_ {1} + a_ {22} x_ {2} \ leq b_ { 2}}
a 31 x 1 + a 32 x 2 ≤ b 3 {\ displaystyle a_ {31} x_ {1} + a_ {32} x_ {2} \ leq b_ {3}}{\ displaystyle a_ {31} x_ {1} + a_ {32} x_ {2} \ leq b_ {3}}
  • и неотрицательные переменные
x 1 ≥ 0 {\ displaystyle x_ {1} \ geq 0}{\ displaystyle x_ {1} \ geq 0}
x 2 ≥ 0 {\ displaystyle x_ {2} \ geq 0}{\ displaystyle x_ {2} \ geq 0}

с до миллионов переменных и / или ограничений. Его основным алгоритмом является симплексный алгоритм .

CLP, который используется в других проектах COIN-OR, таких как SYMPHONY, Branch Cut and Price (BCP), COIN-OR Branch and Cut (CBC ) и другие.

CBC

COIN-OR ветвление и вырезание (CBC или Cbc) - это решающая программа смешанного целочисленного программирования с открытым исходным кодом, написанная на C ++. Его можно использовать и как автономный исполняемый файл, и как вызываемую библиотеку (через язык математического программирования (AMPL ) [изначально], Общая система алгебраического моделирования (GAMS) [с использованием ссылки, предоставленные проектами COIN-OR Optimization Services (OS) и GAMSlinks], [через проект CoinMP], AIMMS [через проект AIMMSlinks], PuLP, CMPL, OpenSolver for Excel, JuMP или MiniZinc ).

SYMPHONY

Однопроцессная или многопроцессорная оптимизация в сетях (SYMPHONY) является открытым исходным кодом Структура Branch and Cut для решения смешанных целочисленных программ (MIP) в гетерогенных сетях. Он может использовать CLP, CPLEX, XPRESS или другие решатели линейного программирования для решения лежащих в основе линейных программ.

SYMPHONY - это вызываемая библиотека, которая реализует как последовательные, так и параллельные версии ветвления, сокращения и цены для решения MILP. Алгоритм перехода, отсечения и цены аналогичен алгоритму перехода и границы, но дополнительно включает в себя методы плоскости отсечения и алгоритмы ценообразования. Пользователь библиотеки может настраивать алгоритм любым количеством способов, предоставляя специфичные для приложения подпрограммы для чтения в пользовательских файлах данных, создания плоскостей резки для конкретных приложений или применения пользовательских правил ветвления, что приводит к индивидуальному алгоритму ветвления и разреза. Большинство компонентов алгоритма, например, управление деревом поиска, управление решением линейного программирования, управление пулом разрезов и управление связью, являются внутренними по отношению к библиотеке, и пользователь не должен их трогать. Исполняемые файлы могут быть созданы в любом количестве конфигураций, от полностью последовательных до полностью параллельных с независимо функционирующими генераторами вырезок, пулами вырезок и решателями LP. Распределенная версия в настоящее время работает в любой среде, поддерживаемой протоколом передачи сообщений PVM. Тот же исходный код также может быть скомпилирован для архитектур с общей памятью с использованием любого OpenMP совместимого компилятора.

SYMPHONY считывает файлы MPS (через программу чтения COIN-OR MPS) и GNU MathProg. SYMPHONY не имеет собственного LP-решателя, но может использоваться с такими решателями, как Clp, Cplex, Xpress, через Osi-интерфейс. Вырезы создаются с использованием библиотеки генерации вырезок COIN: CGL. SYMPHONY также имеет специфические для структуры реализации для таких задач, как задача коммивояжера, проблема маршрутизации транспортного средства и т. Д. SYMPHONY также имеет интерактивную оболочку, в которой пользователь может вводить команды для выполнения и управления программой..

PuLP

PuLP - это средство моделирования LP / IP, написанное на Python. Он может генерировать файлы MPS или LP и вызывать GLPK, CLP / CBC, CPLEX и Гуроби для решения линейных задач. PuLP - это инструмент оптимизации по умолчанию в SolverStudio для Excel.

SMI

SMI - это средство моделирования и решения стохастического программирования, написанное на C ++. Он может читать стохастический MPS и предлагает прямые интерфейсы для построения стохастических программ. Он генерирует детерминированную эквивалентную линейную программу, решает ее и предоставляет интерфейсы для доступа к решениям сценария.

См. Также
  • Решатели COIN-OR доступны в системах моделирования AIMMS, AMPL и GAMS, а также в системах моделирования Решатель FortSP. Их также можно использовать в Excel с помощью надстроек и SolverStudio.
Ссылки
  1. ^Годовой отчет COIN-OR, 2007
  2. ^Годовой отчет COIN-OR, 2011
  3. ^СИМФОНИЯ
  4. ^ПуЛП
  5. ^"СМИ". Архивировано с оригинального 15.10.2014. Проверено 3 января 2014 г.
Дополнительная литература
Внешние ссылки
Последняя правка сделана 2021-05-13 11:33:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте