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 |
Розробник | Bell Laboratories |
Останній реліз | 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 |
Приклад моделі
ред.Цей розділ потребує доповнення. (травень 2011) |
Див. також
ред.- AIMMS
- GAMS
- Щербина О.О. Короткий вступ до AMPL - сучасної алгебраїчної мови моделювання [Архівовано 4 березня 2016 у Wayback Machine.], препринт, 2012.
- Мова моделювання
Примітки
ред.- ↑ а б Fourer, Robert; David M. Gay, Brian W. Kernighan (2002). AMPL: A Modeling Language for Mathematical Programming. Duxbury Press. ISBN 978-0534388096.
- ↑ а б Архівована копія. Архів оригіналу за 6 травня 2011. Процитовано 18 травня 2011.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 18 червня 2011. Процитовано 31 травня 2011.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 26 травень 2015. Процитовано 31 травень 2011.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Robert Fourer, David M. Gay, Brian W. Kernighan (1990). A Modeling Language for Mathematical Programming (PDF). Management Science. 36: 519–554–83. Архів оригіналу (PDF) за 16 липня 2011. Процитовано 10 липня 2011.
- ↑ Архівована копія (PDF). Архів оригіналу (PDF) за 7 жовтня 2006. Процитовано 10 липня 2011.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) [Архівовано 2006-10-07 у Wayback Machine.] - ↑ Архівована копія. Архів оригіналу за 29 червня 2011. Процитовано 10 липня 2011.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)