You are on page 1of 9

GAMS – General Algebraic Model System

• GAMS is the latest version of FORTRAN


• Used for mathematical programming; very powerful
• LEAP has GAMS programming
• Programación no lineal (PNL) – es lo que mas vamos a usar durante esta clase

• Cabecera del programa


o Titulo
o Autores
o Info general
o Básicamente elegimos que queremos ver y que no queremos ver

• Opciones de programación
o Se activan o desactivan ciertas opciones generales de GAMS

• Declaración de conjuntos
o Programas requieren que las variables, parámetros y ecuaciones sean
descritos mediante subíndices
o Se declara el nombre de la variable que se va a programar

• Declaración de parámetros numéricos


o Un programa además de tener ecuaciones, requiere de ciertos valores
numéricos constantes que denominaremos parámetros

• Declaración de variables
o Aquí definimos que variables vamos a emplear y de que tipo es cada variable
o Podemos también definir los limites de las variables que queramos y
especificar valores iniciales a considerar en los pases del solver

• Declaración de ecuaciones
o En esta parte se pueden definir las ecuaciones del modelo.
o Siempre es necesario definir una función objetivo
o Ej.: Maximizar los beneficios; Minimizar costos

• Declaración de modelo
o A cada programa GAMS le va a corresponder un modelo
o También podemos considerar varios modelos dentro de un programa GAMS
o Se le da un nombre al modelo por el cual GAMS lo reconoce; “Transport”
o Luego le decimos a GAMS que solucione “Transport”

• Escritura en GAMS
o Acepta solamente archivos de tipo texto plano ASCII, con cualquier extensión,
aunque la mas empleada sea la extensión gms.
o No distingue entre minúsculas y mayúsculas
o Tiene una lista de palabras y símbolos reservados del sistema que configuran
el lenguaje
o Las sentencias en GAMS pueden introducirse en formato libre.
o Esto es con blancos y saltos de líneas arbitrarios entre medias

• Algunos comandos de programación para GAMS


o Es recomendado escribir estos comandos en MAYUSCULAS
o SET
o _SET
o MODEL
o MODELS
o _SOLVE
o _EQ
o _EQUATION
o .LO
 Nivel inferior
o .UP
 Nivel superior
o .M
 Marginal
o .L
 Solución primal
o PARAMETER
o TABLE
o ESCALAR
o POSITIVE
o NEGATIVE
o DISPLAY

• Sentencias
o Suelen empezar con una palabra reservada como (equation) o (parameter) y
terminan con punto y coma ( ; )
o Ejemplo
 A(I) capacity of plant ;
 / La Paz 350 ;

• Identificadores
o Son los nombres que les ponemos a los conjuntos, parámetros, variables, etc.

• Etiquetas
o Son los nombres que damos a los elementos de los conjuntos, pueden tener
un máximo de 10 caracteres

• Textos descriptivos
o Los identificadores y las etiquetas pueden ir acompañados de textos
descriptivos que el compilador añade.
o Nota:
 Se necesitan usar “ “ para usar una palabra reservada en un
comentario explicativo.

• Números
o Los números se almacenan en GAMS como valores reales.
o GAMS tiene símbolos especiales:
 Infinito (INF)
 Valores no definidos (UNDF)
 Valores muy pequeños (EPS)  going towards ZERO
 Valores no disponibles (NA)

• Delimitadores
o Los puntos y coma ( ; ) separan sentencias de programa
o La coma ( , ) separa elementos dentro de un conjunto de datos
o El flash ( / ) marca el comienzo o el final de una lista de datos
 SET ; units of electricity generation
 / G1, G2 , G3 / ;
 / a, b, c / ;
 / G1 * G3 / ;

EJEMPLO: MODELO DE TRANSPORTE

• INDICES
o I = plantas
o j = mercados

• DATOS
o A(I) = oferta
o B(J) = demanda
• =L=  es el comando para Less Than
• =G=  es el comando para Greater Than
• X.L  le dice a GAMS que X va hacia un valor menor L (less)
• X.M  le dice a GAMS que X va hacia un valor mayor M
• Ahora correr el modelo apretando la flecha ROJA
• Abrir el resultado del modelo apretando “Reading solution for model TRANSPORT”
EJERCICIO 2

Economic Load Dispatch Including Transmission Losses

You might also like