Общая система алгебраического моделирования - General Algebraic Modeling System

GAMS
Разработчики)Корпорация развития GAMS
Стабильный выпуск
33.1.0 / 1 ноября 2020 (22 дня назад) (2020-11-01)
ПлатформаКроссплатформенность
ТипЯзык алгебраического моделирования (AML)
ЛицензияПроприетарный
Интернет сайтwww.gams.com

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

ГАМС был первым язык алгебраического моделирования (AML)[1] и формально похож на обычно используемый языки программирования четвертого поколения. GAMS содержит интегрированная среда развития (IDE) и подключена к группе сторонней оптимизации решатели. Среди этих решатели БАРОН, МОНЕТА-ИЛИ решатели, CONOPT, CPLEX, ДИКОПТ, Гуроби, МОСЕК, СНОПТ, СУЛУМ и XPRESS.

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

График


Фон

Движущей силой разработки 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]

Смотрите также

использованная литература

  1. ^ Каллрат, Йозеф (2004). Языки моделирования в математической оптимизации (Первое изд.). Норвелл, США: Kluer Academic Publishers. п. 241. ISBN  978-1-4613-7945-4.
  2. ^ К общей системе алгебраического моделирования (PDF). IX. Международный симпозиум по математическому программированию. Будапешт, Венгрия. 1976. с. 185.
  3. ^ Р. Э. Розенталь (1988). «Глава 2: Учебное пособие по GAMS». GAMS: Руководство пользователя. Научная пресса, Редвуд-Сити, Калифорния.
  4. ^ Резерфорд, Т. Ф. (1999). «Прикладное моделирование общего равновесия с MPSGE в качестве подсистемы GAMS: обзор структуры моделирования и синтаксиса». Вычислительная экономика. 14: 1–4. Дои:10.1023 / А: 1008655831209.

внешняя ссылка