Articulo de referencia

Sistema de modelado algebraico general

El sistema de modelado algebraico general ( GAMS ) es un sistema de modelado de alto nivel para la optimización matemática . GAMS está diseñado para modelar y resolver problemas...

El sistema de modelado algebraico general ( GAMS ) es un sistema de modelado de alto nivel para la optimización matemática . GAMS está diseñado para modelar y resolver problemas de optimización lineal , no lineal y de enteros mixtos . El sistema está diseñado para aplicaciones de modelado complejas a gran escala y permite al usuario construir modelos grandes y fáciles de mantener que se pueden adaptar a nuevas situaciones. El sistema está disponible para su uso en varias plataformas informáticas. Los modelos son portables de una plataforma a otra.

GAMS fue el primer lenguaje de modelado algebraico (AML) [2] y es formalmente similar a los lenguajes de programación de cuarta generación de uso común . GAMS contiene un entorno de desarrollo integrado (IDE) y está conectado a un grupo de solucionadores de optimización de terceros . Entre estos solucionadores se encuentran BARON , solucionadores COIN-OR , CONOPT, COPT Cardinal Optimizer, CPLEX , DICOPT, IPOPT , MOSEK , SNOPT y XPRESS .

GAMS permite a los usuarios implementar una especie de algoritmo híbrido que combina diferentes solucionadores. Los modelos se describen en enunciados algebraicos concisos y legibles para humanos. GAMS es uno de los formatos de entrada más populares para el servidor NEOS . [ cita requerida ] Aunque inicialmente fue diseñado para aplicaciones relacionadas con la economía y la ciencia de la gestión , tiene una comunidad de usuarios de diversos orígenes de la ingeniería y la ciencia.

Cronología

  • La idea de GAMS de 1976 se presenta en el Simposio Internacional sobre Programación Matemática (ISMP), Budapest [3]
  • 1978 Fase I: GAMS admite programación lineal . Plataformas compatibles: mainframes y estaciones de trabajo Unix
  • 1979 Fase II: GAMS admite programación no lineal .
  • 1987 GAMS se convierte en un producto comercial
  • 1988 Primer sistema de PC (16 bits)
  • 1988 Alex Meeraus, el iniciador de GAMS y fundador de GAMS Development Corporation, recibe el premio INFORMS Computing Society
  • Extensor Dos de 32 bits de 1990
  • 1990 GAMS se traslada a Georgetown, Washington, DC
  • Capacidad de programas no lineales enteros mixtos de 1991 (DICOPT)
  • 1994 GAMS apoya problemas de complementariedad mixta
  • 1995 Se agrega el lenguaje MPSGE para el modelado CGE
  • 1996 Se abre una sucursal europea en Alemania
  • Windows nativo de 32 bits de 1998
  • 1998 Capacidad de programación estocástica (OSL/SE, DECIS)
  • 1999 Introducción del entorno de desarrollo integrado (IDE) GAMS
  • 2000 Fin del soporte para DOS y Win 3.11
  • Se inicia la iniciativa mundial GAMS 2000
  • 2001 Se introduce el intercambio de datos GAMS (GDX)
  • 2002 GAMS aparece en la lista de hitos del 50.º aniversario de OR/MS
  • Se añade la programación cónica 2003
  • 2003 Optimización global en GAMS
  • 2004 Comienza la iniciativa de garantía de calidad
  • 2004 Soporte para programas con restricciones cuadráticas
  • 2005 Soporte para sistemas operativos de PC de 64 bits (Mac PowerPC / Linux / Win)
  • 2006 GAMS admite computación en red paralela
  • 2007 GAMS admite solucionadores de código abierto de COIN-OR
  • Soporte 2007 para Solaris en Sparc64
  • Compatibilidad de 2008 con Mac OS X de 32 y 64 bits
  • GAMS 2009 disponible en Amazon Elastic Compute Cloud
  • 2009 GAMS admite programas matemáticos extendidos ( EMP )
  • 2010 GAMS recibe el premio empresarial de la Sociedad Alemana de Investigación Operativa (GOR)
  • Interfaz GDXMRW 2010 entre GAMS y Matlab
  • 2010 Fin del soporte para Mac PowerPC / Dec Alpha / SGI IRIX / HP-9000/HP-UX
  • Soporte 2011 para bibliotecas de funciones extrínsecas
  • 2011 Fin del soporte para Win95 / 98 / ME y Win2000
  • 2012 Entre los ganadores del premio INFORMS Impact Prize 2012 se encontraba Alexander Meeraus. El premio se otorgó a los creadores de los cinco lenguajes de modelado algebraico más importantes.
  • Introducción de la API orientada a objetos para .NET, Java y Python en 2012
  • 2012 Los ganadores de la Coin OR Cup 2012 incluyeron a Michael Bussieck, Steven Dirkse y Stefan Vigerske para GAMSlinks.
  • 2012 Fin del soporte para 32 bits en Mac OS X
  • 2013 Soporte para MIP distribuido (Cplex)
  • Extensión de programación estocástica de GAMS EMP 2013
  • Interfaz GDXRRW 2013 entre GAMS y R
  • Solucionador de búsqueda local 2014 Se agregó LocalSolver a la cartera de solucionadores
  • 2014 Fin del soporte para Linux de 32 bits y Solaris de 32 bits
  • Documentación LaTeX de 2015 a partir de la fuente GAMS (Model2TeX)
  • 2015 Fin del soporte para Win XP
  • Nuevo equipo directivo 2016
  • Instalación de código integrado 2017
  • API de C++ 2017
  • 2017 Introducción de plataformas "Core" y "Peripheral"
  • Estudio GAMS 2018 (versión beta)
  • 2018 Fin del soporte para Solaris x86-64
  • GAMS MIRO 2019: Interfaz de modelos con orquestación rápida (versión beta)
  • 2019 Fin del soporte para Win7, se trasladó Windows de 32 bits a plataformas periféricas [4]
  • 2019 Se modificó el esquema de versiones a XX.YZ
  • 2020 Introducción del plan de licencias comunitarias y de demostración
  • 2020 Lanzamiento oficial de GAMS MIRO (Interfaz de modelo con orquestación rápida) para la implementación de modelos GAMS como aplicaciones interactivas
  • 2021 Lanzamiento oficial de GAMS Engine, la nueva solución para ejecutar trabajos GAMS en entornos de nube
  • 2022 Lanzamiento oficial de GAMS Engine SaaS, la versión alojada de GAMS Engine
  • Lanzamiento en 2023 de GAMSPy, un paquete de Python que permite el modelado algebraico en Python, utilizando GAMS como backend
  • Certificación ISO27001 2024
  • 2024 Compra de la propiedad intelectual del solucionador no lineal CONOPT por parte de GAMS

