Sei sulla pagina 1di 47

“Introducción General a GAMS”

1
Que es GAMS?
 GAMS (General Algebraic Modeling System) empieza como un proyecto de
investigación en el Banco Mundial en 1976. Sus desarrolladores son A.
Brooke, D. Kendrick y A. Meeraus.

 GAMS es pionero en modelación algebraica y se lanza como software


comercial en 1987 con oficinas en Washington, DC y Colonia. Compañía
GAMS Development Corporation: http://www.gams.com

 GAMS presenta la ventaja de plantear un lenguaje de modelización que


permite poder escribir en un editor la formulación matemática del problema y
posteriormente aplicarle una serie de “solvers” o programas de resolución.

 Mismo lenguaje para otras plataformas no windows: UNIX, LINUX, etc.

 McCarl GAMS 23.6 User Guide, Febrero 2011:


http://www.gams.com/mccarl/mccarlhtml/
2
 También permite la interrelación con otros lenguajes de programación.
Características de GAMS
Sistema de Modelamiento Algebraico

 Facilita la formulación de problemas de


optimización matemática , con una
esquema similar a la notación algebraica

 Proporciona “links” a algoritmos externos


del estado del arte y a eficientes
procedimientos de resolución.

3
Características de GAMS
 Limitaciones de la versión demo (gratuita) de GAMS

 Máximo número de filas: 300


 Máximo número de columnas: 300
 Máximo número de elementos distintos de cero: 2000
 Máximo número de elementos no lineales: 1000
 Máximo número de variables discretas: 50

 Existen diferentes sistemas para modelación matemática, sus principales


características son:

 Sistemas de modelación algebraica → modelos de ecuaciones puras


 Capacidad de manejar índices → optimización a gran escala
 Diferenciación automática → no hay que ingresar derivadas
 Interfase automática con los resolvedores

Restricciones Variables
Caso ejemplo 100 100
Clasificación
Tamaño medio 10.000 10.000 tamaños
Gran tamaño 100.000 100.000 para LP´s
4

Muy gran tamaño > 100.000 > 100.000


Características de GAMS
 Un programa de GAMS es un archivo de texto con terminación .gms. Se
puede escribir en cualquier procesador de texto.

 La versiones modernas de GAMS tiene la interface IDE para generar u


modelo, correrlo y visualizar resultados.

 Se puede utilizar cualquier tipografía, numero de espacios, o de renglones

 GAMS no distingue entre letras mayúsculas y minúsculas Los renglones que


principien con un asterisco “*”, en la primer columna son considerados
como comentario

 La única regla en cuanto a orden en GAMS es que no se puede utilizar un


argumento no sea declarado con anticipacion

 El punto y coma “;” indica el final de cualquier operación, ya sea de


5
declaración o asignación.
Características de GAMS
 Los nombres de las entidades en GAMS deben empezar con una letra y
pueden ser de hasta nueve caracteres

 Se le puede pedir a GAMS el mandar resultados específicos de interés


como puede ser formatos de salida, datos intermedios de las iteraciones,
etc.

 Se puede especificar que solver utilizar, e incluso adicionar un archivo con


parámetros para el solver como numero de iteraciones, o de decimales a
tomar en cuenta, datos de las derivadas, entre otros.

 En la página de GAMS Corporation, se puede encontrar el manual del


usuario, así como diversos tutoriales y una EXTENSA librería de programas
para modelos de todas índoles de la optimización.

 Dentro de la documentación disponible, se encuentran los manuales de


6
cada solver, y las formas en que se puede interactuar con ellos.
Problemas de Optimización
Esquema entrada-salida para problemas de estado estacionario

Por convección, no se consideran los


θ parámetros y todas las variables
continuas se denotan con x (z,w).
z
w De modo que las diferentes
Sistema formulaciones que pueden surgir se
y expresan en función del modelo del
sistema siguiente:
p

h ( z , y , d , p , w)  h ( x , y )  0

7
Formulaciones de Problemas de Optimización
Estado Estacionario
min F  cT . x  d T . y
min F  cT . x s.t.
s.t. A. x  B. y  d
LP MILP
A. x  b x0
x0 y  0,1

min F  f ( x ) min F  f ( x, y )
s.t. s.t.
h( x )  0 h( x, y )  0
NLP g ( x)  0 MINLP g ( x, y )  0
x  n x  n
8

y  0,1
n
Herramientas de Optimización
Códigos LP: Códigos MILP:
CPLEX, XPRESS, GUROBI, XA CPLEX, XPRESS, GUROBI, XA

Códigos NLP: Códigos MINLP:


BARON: Sahinidis et al. (1998) DICOPT (GAMS): Duran and Grossmann (1986)
CONOPT: Drud (1998) a-ECP: Westerlund and Peterssson (1996)
COUENNE: Belotti, Margot (2008) MINOPT: Schweiger and Floudas (1998)
IPOPT: Waechter & Biegler (2006) BARON: Sahinidis et al. (1998)
KNITRO: Byrd, Nocedal, Waltz (2006) MINLP-BB (AMPL): Fletcher and Leyffer (1999)
MINOS: Murtagh, Saunders (1995) SBB (GAMS): Bussieck (2000)
SNOPT: Gill, Murray, Saunders(2006) BONMIN (COIN-OR): Bonami et al (2006)
FilMINT: Linderoth and Leyffer (2006)
COUENNE: Belotti, Margot (2008)
Simuladores de proceso: Sistemas de modelamiento algebraico:
ASPEN Plus GAMS
ASPEN Hysys AMPL
PRO / II Otros:
gPROMS MATLAB
CHENCAD EXCEL 9

SuperPro Designer MATEMÁTICA


MAPLE
ESTRUCTURA DE GAMS

