AMPL

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
AMPL
AmplLanguage.jpg
Дата появи: 1990
Творці: Robert Fourer
David Gay
Brian Kernighan
Bell Labs
Останній реліз: 20110222 (22 лютого 2011)
Під впливом від: AWK, C
ОС: Cross-platform (multi-platform)
Ліцензія: Proprietary (translator), free and open-source (AMPL Solver Library)
Звичайні розширення файлів: .mod .dat .run
Сторінка інтернет: Офіційна сторінка AMPL

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

Особливою перевагою 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. http://www.ampl.com/DOWNLOADS/index.html
  5. Robert Fourer, David M. Gay, Brian W. Kernighan A Modeling Language for Mathematical Programming // Management Science. — 36 (1990) С. 519–554–83.
  6. http://computing.society.informs.org/pdf/GreenbergHistory.pdf
  7. http://groups.google.com/group/ampl