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 (англ. 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 викликає розв'язувача в окремому процесі, що має такі переваги:
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) |
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)