Введение

AMPL (A Mathematical Programming Language) – это алгебраический язык моделирования, предназначенный для описания и решения задач высокой сложности в области масштабных математических вычислений (например, крупномасштабной оптимизации и задач планирования). Он был разработан Робертом Фурэром, Дэвидом Гэем и Брайаном Керниганом в лабораториях Bell Laboratories. AMPL поддерживает десятки решающих алгоритмов, как с открытым исходным кодом, так и коммерческое программное обеспечение, включая CBC, CPLEX, FortMP, MOSEK, MINOS, IPOPT, SNOPT, KNITRO и LGO. Задачи передаются решающим в виде файлов с расширением nl. AMPL используется более чем 100 корпоративными клиентами, а также государственными учреждениями и академическими институтами. Одним из преимуществ AMPL является сходство его синтаксиса с математической записью задач оптимизации, что позволяет очень кратко и понятно формулировать задачи в области оптимизации. Многие современные решающие алгоритмы, доступные на сервере NEOS (ранее размещенном в Национальной лаборатории Аргонн, а в настоящее время – в Университете Висконсина, Мэдисон), принимают входные данные в формате AMPL. Согласно статистике NEOS, AMPL является наиболее популярным форматом для представления задач математического программирования.

Доступность

AMPL доступен для многих популярных 32- и 64-битных операционных систем, включая Linux, macOS, Solaris, AIX и Windows. Переводчик – это проприетарное программное обеспечение, которое поддерживается компанией AMPL Optimization LLC. Однако существует несколько онлайн-сервисов, предоставляющих бесплатные возможности моделирования и решения задач с помощью AMPL. Также доступны бесплатная студенческая версия с ограниченной функциональностью и бесплатная полнофункциональная версия для учебных курсов. AMPL можно использовать внутри Microsoft Excel через надстройку SolverStudio Excel. Библиотека решателей AMPL (ASL), позволяющая читать файлы .nl и обеспечивающая автоматическое дифференцирование, имеет открытый исходный код. Она используется во многих решателях для реализации подключения к AMPL.

История состояния

В данной таблице представлены ключевые этапы в истории AMPL. Год Основные события 1985 AMPL была разработана и реализована. 1991 AMPL поддерживает нелинейное программирование и автоматическое дифференцирование. 1993 Роберт Фурер, Дэвид Гей и Брайан Керниган были удостоены премии ORSA/CSTS от Общества исследований операций Америки за труды по проектированию систем математического программирования и языка моделирования AMPL. 1995 Добавлены расширения для представления кусочно-линейных и сетевых структур. 1995 Реализованы скриптовые конструкции. 1997 Улучшена поддержка нелинейных решателей. 1998 AMPL поддерживает задачи теории комплементарности. 2000 Обеспечен доступ к реляционным базам данных и электронным таблицам. 2002 Добавлена поддержка программирования с ограничениями. 2008 Представлен Kestrel: интерфейс AMPL для сервера NEOS. 2012 Роберт Фурер, Дэвид Гей и Брайан Керниган были награждены премией INFORMS Impact Prize 2012 как создатели одного из важнейших алгебраических языков моделирования. 2012 Книга по AMPL стала свободно доступна в сети Интернет. 2013 Появилась новая кроссплатформенная интегрированная среда разработки (IDE) для AMPL.