Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Общеалгебраическая система моделирования ( GAMS ) является высоким уровнем моделирования системы для математической оптимизации . GAMS предназначен для моделирования и решения линейных , нелинейных и смешанно-целочисленных задач оптимизации . Система предназначена для сложных крупномасштабных приложений моделирования и позволяет пользователю создавать большие поддерживаемые модели, которые можно адаптировать к новым ситуациям. Система доступна для использования на различных компьютерных платформах. Модели переносятся с одной платформы на другую.

GAMS был первым языком алгебраического моделирования (AML) [2] и формально похож на широко используемые языки программирования четвертого поколения . GAMS содержит интегрированную среду разработки (IDE) и подключена к группе сторонних решателей оптимизации . Среди этих решателей - решатели BARON, COIN-OR , CONOPT, CPLEX , DICOPT, Gurobi , MOSEK , SNOPT , SULUM и XPRESS .

GAMS позволяет пользователям реализовать своего рода гибридный алгоритм, объединяющий разные решатели. Модели описываются краткими, удобочитаемыми алгебраическими формулировками. GAMS - один из самых популярных форматов ввода для сервера NEOS . [ необходима цитата ] Хотя изначально он был разработан для приложений, связанных с экономикой и наукой об управлении , он имеет сообщество пользователей из различных областей техники и науки .

Хронология [ править ]

  • 1976 г. Идея GAMS представлена ​​на Международном симпозиуме по математическому программированию (ISMP) в Будапеште [3].
  • 1978 Фаза I: GAMS поддерживает линейное программирование . Поддерживаемые платформы: мэйнфреймы и рабочие станции Unix.
  • 1979 Фаза II: GAMS поддерживает нелинейное программирование .
  • 1987 GAMS становится коммерческим продуктом
  • 1988 Первая система ПК (16 бит)
  • 1988 Алекс Meeraus, инициатор ГАМС и основатель корпорации ГАМС развития , награжден СООБЩАЕТ Computing Society Prize
  • 1990 32-битный Dos Extender
  • 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 World
  • 2001 Представлен GAMS Data Exchange (GDX).
  • 2002 GAMS внесен в список вех к 50-летию OR / MS.
  • 2003 добавлено программирование Conic
  • 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
  • 2009 GAMS доступен в Amazon Elastic Compute Cloud
  • 2009 GAMS поддерживает расширенные математические программы ( EMP )
  • 2010 GAMS получает награду Немецкого общества операционных исследований (GOR).
  • Интерфейс GDXMRW 2010 между GAMS и Matlab
  • 2010 Окончание поддержки Mac PowerPC / Dec Alpha / SGI IRIX / HP-9000 / HP-UX
  • 2011 Поддержка библиотек внешних функций
  • 2011 Окончание поддержки Win95 / 98 / ME и Win2000
  • 2012 Победителями премии INFORMS Impact Prize 2012 стали Александр Мираус. Премия была присуждена создателям пяти важнейших языков алгебраического моделирования [1] .
  • 2012 Введение объектно-ориентированного API для .NET, Java и Python
  • 2012 Победителями Coin OR Cup 2012 стали Майкл Бассик, Стивен Диркс и Стефан Вигерске для GAMSlinks.
  • 2012 Окончание поддержки 32-разрядной версии в Mac OS X
  • 2013 Поддержка распределенных MIP (Cplex / Gurobi)
  • 2013 Расширение стохастического программирования GAMS EMP
  • 2013 Интерфейс GDXRRW между GAMS и R
  • 2014 Решатель локального поиска LocalSolver добавлен в портфель решателей
  • 2014 Окончание поддержки 32-разрядной версии Linux и 32-разрядной версии Solaris
  • Документация LaTeX 2015 г. из источника GAMS ( Model2TeX )
  • 2015 Окончание поддержки Win XP
  • 2016 Новая команда менеджеров
  • 2017 EmbeddedCode Facility
  • 2017 C ++ API
  • 2017 Внедрение платформ Core и Peripheral
  • GAMS Studio 2018 (бета)
  • 2018 Окончание поддержки x86-64 Solaris
  • 2019 GAMS MIRO - Модельный интерфейс с быстрой оркестровкой (бета)
  • 2019 Окончание поддержки Win7, перенос 32-битной Windows на периферийные платформы
  • 2019 Изменена схема управления версиями на XX.YZ
  • 2020 Введение демонстрационной схемы и схемы лицензирования сообщества
  • 2020 Официальный выпуск GAMS MIRO (Model Interface with Rapid Orchestration) для развертывания моделей GAMS в качестве интерактивных приложений.
  • 2021 г. Официальный выпуск GAMS Engine, нового решения для запуска заданий GAMS в облачных средах.

