Общая система алгебраического моделирования - General Algebraic Modeling System
Разработчики) | Корпорация развития GAMS |
---|---|
Стабильный выпуск | 33.1.0 / 1 ноября 2020 |
Платформа | Кроссплатформенность |
Тип | Язык алгебраического моделирования (AML) |
Лицензия | Проприетарный |
Интернет сайт | www |
В Общая система алгебраического моделирования (GAMS) является высокоуровневым моделирование система для математическая оптимизация. GAMS предназначен для моделирования и решения линейный, нелинейный, и смешанная целочисленная оптимизация проблемы. Система предназначена для сложных крупномасштабных приложений моделирования и позволяет пользователю создавать большие поддерживаемые модели, которые можно адаптировать к новым ситуациям. Система доступна для использования на различных компьютерных платформах. Модели портативный с одной платформы на другую.
ГАМС был первым язык алгебраического моделирования (AML)[1] и формально похож на обычно используемый языки программирования четвертого поколения. GAMS содержит интегрированная среда развития (IDE) и подключена к группе сторонней оптимизации решатели. Среди этих решатели БАРОН, МОНЕТА-ИЛИ решатели, CONOPT, CPLEX, ДИКОПТ, Гуроби, МОСЕК, СНОПТ, СУЛУМ и XPRESS.
GAMS позволяет пользователям реализовать своего рода гибридный алгоритм объединение разных решателей. Модели описываются краткими, удобочитаемыми алгебраическими формулировками. GAMS - один из самых популярных форматов ввода для Сервер NEOS.[нужна цитата ] Хотя изначально он был разработан для приложений, связанных с экономика и Наука управления, у него есть сообщество пользователей с разным опытом инженерное дело и наука.
График
- 1976 Идея GAMS представлена на Международном симпозиуме по математическому программированию (ISMP) в Будапеште.[2]
- 1978 Фаза I: GAMS поддерживает линейное программирование. Поддерживаемые платформы: мэйнфреймы и рабочие станции Unix
- 1979 Фаза II: GAMS поддерживает нелинейное программирование.
- 1987 GAMS становится коммерческим продуктом
- 1988 Первая система ПК (16 бит)
- 1988 Алекс Мираус, инициатор GAMS и основатель Корпорация развития GAMS, награжден INFORMS Computing Society Приз
- 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 Мир инициатива началась
- 2001 Представлен GAMS Data Exchange (GDX).
- 2002 GAMS внесен в список вех к 50-летию OR / MS
- 2003 Коническое программирование добавлен
- 2003 Глобальная оптимизация в GAMS
- 2004 Начало инициативы по обеспечению качества
- 2004 Поддержка квадратичных программ с ограничениями
- 2005 Поддержка 64-битных операционных систем ПК (Mac PowerPC / Linux / Win)
- 2006 GAMS поддерживает параллельную сеточные вычисления
- 2007 GAMS поддерживает открытый исходный код решатели от МОНЕТА-ИЛИ
- 2007 Поддержка Solaris на Sparc64
- 2008 Поддержка 32 и 64 бит Mac OS X
- 2009 GAMS доступен на 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 стали Александр Мираус. Премия была присуждена создателям пяти важнейших языков алгебраического моделирования. [1].
- 2012 Внедрение Объектно-ориентированный API для .NET, Java и Python
- 2012 Победители конкурса 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
- 2017 C ++ API
- 2017 Внедрение платформ Core и Peripheral
- 2018 GAMS Studio (бета)
- 2018 Окончание поддержки x86-64 Solaris
- 2019 GAMS MIRO - интерфейс модели с быстрой оркестровкой (бета)
- 2019 Окончание поддержки Win7, перенесено 32-битная Windows для периферийных платформ
- 2019 Изменена схема управления версиями на XX.Y.Z
- 2020 Введение демонстрационной схемы и схемы лицензирования сообщества
- 2020 Официальный выпуск GAMS MIRO (Model Interface with Rapid Orchestration) для развертывания моделей GAMS в виде интерактивных приложений
Фон
Движущей силой разработки GAMS были пользователи математическое программирование кто верил в оптимизация как мощный и элегантный фреймворк для решения реальных проблем в науке и технике. В то же время эти пользователи были разочарованы высокими затратами, требованиями к навыкам и общей низкой надежностью применения инструментов оптимизации. Большинство инициатив системы и поддержка новых разработок возникли в ответ на проблемы в областях экономика, финансы, и химическая инженерия, поскольку эти дисциплины рассматривают и понимают мир как математическую программу.
Стимулом к развитию GAMS послужил разочаровывающий опыт большой группы экономического моделирования на Всемирный банк. Оглядываясь назад, можно назвать исторической случайностью то, что в 1970-х годах экономисты-математики и статистики собрались вместе для решения проблем развития. Они использовали лучшие методы, доступные в то время, для решения многоотраслевых моделей в масштабах всей экономики, а также крупных имитационных и оптимизационных моделей в сельском хозяйстве, сталелитейной промышленности, производстве удобрений, энергетики, водопользования и других секторах. Хотя группа провела впечатляющие исследования, первоначальный успех было трудно воспроизвести за пределами хорошо функционирующей исследовательской среды. Существующие методы построения, управления и решения таких моделей требовали нескольких ручных, трудоемких и подверженных ошибкам переводов в различные представления для конкретных задач, требуемые для каждого метода решения. Во время презентаций на семинарах моделистам приходилось защищать существующие версии своих моделей, иногда довольно иррационально, из-за времени и Деньги соображения. Их модели просто нельзя было перенести в другие среды, потому что требовались специальные знания программирования, а форматы данных и методы решения не переносились.
Идея алгебраического подхода к представлению, обработке и решению крупномасштабных математических моделей объединила старые и новые парадигмы в единое целое. последовательный и вычислительно управляемая система. С помощью генераторные матрицы для линейные программы выявили важность последовательного именования строк и столбцов. Стала очевидна связь с появляющейся реляционной моделью данных. Опыт использования традиционных языки программирования управление этими пространствами имен естественным образом приводит к мысли о наборы и кортежи, и это привело к реляционной модели данных.
Очевидным ответом было объединение многомерной алгебраической нотации с реляционной моделью данных. К настоящему времени методы написания компиляторов были широко распространены, и такие языки, как GAMS, можно было реализовать относительно быстро. Однако перевод этого строгого математического представления в формат, специфичный для алгоритма, потребовал вычисления частные производные в очень больших системах. В 1970-е годы TRW разработал систему под названием ПРОЗА который использовал идеи инженеров-химиков для вычисления точечных производных, которые были точными производные в заданной точке и встроить их в последовательное исчисление в стиле Фортрана язык моделирования. Полученная система позволила пользователю использовать автоматически генерируемые точные производные первого и второго порядка. Это была новаторская система и важная демонстрация концепции. Однако, ПРОЗА имел ряд недостатков: он не мог обрабатывать большие системы, представление проблемы было привязано к структуре данных типа массива, которая требовала вычисления адресов, и система не обеспечивала доступа к современным методам решения. Из линейного программирования GAMS усвоил, что использование редкость был ключом к решению больших проблем. Таким образом, последней частью головоломки стало использование разреженных структур данных.
Образец модели
Транспортная проблема из Джордж Данциг используется для предоставления образца модели GAMS.[3] Эта модель является частью библиотеки моделей, которая содержит гораздо больше полных моделей GAMS. Эта задача позволяет найти график отгрузки с наименьшими затратами, который соответствует требованиям на рынках и поставкам на заводах.
Данциг, G B, Глава 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; Отображение x.l, x.m;
Подсистемы
Система математического программирования для анализа общего равновесия (MPSGE) - это язык, используемый для формулирования и решения Arrow – Debreu модели экономического равновесия и существует как подсистема в GAMS.[4]
Смотрите также
- Расширенное математическое программирование (EMP) - расширение для языков математического программирования, доступное в GAMS
- GNU MathProg - язык математического программирования с открытым исходным кодом на основе AMPL
использованная литература
- ^ Каллрат, Йозеф (2004). Языки моделирования в математической оптимизации (Первое изд.). Норвелл, США: Kluer Academic Publishers. п. 241. ISBN 978-1-4613-7945-4.
- ^ К общей системе алгебраического моделирования (PDF). IX. Международный симпозиум по математическому программированию. Будапешт, Венгрия. 1976. с. 185.
- ^ Р. Э. Розенталь (1988). «Глава 2: Учебное пособие по GAMS». GAMS: Руководство пользователя. Научная пресса, Редвуд-Сити, Калифорния.
- ^ Резерфорд, Т. Ф. (1999). «Прикладное моделирование общего равновесия с MPSGE в качестве подсистемы GAMS: обзор структуры моделирования и синтаксиса». Вычислительная экономика. 14: 1–4. Дои:10.1023 / А: 1008655831209.