Está en la página 1de 26

GAMS

Programacin Matemtica 2014-01

Carlos Daz A

Qu es GAMS?

GAMS es un compilador de los ms desarrollados solvers para problemas de


optimizacin.
Este compilador es bastante simple, pero con grandes capacidades.
Posee la peor interfaz que existe.

Interfaz de Gams

Cmo iniciar un proyecto


En primer lugar se debe crear una carpeta que contenga el proyecto.
Luego se debe abrir en GAMS la pestaa file, ir a Project y hacer click en new Project.

Cmo iniciar un proyecto


En la ventana abierta se debe buscar la carpeta en la que se quiere guardar el proyecto
(la creada anteriormente).
Luego en Nombre se debe poner el nombre deseado para el proyecto. En este caso se
le puso IRP. Damos en click en abrir.

Cmo iniciar un proyecto

Finalmente en la carpeta del proyecto estar el archivo creado, se debe abrir.


Con esto le decimos a GAMS sobre qu proyecto se est trabajando. Por lo tanto,
cualquier archivo creado o edicin se guardar en la carpeta del proyecto.
Para crear un archivo de programacin, nos dirigimos a file y hacemos click en New.

Estructura de la carpeta al iniciar un


proyecto

Cmo modelar con GAMS


Es directo el traspaso desde el modelo escrito a GAMS. A continuacin se detalla la
estructura de modelacin:
1. Se deben definir los conjuntos, llamados sets.

2. Se definen parmetros del problema.


3. Se definen las variables.

4. Se definen las restricciones.


5. Se desarrollan las restriccin junto con la funcin objetivo.
6. Se definen las opciones de solucin.

Sets
Existen varias formas de definir un set, pero en este caso utilizaremos el siguiente formato.

Donde:

k,i,arcos definen el nombre del set. Es decir, esta ser la variable que se utilizar en el modelo. Ejemplo,
costo(k) representa al costo del vehculo k, donde k {1,2,3}.
ATM, vehculos, clientes con depsitos describen lo que representa el set.

/1*3//1*7/ definen los valores de set. El // puede contener distintos valores, pero en este caso son arreglos
de nmeros. /1*5/ es igual a 1,2,3,4,5.

Parameters

Los parmetros son los datos de nuestro problema, los cuales se pueden definir de
distintas formas. Estos pueden ser definidos directamente en GAMS o pueden ser
llamados desde otros programas (Excel, por ejemplo).
Para modelar los parmetros, de manera directa en GAMS, primero deben ser definidos
de la siguiente forma:

Parameters de forma directa


En el caso de que exista un parmetro que tiene slo un valor, se puede definir de
manera directa de la siguiente forma:

Los parmetros tambin pueden depender de otros parmetros:

Parameters de forma directa


En caso de que exista un parmetro que depende de dos set, se puede definir con una
tabla:

Finalmente, si existe un parmetro que es una lista, se puede definir de la siguiente forma:

Parameters provenientes de Excel

Para la tarea es necesario saber como trabajar los parmetros provenientes de una
planilla Excel. Esto se debe a que con grandes problemas es engorroso trabajar los datos
de manera directa. Adems de esta manera los datos se mantienen organizados y son
fciles de modificar.

Parameters provenientes de Excel


En primer lugar se debe definir de distinta manera los parmetros que no dependen de
otros. Es decir, son extrados directo de la tabla Excel. La estructura de definicin es la
siguiente:

Luego se debe crear el archivo Datos.gdx(Este archivo guarda los datos para que GAMS
trabaje con ellos).

Detalle de cmo llamar a los datos


La llamada de los datos depende del tipo que sea este. Este dato puede o no tener dimensin
y a la vez la dimensin puede ser mayor que 1. Por lo tanto, a continuacin se mostrar como
llamar los distintos datos.
Primer caso: Dato nico sin dimensin.
Se declara de la siguiente forma:

Segundo Caso: Mltiples datos con una dimensin.


Se declara de la siguiente forma:

Para este segundo caso, es necesario tener los datos de la siguiente forma:

Esto debe a que GAMS necesita saber explcitamente a que auto se le asocia cierto costo.

Detalle de cmo llamar a los datos


Finalmente se est el caso de mltiples datos con mas de una dimensin. En este caso,
las horas de llegadas dependen del Nodo como del periodo.

Para este caso la declaracin es:

Detalle de cmo llamar a los datos


Par=a, significa que trabajamos sobre el parmetro a.

Rng=Caso_base!a33:c38, significa que extraemos los datos de la hoja llamada


Caso_base desde los rangos a33:c38.
Rdim, significa que la dimensin de las filas es 1.
Cdim, significa que la dimensin de las columnas es 1.
Los parmetros que depende de otros para ser calculados se declaran de la misma
forma, pero despus de los que son extrados de Excel.

Variables
Las variables deben ser definidas con el siguiente formato:

Donde en primer lugar se define la naturaleza, luego el nombre de la variable con los sets
que la definen y finalmente tenemos la descripcin.

Restricciones
Para el caso de las restricciones primeros definimos todas las ecuaciones que tendr el problema y luego las
detallamos. De manera explicita:

Luego debemos detallar cada ecuacin:

Sum(set,expresin)=sumatoria.
Ord(i)= Posicin de i.
Card(i)= ltima posicin o tamao del conjunto i.
Eq= equal.
Ne=Not equal.
Gt=greater.

Opciones de Solucin
Estas sern definidas de la siguiente forma para todos los modelos:

Solucin
Cuando ya este listo el modelo, le decimos a Gams que solucione el problema con el
botn RUN GAMS. Y adems agregamos que la solucin la entregue en archivo gdx. De
esta manera ser ms fcil revisar los resultados.

Solucin
La pantalla
obtenida ser:
Donde claramente
la solucin es
3902750.

Podemos ver
tambin que se
creo el archivo GDX
FILE. Hacemos
doble click sobre el.

Cmo guardar los resultados de las


variables
Para guardar los resultados de las variables, primero se debe crear un archivo gdx. Esto se
logra con las siguiente declaracin.
Luego, este archivo se abre en GAMS.

Se debe cambiar el tipo de archivo a gdx.


Al abrir el gdx en GAMS se debe guardar

como Excel de la siguiente manera:

Cmo guardar los resultados de las


variables
Al abrir el
gdx en
GAMS se
debe
guardar
como
Excel de
la
siguiente
manera:

Solucin

Al abrir el
archivo gdx
tenemos
todos los
datos del
problema,
junto con
las variables
y sus
resultados:

Estructura bsica del proyecto

También podría gustarte