Фон [ править ]

Движущей силой разработки GAMS были пользователи математического программирования, которые верили в оптимизацию как в мощную и элегантную основу для решения реальных проблем в науке и технике. В то же время эти пользователи были разочарованы высокими затратами, требованиями к навыкам и общей низкой надежностью применения инструментов оптимизации. Большинство системных инициатив и поддержка новых разработок возникли в ответ на проблемы в областях экономики , финансов и химической инженерии , поскольку эти дисциплины рассматривают и понимают мир как математическую программу.

Стимулом к ​​развитию GAMS послужил разочаровывающий опыт большой группы экономического моделирования во Всемирном банке.. Оглядываясь назад, можно назвать исторической случайностью то, что в 1970-х годах экономисты-математики и статистики собрались для решения проблем развития. Они использовали лучшие методы, доступные в то время, для решения многоотраслевых моделей в масштабах всей экономики, а также больших имитационных и оптимизационных моделей в сельском хозяйстве, сталелитейной промышленности, производстве удобрений, энергетики, водопользования и других секторах. Хотя группа провела впечатляющее исследование, первоначальный успех было трудно воспроизвести за пределами хорошо функционирующей исследовательской среды. Существующие методы построения, манипулирования и решения таких моделей требовали нескольких ручных, трудоемких и подверженных ошибкам переводов в различные, специфичные для проблемы представления, необходимые для каждого метода решения. Во время презентаций на семинаре моделисты должны были защищать существующие версии своих моделей,иногда совершенно нерационально, из-за времени иденежные соображения. Их модели просто нельзя было перенести в другие среды, потому что требовались специальные знания программирования, а форматы данных и методы решения не переносились.

Идея алгебраического подхода к представлению, обработке и решению крупномасштабных математических моделей объединила старые и новые парадигмы в единую и легко управляемую систему. Использование матриц-генераторов для линейных программ показало важность единообразного именования строк и столбцов. Стала очевидна связь с появляющейся реляционной моделью данных. Опыт использования традиционных языков программирования для управления этими пространствами имен естественным образом заставляет мыслить в терминах наборов и кортежей , и это привело к реляционной модели данных.

Очевидным ответом было объединение многомерной алгебраической нотации с реляционной моделью данных. К настоящему времени методы написания компиляторов были широко распространены, и такие языки, как GAMS, можно было реализовать относительно быстро. Однако перевод этого строгого математического представления в формат, специфичный для алгоритма, потребовал вычисления частных производных на очень больших системах. В 1970-х годах TRW разработала систему под названием PROSE, которая взяла на вооружение идеи инженеров-химиков для вычисления точечных производных, которые были точными производными в данной точке, и встроила их в последовательный язык моделирования вычислений в стиле Fortran.. Полученная система позволила пользователю использовать автоматически генерируемые точные производные первого и второго порядка. Это была новаторская система и важная демонстрация концепции. Однако PROSE имела ряд недостатков: она не могла обрабатывать большие системы, представление проблемы было привязано к структуре данных типа массива, которая требовала вычислений адреса, и система не обеспечивала доступа к современным методам решения. Из линейного программирования GAMS узнал, что использование разреженности является ключом к решению больших проблем. Таким образом, последней частью головоломки стало использование разреженных структур данных.