Fondo

Las fuerzas impulsoras detrás del desarrollo de GAMS fueron los usuarios de la programación matemática que creían en la optimización como un marco poderoso y elegante para resolver problemas de la vida real en ciencia e ingeniería. Al mismo tiempo, estos usuarios estaban frustrados por los altos costos, los requisitos de habilidades y una baja confiabilidad general en la aplicación de herramientas de optimización. La mayoría de las iniciativas del sistema y el apoyo para nuevos desarrollos surgieron en respuesta a problemas en los campos de la economía, las finanzas y la ingeniería química , ya que estas disciplinas ven y entienden el mundo como un programa matemático.

El impulso de GAMS para el desarrollo surgió de la experiencia frustrante de un gran grupo de modelado económico en el Banco Mundial . En retrospectiva, se puede decir que fue un accidente histórico que en la década de 1970 se reunieran economistas matemáticos y estadísticos para abordar problemas de desarrollo. Utilizaron las mejores técnicas disponibles en ese momento para resolver modelos multisectoriales de toda la economía y grandes modelos de simulación y optimización en la agricultura, el acero, los fertilizantes, la energía, el uso del agua y otros sectores. Aunque el grupo produjo una investigación impresionante, el éxito inicial fue difícil de reproducir fuera de su entorno de investigación que funcionaba bien. Las técnicas existentes para construir, manipular y resolver tales modelos requerían varias traducciones manuales, que consumían mucho tiempo y eran propensas a errores, a diferentes representaciones específicas del problema requeridas por cada método de solución. Durante las presentaciones de los seminarios, los modeladores tuvieron que defender las versiones existentes de sus modelos, a veces de manera bastante irracional, debido a consideraciones de tiempo y dinero. Sus modelos simplemente no se podían trasladar a otros entornos, porque se necesitaban conocimientos especiales de programación y los formatos de datos y los métodos de solución no eran portables.

La idea de un enfoque algebraico para representar, manipular y resolver modelos matemáticos a gran escala fusionó paradigmas antiguos y nuevos en un sistema consistente y computacionalmente manejable. El uso de matrices generadoras para programas lineales reveló la importancia de nombrar filas y columnas de manera consistente. La conexión con el modelo de datos relacionales emergente se hizo evidente. La experiencia en el uso de lenguajes de programación tradicionales para administrar esos espacios de nombres naturalmente llevó a uno a pensar en términos de conjuntos y tuplas , y esto condujo al modelo de datos relacionales.

