You are on page 1of 11

MAESTRIA EN GERENCIA DE SISTEMAS

MAESTRIA EN GERENCIA DE SISTEMAS


Modelizaci
on en GAMS
MSc. Washington Rodrguez
wrodrigz2009@gmail.com
UDLA 2014

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Introducci
on

Introduccion
Lenguajes Algebraicos de modelado (GAMS, AMPL, XPRESS): Son las alternativas
m
as complejas y potentes por su capacidad de indexaci
on de las variables y ecuaciones,
permiten cambiar sin dificultad las dimensiones del modelo, de forma natural separan
datos de resultados. Desde el punto de vista del modelador permiten la detecci
on de
errores de consistencia en la definici
on y verificaci
on del modelo. Desde el punto de
vista del usuario simplifican su mantenimiento.
Puede visitar las p
aginas para revisi
on del producto: GAMS: www.gams.com, AMPL:
www.ampl.com, XPRESS: www.dash.co.uk GAMS es el lenguaje mas ampliamente
difundido comercialmente con su propia lista de discusi
on de usuarios: gamsl@listserv.gmd.de

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Ventajas y desventajas de la modelizaci
on en GAMS

Ventajas
Proporcionan una formulaci
on sencilla de modelos grandes y complejos.
Mejoran la productividad de los modeladores pues permiten dedicar m
as tiempo
al dise
no, ejecuci
on del modelo y an
alisis de los resultados y menos tiempo a la
codificaci
on del mismo.
La formulaci
on del problema es independiente del tama
no.
Permiten el uso de la estructura del modelo para diferentes casos.
Generalmente se desarrolla una maqueta (caso peque
no) y una vez depurado y
verificado su validez se lo utiliza para resolver el problema real.
Permiten la realizaci
on de cambios en el modelo de una manera sencilla y segura.
Permiten la portabilidad de los modelos entre plataformas y sistemas operativos.

Desventajas
Como u
nica desventaja de los lenguajes Algebraicos de modelado se puede anotar las
siguiente
No son adecuados para la resoluci
on de problemas de tama
no peque
no por parte
de usuarios espor
adicos por la barrera de entrada que supone el aprendizaje de
un nuevo lenguaje, en ese caso lo preferible sera el uso de SOLVER de Excel por
el tiempo invertido en la codificaci
on del mismo.

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Tendencias del modelado en GAMS

Tendencias
Interfaces de entrada y salida de datos m
as estrechamente relacionadas con las
bases de datos y ERPs.
Posibilidad de ocultar el c
odigo fuente produciendo versiones ejecutables para
usuarios finales.
Desarrollo de interfaces gr
aficas que faciliten al usuario la formulaci
on visual.
El modelador debe ir acompa
nado de un solver (optimizador), el cual toma el
modelo desarrollado en GAMS (u otro) y lo resuelve.
Actualmente CPLEX es el optimizador m
as usado comercialmente, y una
versi
on que soporta un n
umero ilimitado de variables viene incluido en GAMS.
Seg
un expertos hoy es posible resolver un problema LP de 150.000 ecuaciones
con 150.000 variables y 106 elementos no nulos en la matriz de coeficientes
Tecnol
ogicos en unas pocas horas.

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Soluci
on de problemas de dimensiones peque
nas

Modelos de dimensiones peque


nas
Sin una licencia v
alida GAMS opera en modo DEMO, o versi
on estudiantil, con las
siguientes limitaciones:
N
umero de restricciones: 300
N
umero de variables: 300
Desarrollo de interfaces gr
aficas que faciliten al usuario la formulaci
on visual.
N
umero de elementos diferentes de cero: 2000
N
umero de variables discretas: 50

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Recomendaciones para la escritura del modelo

Modularidad
Estructurarlo en diversos m
odulos: la inclusi
on de datos (tal como son entendidos y
recogidos) y la escritura de los resultados deben separarse en diferentes archivos que son
convenientemente insertados mediante la instrucci
on $INCLUDE en el m
odulo principal.
Utilizaci
on de las entidades (par
ametros, escalares, etc.) con el mismo prop
osito y
significado en las diferentes partes del c
odigo.

Escritura del codigo


