Алгебраические языки моделирования, такие как AIMMS , AMPL , GAMS , MPL и другие, были разработаны для облегчения описания проблемы в математических терминах и для связи абстрактной формулировки с системами управления данными, с одной стороны, и соответствующими алгоритмами для решения, с другой. Надежные алгоритмы и интерфейсы языков моделирования были разработаны для большого разнообразия задач математического программирования, таких как линейные программы (LP), нелинейные программы (NP), смешанные целочисленные программы (MIP), смешанные программы комплементарности (MCP) и другие. Исследователи постоянно обновляют типы задач и алгоритмов, которые они хотят использовать для моделирования в конкретных приложениях предметной области.
Расширенное математическое программирование ( EMP ) — это расширение языков алгебраического моделирования, которое облегчает автоматическую переформулировку новых типов моделей путем преобразования модели EMP в устоявшиеся классы математического программирования для решения с помощью зрелых алгоритмов решателя. Можно решить ряд важных классов задач. Конкретными примерами являются вариационные неравенства , равновесия Нэша , дизъюнктивные программы и стохастические программы .
EMP не зависит от используемого языка моделирования, но в настоящее время он реализован только в GAMS. Новые типы задач, моделируемых с помощью EMP, переформулируются решателем GAMS JAMS в хорошо известные типы задач, а переформулированные модели передаются подходящему решателю GAMS для решения. Ядром EMP является файл emp.info , в котором к модели добавляются аннотации, необходимые для переформулировок.
Задачи равновесия моделируют вопросы, возникающие при изучении экономического равновесия в математически абстрактной форме. Задачи равновесия включают вариационные неравенства, задачи с равновесием Нэша и задачи множественной оптимизации с ограничениями равновесия (MOPEC). Используйте ключевые слова EMP, чтобы переформулировать эти задачи как смешанные задачи комплементарности (MCP), класс задач, для которых существует зрелая технология решателя. Решите недавно переформулированную версию ключевого слова EMP задачи с помощью решателя PATH или других решателей GAMS MCP .
Примерами использования EMP для решения проблем равновесия являются вычисление равновесий Курно–Нэша–Вальраса, [1] моделирование распределения воды, [2] [3] долгосрочное планирование расширения линий электропередачи электросети, [4] моделирование агентов , не склонных к риску, на рынках гидротермальной электроэнергии с неопределенными притоками в гидрорезервуары [5] и моделирование вариационных неравенств на энергетических рынках [6].
Иерархические задачи оптимизации — это математические программы с дополнительной задачей оптимизации в их ограничениях. Простым примером является задача двухуровневого программирования , которая оптимизирует цель верхнего уровня по ограничениям, которые включают другую задачу оптимизации нижнего уровня. Двухуровневое программирование используется во многих областях. Одним из примеров является проектирование оптимальных налоговых инструментов. Налоговый инструмент моделируется на верхнем уровне, а клиринговый рынок моделируется на нижнем уровне. В общем случае задача нижнего уровня может быть задачей оптимизации или вариационным неравенством . Для облегчения переформулирования задач иерархической оптимизации предоставляется несколько ключевых слов. Задачи двухуровневой оптимизации, моделируемые с помощью EMP, переформулируются в математические программы с ограничениями равновесия (MPEC), а затем решаются с помощью одного из решателей GAMS MPEC (NLPEC или KNITRO ).
Математические программы, включающие бинарные переменные и определения дизъюнкции для моделирования дискретных выборов, называются дизъюнктивными программами. Дизъюнктивные программы имеют множество применений, включая упорядочивание задач в производственном процессе, организацию сложных проектов с экономией времени и выбор оптимального маршрута в схеме. Процедуры для расширений линейного и нелинейного дизъюнктивного программирования реализованы в EMP. Линейные дизъюнктивные программы переформулируются как смешанные целочисленные программы (MIP), а нелинейные дизъюнктивные программы переформулируются как смешанные целочисленные нелинейные программы (MINLP). Они решаются с помощью решателя LogMIP 2.0 и, возможно, других подрешателей GAMS.
Примеры использования EMP для дизъюнктивного программирования включают задачи планирования в химической промышленности [7]
EMP SP — это стохастическое расширение фреймворка EMP. Детерминированная модель с фиксированными параметрами преобразуется в стохастическую модель, в которой некоторые параметры не фиксированы, а представлены распределениями вероятностей. Это делается с помощью аннотаций и определенных ключевых слов. Возможны одиночные и совместные дискретные и параметрические распределения вероятностей . Кроме того, существуют ключевые слова для ожидаемого значения , значения риска (VaR) и условного значения риска (CVaR). Переменные, которые являются мерами риска, могут присутствовать в целевом уравнении или в ограничениях. EMP SP облегчает оптимизацию отдельной меры риска или комбинации мер риска (например, взвешенной суммы ожидаемого значения и CVaR). Кроме того, разработчик модели может выбрать компромисс между мерами риска. Также возможно моделировать ограничения, которые выполняются только с определенными вероятностями (ограничения вероятности). В настоящее время с EMP SP можно использовать следующие решатели GAMS: DE, DECIS, JAMS и LINDO . Для обработки предварительно выбранной детерминированной эквивалентной задачи можно использовать любой решатель GAMS .