AMPL

AMPL (англ. A Mathematical Programming Language, буквально «мова математичного програмування») мова алгебраїчного моделювання для описування і розв'язування задач високої складності для великомасштабних математичних обчислень (наприклад, великомасштабної оптимізації і задач планування).[1] Вона була розроблена англ. Robert Fourer, англ. David Gay і Браяном Керніганом у Bell Laboratories. AMPL підтримує дюжину розв'язувачів, як з відкритим вихідним кодом, так і комерційних, у тому числі CBC, CPLEX, FortMP, Gurobi, MINOS, IPOPT, SNOPT і KNITRO. Задачі передаються розв'язувачам як nl файли.

AMPL
Парадигма Декларативне програмування і Імперативне програмування
Дата появи 1990
Творці Robert Fourer
David Gay
Brian Kernighan
Bell Labs
Розробник Лабораторії Белла
Останній реліз 20131012 (12 жовтня 2013 (2013-10-12))
Під впливом від AWK, C
Операційна система Cross-platform (multi-platform)
Ліцензія Proprietary (translator), free and open-source (AMPL Solver Library)
Звичайні розширення файлів .mod .dat .run
Вебсайт Офіційна сторінка AMPL

Особливою перевагою AMPL є подібність її синтаксису і математичного запису задач оптимізації. Це дозволяє сформулювати дуже коротко і легко для читання задачу в галузі оптимізації. Багато сучасних розв'язувачів, що доступні на сервері NEOS[2] наданому Аргонською національною лабораторією, сприймають введення моделей на AMPL. За даними статистики NEOS AMPL є найпопулярнішим форматом для представлення задач математичного програмування.

Особливості

AMPL підтримує широкий діапазон типів задач, у тому числі:

AMPL викликає розв'язувача в окремому процесі, що має такі переваги:

  • збої розв'язувача не впливають на інтерпретатора
  • 32-розрядна версія AMPL може використовуватися з 64-бітного розв'язувача, і навпаки.

Доступність

Статистика входу NEOS за січень 2011.

AMPL доступна для багатьох популярних 32- і 64-бітових платформ, включаючи Linux, Mac OS X і Windows. Сам транслятор є пропрієтарним програмним забезпеченням, що в наш час[коли?] підтримується AMPL Optimization LLC. Однак існує декілька онлайн-послуг[2][3], що забезпечують безплатні можливості моделювання і розв'язування з використанням AMPL. Також доступна для студентів безкоштовна версія з обмеженими функціональними можливостями.[4]

Бібліотека AMPL Solver Library (ASL), яка дозволяє читати nl-файли і забезпечує автоматичне диференціювання функцій, має відкритий вихідний код. Вона використовується в багатьох розв'язувачах для здійснення зв'язку з AMPL.

Історія

У цій таблиці представлено значні події в історії AMPL.

Рік Основна подія
1985 Розроблено і реалізовано AMPL[1]
1990 Опубліковано статтю з описом мови моделювання AMPL у Management Science[5]
1991 AMPL підтримує нелінійне програмування й автоматичне диференціювання
1993 Роберт Форер, Девід Гей і Брайан Керніган були нагороджені премією ORSA/CSTS[6] від Operations Research Society of America за праці з розробки математичних систем програмування і мови моделювання AMPL
1995 Розширення для представлення кусково-лінійних і мережевих структур
1995 Скриптові конструкції
1997 Розширено підтримку для нелінійного розв'язувача
1998 AMPL підтримує задачі взаємодоповнюваності
2000 Доступ до реляційних баз даних та електронних таблиць
2005 Відкрито Google-групу AMPL Modeling Language[7]
2008 Kestrel: Введено AMPL-інтерфейс для сервера NEOS

Див. також

Примітки

  1. Fourer, Robert; David M. Gay, Brian W. Kernighan (2002). AMPL: A Modeling Language for Mathematical Programming. Duxbury Press. ISBN 978-0534388096.
  2. http://www.neos-server.org/neos/
  3. http://www.ampl.com/TRYAMPL/
  4. Архівована копія. Архів оригіналу за 26 травень 2015. Процитовано 31 травень 2011.
  5. Robert Fourer, David M. Gay, Brian W. Kernighan (1990). A Modeling Language for Mathematical Programming. Management Science 36: 519–554–83.
  6. http://computing.society.informs.org/pdf/GreenbergHistory.pdf
  7. http://groups.google.com/group/ampl
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.