La respuesta obvia fue la combinación de la notación algebraica multidimensional con el modelo de datos relacionales. Las técnicas de escritura de compiladores ya estaban muy extendidas y los lenguajes como GAMS podían implementarse con relativa rapidez. Sin embargo, traducir esta rigurosa representación matemática al formato específico del algoritmo requería el cálculo de derivadas parciales en sistemas muy grandes. En la década de 1970, TRW desarrolló un sistema llamado PROSE que tomó las ideas de los ingenieros químicos para calcular derivadas puntuales que fueran derivadas exactas en un punto dado y las incrustar en un lenguaje de modelado de cálculo consistente, estilo Fortran . El sistema resultante permitía al usuario utilizar derivadas exactas de primer y segundo orden generadas automáticamente. Este fue un sistema pionero y una demostración importante de un concepto. Sin embargo, PROSE tenía una serie de deficiencias: no podía manejar sistemas grandes, la representación de problemas estaba vinculada a una estructura de datos de tipo matriz que requería cálculos de direcciones y el sistema no proporcionaba acceso a métodos de solución de última generación. De la programación lineal, GAMS aprendió que la explotación de la escasez era clave para resolver problemas grandes. Así, la última pieza del rompecabezas fue el uso de estructuras de datos dispersas.

Las líneas que comienzan con un *en la columna uno se tratan como comentarios. [5] : 32 

Un modelo de muestra

Se utiliza un problema de transporte de George Dantzig para proporcionar un modelo GAMS de muestra. [6] Este modelo forma parte de la biblioteca de modelos que contiene muchos más modelos GAMS completos. Este problema encuentra un programa de envío de menor costo que cumpla con los requisitos de los mercados y los suministros de las fábricas.

Dantzig , GB, Capítulo 3.3. En Programación lineal y extensiones. Princeton University Press, Princeton, Nueva Jersey, 1963.

Conjuntos
      Plantas enlatadoras / Seattle, San Diego /
      j mercados / nueva york, chicago, topeka / ;
 Parámetros
      a(i) capacidad de la planta i en los casos
        / Seattle 350
             San Diego 600 /
      b(j) demanda en el mercado j en los casos
        / nueva york 325
             Chicago 300
             275 / ;
 Tabla d(i,j) distancia en miles de millas
                   Nueva York Chicago Topeka
     Seattle 2,5 1,7 1,8
     san diego 2.5 1.8 1.4 ;
 Escalar f flete en dólares por caja por mil millas /90/ ;
 Parámetro c(i,j) costo de transporte en miles de dólares por caja;
           c(i,j) = f * d(i,j) / 1000 ;
 Variables
      x(i,j) cantidades de envío en casos
      z costos totales de transporte en miles de dólares;
 Variable positiva x ;
 Ecuaciones
      función objetivo de definición de costo
      suministro(i) observar el límite de suministro en la planta i
      demanda(j) satisfacer la demanda en el mercado j;
 costo .. z =e= suma((i,j), c(i,j)*x(i,j)) ;
 suministro(i) .. suma(j, x(i,j)) =l= a(i) ;
 demanda(j) .. suma(i, x(i,j)) =g= b(j) ;
 Modelo de transporte /todos/ ;
 Resolver el transporte usando lp minimizando z;
 Pantalla xl, xm;

Subsistemas

El Sistema de Programación Matemática para el Análisis de Equilibrio General (MPSGE) es un lenguaje utilizado para formular y resolver modelos de equilibrio económico de Arrow-Debreu y existe como un subsistema dentro de GAMS. [7]

Véase también

Referencias

  1. ^ "48 Distribución". gams.com . Consultado el 27 de noviembre de 2024 .
  2. ^ Kallrath, Josef (2004). Lenguajes de modelado en optimización matemática (Primera edición). Norwell, EE. UU.: Kluer Academic Publishers. pág. 241. ISBN 978-1-4613-7945-4.
  3. ^ Hacia un sistema general de modelado algebraico (PDF) . IX. Simposio Internacional sobre Programación Matemática. Budapest, Hungría. 1976. p. 185.
  4. ^ "Eliminación progresiva del soporte de 32 bits con GAMS 30".
  5. ^ Rosenthal, Richard E (2007). GAMS: una guía del usuario (PDF) . Washington, DC, EE. UU.: GAMS Development Corporation . Consultado el 20 de diciembre de 2020 .
  6. ^ RE Rosenthal (1988). "Capítulo 2: Un tutorial de GAMS". GAMS: Guía del usuario . The Scientific Press, Redwood City, California.
  7. ^ Rutherford, TF (1999). "Modelado de equilibrio general aplicado con MPSGE como subsistema GAMS: una descripción general del marco de modelado y la sintaxis". Economía computacional . 14 (1/2): 1– 4. doi :10.1023/A:1008655831209. S2CID  60954697.
  • Corporación de Desarrollo GAMS
  • Software GAMS GmbH
  • Mundo GAMS
  • [1]


Obtenido de "https://es.wikipedia.org/w/index.php?title=Sistema_general_de_modelado_algebraico&oldid=1260174224"