Archivo de
GAMS
Archivo de
Entrada Compilación del Salida
MODELO modelo
RESULTADOS

Archivo: *.LST
Archivo: *.GMS

Optimización
SOLVERS

10
Estructura de GAMS
Archivo
Usuario entrada
xxx.GMS

Archivo
salida GAMS
xxx.LST

LP Solver 1 NLP Solver 1 MIP Solver 1 MINLP Solver

LP Solver 2 NLP Solver 2 MIP Solver 2

11
Estructura Archivo de Entrada: *.GMS
En el archivo de entrada .GMS los comandos son:

SETS (declaración y asignación de índices)

PARAMETERS, TABLES, SCALARS (declaración y asignación de datos)

VARIABLES (declaración y asignación de tipo, cotas y valores iniciales)

EQUATIONS (declaración y definición)

MODEL (declaración de las ecuaciones que forman el modelo)

SOLVE (invocación a la resolución de modelo)

DISPLAY (opcional)
12
Estructura Archivo de Entrada: *.GMS

13
Opciones de Tipos de Problemas en GAMS

14
LIBRERÍA DE MODELOS

• Agricultural Economics • Simplified Alkylation Process NLP


• Optimal Design for Chemical Batch Processing MINLP
• Applied General Equilibrium
• Catalyst Mixing COPS 2.0 #14 NLP
• Chemical Engineering
• Chemical Equilibrium Problem NLP
• Econometrics
• Cyclic Scheduling of Continuous Parallel Units MINLP
• Economic Development • Optimum Feed Plate Location MINLP
• Energy Economics • Catalytic cracking of gas oil COPS 2.0 #12 NLP
• Engineering • Haverly's pooling problem example NLP
• Finance • Synthesis: Hydrodealkylation of Toluene MINLP
• Forestry • Methanol to hydrocarbons COPS 2.0 #13 NLP
• International Trade • Heat Integrated Distillation Sequences NLP
• Macro economics • Heat Integrated Distillation Sequences MINLP
• Management Science • Synthesis of General Distillation Sequences MIP
• Mathematics • Isometrization of alpha-pinene COPS 2.0 #5 NLP
• Micro economics • Alkylation Process Optimization NLP
• Stochastic Programming • Structural Optimization of Process Flowsheets MINLP
• Logical Inference for Reaction path synthesis MIP
• Statistics
• Simultaneous Optimization for Hen Synthesis MINLP
• Recreational Models
15
• Special Integer Models
“SOLVERS” QUE SOPORTA GAMS
LP (LINEAR PROGRAMMING): MINOS, CPLEX, OSL

NLP (NON LINEAR PROGRAMMING): MINOS, CONOPT, RSQP

MIP (MIX INTEGER PROGRAMMING): CPLEX, OSL

MINLP (MIXED INTEGER NON LINEAR PROGRAMMING): DICOPT

SLP (STOCHASTIC LINEAR PROGRAMMING): DECIS, OSLSE

GLOBAL NLP (GLOBAL NONLINEAR PROGRAMMING): BARON

OTROS: EXAMINER, LGO, MILES, MOSEK, PATH, XPRESS, ETC.


16
DOCUMENTACIÓN GAMS

 GAMS USER´S GUIDE

 MC CARL GUIDE

 SOLVER MANUAL

 HTTP://WWW.GAMS.COM

 GAMS MAILING LIST


17
GAMS IDE
(INTEGRATED DEVELOPEMENT ENVIRONMENT)

18
CREACIÓN DE UN PROYECTO

19
CREACIÓN DE UN ARCHIVO .GMS

20
RESOLUCIÓN DE UN PROBLEMA DE
OPTIMIZACIÓN

21
ESCRITURA DEL MODELO

Archivo .gms
Definición del modelo

22
EJECUCIÓN DE GAMS

Ejecutar GAMS

23
ARCHIVO DE RESULTADOS .LST

Archivo .lst
Resultados

24
ESTRUCTURA DEL ARCHIVO .GMS

Datos
Parte declarativa

Modelo
Modelo

Sentencia
Sentencia “Model”
“Model”
Sentencia
Sentencia “Solve”
“Solve”
25
VARIABLES

Declaración de variables

Variables

26
VARIABLES

Declaración de variables

“Nivel” de variable (Level)

Cota inferior (Lower)

Cota superior (Upper)

27
ECUACIONES

Declaración de ecuaciones

Ecuaciones

28
ESCALARES

Declaración de escalares

Escalar

29
SENTENCIA “MODEL”

Sentencia “Model”: definición del modelo

30
SOLVER

Selección del “Solver”

31
SENTENCIA “SOLVE”

Sentencia “Solve”

32
VARIABLE OBJETIVO

Variable objetivo

33
ARCHIVO .GMS

Mostrar resultados

34
EJECUTAR GAMS

Ejecutar GAMS

35
ARCHIVO LOG

36
ARCHIVO .LST

Eco de la entrada
(Echo print of the input file)

37
ARCHIVO .LST

• Útil como herramienta de debugging


• Muestra que variable aparece en cada ecuación
• Se muestran los coeficientes de cada variable en cada
ecuación “linealizada”

38
ARCHIVO .LST

• Indicación de punto inicial y cotas


• Lista de los coeficientes de cada variable en cada ecuación

39
ARCHIVO .LST

40
ARCHIVO .LST

41
ARCHIVO .LST

Listado de solución
(Solution listing)

Solución

Sentencia “DISPLAY”

42
ARCHIVO .LST (ERRORES)

Errores en tiempo de compilación

43
SÍNTESIS SECUENCIAL DE UNA RED DE
INTERCAMBIADORES DE CALOR

MyOTDS 44
45
46
47

Potrebbero piacerti anche