Общая алгебраическая система моделирования
Разработчик(и) | Корпорация развития ГАМС |
---|---|
Стабильная версия | 47.2.0
/ 1 июля 2024 г. [1] |
Платформа | Кросс-платформенный |
Тип | Язык алгебраического моделирования (AML) |
Лицензия | Собственный |
Веб-сайт | www |
Общая система алгебраического моделирования ( GAMS высокого уровня ) — это система моделирования для математической оптимизации . GAMS предназначена для моделирования и решения линейной , нелинейной и смешанно-целочисленной оптимизации задач . Система предназначена для сложных, крупномасштабных приложений моделирования и позволяет пользователю создавать большие, удобные в обслуживании модели, которые можно адаптировать к новым ситуациям. Система доступна для использования на различных компьютерных платформах. Модели переносятся с одной платформы на другую.
GAMS был первым языком алгебраического моделирования (AML). [2] и формально аналогичен широко используемым языкам программирования четвертого поколения . GAMS содержит интегрированную среду разработки (IDE) и подключена к группе сторонних решателей оптимизации . Среди этих решателей — BARON , решатели COIN-OR , CONOPT, COPT Cardinal Optimizer , CPLEX , DICOPT, IPOPT , MOSEK , SNOPT и XPRESS .
GAMS позволяет пользователям реализовать своего рода гибридный алгоритм, объединяющий различные решатели. Модели описываются в кратких, удобочитаемых алгебраических формулировках. GAMS — один из самых популярных входных форматов для сервера NEOS . [ нужна ссылка ] Хотя изначально он был разработан для приложений, связанных с экономикой и наукой управления , он имеет сообщество пользователей из различных областей техники и науки.
Хронология
[ редактировать ]- 1976 г. Идея GAMS представлена на Международном симпозиуме по математическому программированию (ISMP), Будапешт. [3]
- 1978 Фаза I: GAMS поддерживает линейное программирование . Поддерживаемые платформы: мейнфреймы и рабочие станции Unix.
- 1979 Фаза II: GAMS поддерживает нелинейное программирование .
- 1987 GAMS становится коммерческим продуктом.
- 1988 г. Первая компьютерная система (16 бит)
- 1988 Алекс Мираус, инициатор GAMS и основатель корпорации развития GAMS, удостоен премии INFORMS Computing Society.
- 1990, 32 бит, два расширителя
- 1990 GAMS переезжает в Джорджтаун, Вашингтон, округ Колумбия.
- 1991 Возможность смешанных целочисленных нелинейных программ (DICOPT)
- 1994 GAMS поддерживает смешанные проблемы дополнительности.
- 1995 г. Добавлен язык MPSGE для моделирования CGE.
- 1996 г. открывается европейский филиал в Германии.
- 1998 г., 32-битная родная Windows
- 1998 Возможность стохастического программирования (OSL/SE, DECIS)
- 1999 Внедрение интегрированной среды разработки GAMS (IDE).
- 2000 г. Окончание поддержки DOS и Win 3.11.
- 2000 Начало реализации Всемирной инициативы GAMS.
- 2001 г. Представлен обмен данными GAMS (GDX).
- 2002 GAMS внесен в список вех, посвященных 50-летию OR/MS.
- 2003 коническое программирование . Добавлено
- 2003 г. Глобальная оптимизация в GAMS
- 2004 Запуск инициативы по обеспечению качества.
- 2004 г. Поддержка программ с квадратичными ограничениями.
- 2005 Поддержка 64-битных операционных систем ПК (Mac PowerPC/Linux/Win)
- 2006 GAMS поддерживает параллельные грид-вычисления.
- с открытым исходным кодом 2007 GAMS поддерживает решатели от COIN-OR.
- 2007. Поддержка Solaris на Sparc64.
- 2008 г. Поддержка 32- и 64-битной Mac OS X.
- GAMS 2009 года доступен в облаке Amazon Elastic Compute Cloud
- 2009 GAMS поддерживает расширенные математические программы ( EMP ).
- 2010 GAMS удостоена фирменной награды Немецкого общества исследования операций (GOR).
- 2010 Интерфейс GDXMRW между GAMS и Matlab
- 2010 г. Окончание поддержки Mac PowerPC/Dec Alpha/SGI IRIX/HP-9000/HP-UX.
- 2011 Поддержка библиотек внешних функций
- 2011 г. Окончание поддержки Win95/98/ME и Win2000.
- 2012 Победителями премии INFORMS Impact Prize 2012 стал Александр Мираус. Премия была вручена создателям пяти важнейших языков алгебраического моделирования.
- 2012 г. Внедрение объектно-ориентированного API для .NET, Java и Python.
- 2012 Победителями Coin OR Cup 2012 стали Майкл Бюсик, Стивен Дирксе и Стефан Вигерске для GAMSlinks.
- 2012 г. Окончание поддержки 32-разрядной версии Mac OS X.
- 2013 Поддержка распределенного MIP (Cplex)
- 2013 Расширение стохастического программирования GAMS EMP.
- 2013 Интерфейс GDXRRW между GAMS и R
- 2014 Решатель локального поиска LocalSolver добавлен в портфолио решателей
- 2014 г. Окончание поддержки 32-разрядной версии Linux и 32-разрядной версии Solaris.
- Документация LaTeX 2015 г. из источника GAMS (Model2TeX)
- 2015 г. Окончание поддержки Win XP.
- 2016 Новая управленческая команда
- 2017 Средство встроенного кода
- API C++ 2017 г.
- 2017 г. Внедрение «ядерных» и «периферийных» платформ.
- 2018 Студия GAMS (бета)
- 2018 г. Окончание поддержки x86-64 Solaris.
- 2019 GAMS MIRO — интерфейс модели с быстрой оркестровкой (бета-версия)
- 2019 Прекращение поддержки Win7, 32-разрядная версия Windows перенесена на периферийные платформы. [4]
- 2019 Изменена схема версий на XX.YZ.
- 2020 г. Внедрение схемы демо-версии и лицензирования сообщества.
- 2020 г. Официальный выпуск GAMS MIRO (Model Interface with Rapid Orchestration) для развертывания моделей GAMS в качестве интерактивных приложений.
- 2021 г. Официальный выпуск GAMS Engine, нового решения для запуска заданий GAMS в облачных средах.
- 2022 г. Официальный выпуск GAMS Engine SaaS, размещенной версии GAMS Engine.
- 2023 г. Выпуск GAMSPy, пакета Python, который позволяет алгебраическое моделирование на Python с использованием GAMS в качестве серверной части.
- Сертификация ISO27001 2024 г.
- 2024 г. Покупка нелинейного Solver IP CONOPT компанией GAMS.
Фон
[ редактировать ]Движущей силой разработки GAMS были пользователи математического программирования , которые верили в оптимизацию как в мощную и элегантную основу для решения реальных задач в области науки и техники. В то же время эти пользователи были разочарованы высокими затратами, требованиями к навыкам и общей низкой надежностью применения инструментов оптимизации. Большинство инициатив системы и поддержки новых разработок возникли в ответ на проблемы в области экономики, финансов и химического машиностроения , поскольку эти дисциплины рассматривают и понимают мир как математическую программу.
Стимул к развитию GAMS возник из разочаровывающего опыта большой группы экономического моделирования во Всемирном банке . Оглядываясь назад, можно назвать исторической случайностью тот факт, что в 1970-е годы экономисты-математики и статистики собрались вместе для решения проблем развития. Они использовали лучшие методы, доступные на тот момент, для решения многоотраслевых моделей всей экономики, а также крупных моделей моделирования и оптимизации в сельском хозяйстве, сталелитейной промышленности, производстве удобрений, энергетике, водопользовании и других секторах. Хотя группа провела впечатляющие исследования, первоначальный успех было трудно воспроизвести за пределами хорошо функционирующей исследовательской среды. Существующие методы построения, манипулирования и решения таких моделей требовали нескольких ручных, трудоемких и подверженных ошибкам переводов в различные представления для конкретных задач, необходимые для каждого метода решения. Во время презентаций на семинарах разработчикам моделей приходилось защищать существующие версии своих моделей, иногда совершенно иррационально, из соображений времени и денег. Их модели просто нельзя было перенести в другие среды, поскольку требовались специальные знания программирования, а форматы данных и методы решения были непереносимы.
Идея алгебраического подхода к представлению, манипулированию и решению крупномасштабных математических моделей объединила старые и новые парадигмы в последовательную и вычислительно адаптируемую систему. Использование порождающих матриц для линейных программ показало важность единообразного именования строк и столбцов. Связь с возникающей реляционной моделью данных стала очевидной. Опыт использования традиционных языков программирования для управления этими пространствами имен естественным образом заставляет мыслить в терминах множеств и кортежей , и это привело к созданию реляционной модели данных.
Очевидным ответом было объединение многомерной алгебраической записи с реляционной моделью данных. Техники написания компиляторов к тому времени были широко распространены, и такие языки, как GAMS, можно было реализовать относительно быстро. Однако перевод этого строгого математического представления в формат, специфичный для алгоритма, потребовал вычисления частных производных в очень больших системах. В 1970-х годах TRW разработала систему под названием PROSE , которая использовала идеи инженеров-химиков для вычисления точечных производных, которые были точными производными в данной точке, и встраивала их в последовательный язык моделирования исчисления в стиле Фортран . Полученная система позволила пользователю использовать автоматически сгенерированные точные производные первого и второго порядка. Это была новаторская система и важная демонстрация концепции. Однако PROSE имела ряд недостатков: она не могла работать с большими системами, представление задач было привязано к структуре данных типа массива, требующей вычислений адресов, и система не предоставляла доступ к современным методам решения. Из линейного программирования GAMS узнал, что использование разреженности является ключом к решению больших проблем. Таким образом, последней частью головоломки стало использование разреженных структур данных.
Строки, начинающиеся с *
в первом столбце рассматриваются как комментарии. [5] : 32
Пример модели
[ редактировать ]Транспортная задача Джорджа Данцига используется для создания образца модели GAMS. [6] Эта модель является частью библиотеки моделей, которая содержит множество более полных моделей GAMS. Эта задача позволяет найти график поставок с наименьшими затратами, отвечающий требованиям рынков и поставкам на заводах.
Данциг , ГБ, Глава 3.3. В разделе «Линейное программирование и расширения». Издательство Принстонского университета, Принстон, Нью-Джерси, 1963.
Sets i canning plants / seattle, san-diego / j markets / new-york, Chicago, topeka / ; Parameters a(i) capacity of plant i in cases / seattle 350 san-diego 600 / b(j) demand at market j in cases / new-york 325 Chicago 300 topeka 275 / ; Table d(i,j) distance in thousands of miles new-york Chicago topeka seattle 2.5 1.7 1.8 san-diego 2.5 1.8 1.4 ; Scalar f freight in dollars per case per thousand miles /90/ ; Parameter c(i,j) transport cost in thousands of dollars per case ; c(i,j) = f * d(i,j) / 1000 ; Variables x(i,j) shipment quantities in cases z total transportation costs in thousands of dollars ; Positive Variable x ; Equations cost define objective function supply(i) observe supply limit at plant i demand(j) satisfy demand at market j ; cost .. z =e= sum((i,j), c(i,j)*x(i,j)) ; supply(i) .. sum(j, x(i,j)) =l= a(i) ; demand(j) .. sum(i, x(i,j)) =g= b(j) ; Model transport /all/ ; Solve transport using lp minimizing z ; Display x.l, x.m ;
Подсистемы
[ редактировать ]Система математического программирования для анализа общего равновесия (MPSGE) — это язык, используемый для формулирования и решения моделей экономического равновесия Эрроу-Дебре , и существует как подсистема в GAMS. [7]
См. также
[ редактировать ]- Расширенное математическое программирование (EMP) - расширение языков математического программирования, доступных в GAMS.
- GNU MathProg — язык математического программирования с открытым исходным кодом, основанный на AMPL.
Ссылки
[ редактировать ]- ^ «47 Распределение» . gams.com . Проверено 03 июля 2024 г.
- ^ Каллрат, Йозеф (2004). моделирования Языки в математической оптимизации (Первое изд.). Норвелл, США: Издательство Kluer Academic Publishers. п. 241. ИСБН 978-1-4613-7945-4 .
- ^ На пути к общей системе алгебраического моделирования (PDF) . IX. Международный симпозиум по математическому программированию. Будапешт, Венгрия. 1976. с. 185.
- ^ https://www.gams.com/blog/2020/01/phasing-out-of-32-bit-support-with-gams-30/
- ^ Розенталь, Ричард Э (2007). ГАМС — Руководство пользователя (PDF) . Вашингтон, округ Колумбия, США: Корпорация развития GAMS . Проверено 20 декабря 2020 г.
- ^ Р.Э. Розенталь (1988). «Глава 2: Учебное пособие по GAMS». ГАМС: Руководство пользователя . The Scientific Press, Редвуд-Сити, Калифорния.
- ^ Резерфорд, Т.Ф. (1999). «Прикладное моделирование общего равновесия с использованием MPSGE в качестве подсистемы GAMS: обзор структуры и синтаксиса моделирования». Вычислительная экономика . 14 : 1–4. дои : 10.1023/А:1008655831209 . S2CID 60954697 .
Внешние ссылки
[ редактировать ]