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 ) |
Під впливом від | 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 підтримує широкий діапазон типів задач, у тому числі:
- Лінійне програмування
- Квадратичне програмування
- Нелінійне програмування
- Частково цілочисельне програмування
- Частково цілочисельне квадратичне програмування з (або без) опуклими квадратичними обмеженнями
- Частково цілочисельне нелінійне програмування
- Глобальна оптимізація
- Напіввизначене програмування задач з білінійними матричними нерівностями
- Задачі доповнюваності (MPECs) в дискретних або неперервних змінних
AMPL викликає розв'язувача в окремому процесі, що має такі переваги:
- збої розв'язувача не впливають на інтерпретатора
- 32-розрядна версія AMPL може використовуватися з 64-бітного розв'язувача, і навпаки.
Доступність
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 |
Див. також
- AIMMS
- GAMS
- Щербина О.О. Короткий вступ до AMPL - сучасної алгебраїчної мови моделювання, препринт, 2012.
- Мова моделювання
Примітки
- Fourer, Robert; David M. Gay, Brian W. Kernighan (2002). AMPL: A Modeling Language for Mathematical Programming. Duxbury Press. ISBN 978-0534388096.
- http://www.neos-server.org/neos/
- http://www.ampl.com/TRYAMPL/
- Архівована копія. Архів оригіналу за 26 травень 2015. Процитовано 31 травень 2011.
- Robert Fourer, David M. Gay, Brian W. Kernighan (1990). A Modeling Language for Mathematical Programming. Management Science 36: 519–554–83.
- http://computing.society.informs.org/pdf/GreenbergHistory.pdf
- http://groups.google.com/group/ampl