Строки, начинающиеся с *первого столбца, рассматриваются как комментарии. [4] : 32

Образец модели [ править ]

Транспортная проблема Джорджа Данцига используется для создания образца модели GAMS. [5] Эта модель является частью библиотеки моделей, которая содержит гораздо больше полных моделей GAMS. Эта задача позволяет найти график отгрузки с наименьшими затратами, который соответствует требованиям на рынках и поставкам на заводах.

Данциг , Великобритания, Глава 3.3. В линейном программировании и расширениях. Princeton University Press, Принстон, Нью-Джерси, 1963.

 Наборы i консервные заводы / сиэтл, сан-диего / j market / нью-йорк, Чикаго, топика /; Параметры a (i) мощность завода i в случаях / Сиэтл 350 сан-диего 600 / b (j) спрос на рынке j в случаях / нью-йорк 325 Чикаго 300 топека 275 /; Таблица d (i, j) расстояние в тысячах миль Нью-Йорк Чикаго Топика Сиэтл 2,5 1,7 1,8 сан-диего 2,5 1,8 1,4; Скалярный фрахт в долларах за ящик за тысячу миль / 90 /; Параметр c (i, j) стоимость транспортировки в тысячах долларов за ящик; c (i, j) = f * d (i, j) / 1000; Переменные x (i, j) количество отгрузки в ящиках z общие транспортные расходы в тысячах долларов; Положительная переменная x; Уравнения стоимость определить целевую функцию поставка (i) соблюдать лимит поставки на заводе i спрос (j) удовлетворить спрос на рынке j; Стоимость .. z = e = sum ((i, j), c (i, j) * x (i, j)); supply (i) .. sum (j, x (i, j)) = l = a (i); спрос (j) .. sum (i, x (i, j)) = g = b (j); Модельный транспорт / все /; Решите транспорт, используя lp, минимизируя z; Display xl, xm;

Подсистемы [ править ]

Система математического программирования для анализа общего равновесия (MPSGE) - это язык, используемый для формулирования и решения моделей экономического равновесия Эрроу – Дебре, который существует как подсистема в GAMS. [6]

См. Также [ править ]

  • Extended Mathematical Programming (EMP) - расширение языков математического программирования, доступное в GAMS.
  • GNU MathProg - математический язык программирования с открытым исходным кодом, основанный на AMPL.

Ссылки [ править ]

  1. ^ "35 Распределение" . gams.com . Источник 2021-05-03 .
  2. ^ Kallrath, Josef (2004). Языки моделирования в математической оптимизации (Первое изд.). Норвелл, США: Kluer Academic Publishers. п. 241. ISBN. 978-1-4613-7945-4.
  3. ^ К общей системе алгебраического моделирования (PDF) . IX. Международный симпозиум по математическому программированию. Будапешт, Венгрия. 1976. с. 185.
  4. ^ Розенталь, Ричард Э (2007). GAMS - Руководство пользователя (PDF) . Вашингтон, округ Колумбия, США: Корпорация развития GAMS . Проверено 20 декабря 2020 .
  5. ^ RE Розенталь (1988). «Глава 2: Учебное пособие по GAMS». GAMS: Руководство пользователя . Научная пресса, Редвуд-Сити, Калифорния.
  6. Перейти ↑ Rutherford, TF (1999). «Прикладное моделирование общего равновесия с MPSGE в качестве подсистемы GAMS: обзор структуры моделирования и синтаксиса». Вычислительная экономика . 14 : 1–4. DOI : 10,1023 / A: 1008655831209 .

Внешние ссылки [ править ]

  • Корпорация развития GAMS
  • GAMS Software GmbH
  • GAMS Мир