Es el primer paso en el desarrollo profesional de un modelo. El c
odigo debe ser limpio y
claro para que pueda ser mantenido y ampliado. Mantener una coherencia en las reglas
de escritura:
Indentaci
on en las instrucciones repetitivas.
Sangra de 3 espacios cada vez que se usa una instrucci
on LOOP, IF
Las palabras reservadas del lenguaje van en may
usculas: THEN, ELSE, SET,
SCALAR, TABLE, LOOP, IF, etc.

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Estructura del modelo

Bloques obligatorios
Los siguientes bloques son obligatorios en cualquier modelo.
VARIABLES
EQUATIONS
MODEL
SOLVE

Bloques opcionales
Los bloques opcionales son los siguientes:
SET
DATA
DISPLAY

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Estructura del modelo
Descripci
on de los bloques

Bloque de variables
Este bloque debe comenzar con la palabra VARIABLES. Dentro de este bloque se han
de definir las variables que se van a usar en el modelo, indicando de que clase son, que
tipo de restricciones presentan, si tienen o no cotas y el punto de partida.

Bloque de ecuaciones
Este bloque ha de comenzar con el ttulo EQUATIONS. En este bloque hay que declarar
y definir las ecuaciones que se van a usar en el modelo.

Bloque de modelo
En este grupo se han de definir las ecuaciones que componen el modelo. No es obligatorio incluir todas las ecuaciones utilizadas. Este bloque tiene que comenzar con el
nombre de MODEL.

Bloque de solucion
En este bloque hay que indicar que tipo de algoritmo deseamos usar para poder resolver
el modelo que se ha definido previamente. A la hora de inicializar este bloque ha de
aparecer la palabra SOLVE.

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Estructura del modelo
Ejemplo

Modelo simple
El siguiente es un ejemplo peque
no para demostrar el uso de cada uno de los bloques
obligatorios.
$ONTEXT
Soluci
on de un problema sencillo usando GAMS
$OFFTEXT
VARIABLES
C,L,Z;
POSITIVE VARIABLES
C,L;
EQUATIONS
OBJ, TERRENO, HH, CEB;
OBJ.. Z =E= 50*C+80*L;
TERRENO.. C+L =L= 110;
HH.. 4*C+8*L =L= 720;
CEB.. C =L= 80;
MODEL
GRANJA /OBJ, TERRENO, HH, CEB/;
SOLVE
GRANJA USING LP MAXIMIZING Z;
logo

MAESTRIA EN GERENCIA DE SISTEMAS


Lneas de comentario

Comentarios en GAMS
En todos los ficheros que generemos siempre es conveniente introducir lneas de comentario que, si bien no forman parte del modelo y por lo tanto no van a ser compiladas, nos
pueden facilitar la lectura posterior tanto del fichero de datos como el de la soluci
on.
Las lneas de comentarios pueden ser introducidas de dos formas distintas:
Comenzando cada lnea con un asterisco (*), en este caso hay que tomar en
consideraci
on que ciertos smbolos est
an prohibidos, como por ejemplo los
acentos, la letra n
, etc.
Cuando hay que escribir varias lneas es conveniente utilizar el comando
$ONTEXT, a continuaci
on de
el podemos escribir tantas lneas como queramos
y adem
as utilizar cualquier car
acter especial (acentos, n
, etc.). Para indicar que
han finalizado las lneas de comentarios hay que utilizar el comando $OFFTEXT.

logo

MAESTRIA EN GERENCIA DE SISTEMAS


Bloques opcionales

Comentarios en GAMS
En todos los ficheros que generemos siempre es conveniente introducir lneas de comentario que, si bien no forman parte del modelo y por lo tanto no van a ser compiladas, nos
pueden facilitar la lectura posterior tanto del fichero de datos como el de la soluci
on.
Las lneas de comentarios pueden ser introducidas de dos formas distintas:
Comenzando cada lnea con un asterisco (*), en este caso hay que tomar en
consideraci
on que ciertos smbolos est
an prohibidos, como por ejemplo los
acentos, la letra n
, etc.
Cuando hay que escribir varias lneas es conveniente utilizar el comando
$ONTEXT, a continuaci
on de
el podemos escribir tantas lneas como queramos
y adem
as utilizar cualquier car
acter especial (acentos, n
, etc.). Para indicar que
han finalizado las lneas de comentarios hay que utilizar el comando $OFFTEXT.

logo

You might also like