Cómo iniciar un proyecto
En primer lugar se debe crear una carpeta que contenga el proyecto.
Luego se debe abrir en GAMS la pestaña file, ir a Project y hacer click en new Project.
Cómo 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.
Cómo 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 edición se guardará en la carpeta del proyecto.
Para crear un archivo de programación, nos dirigimos a file y hacemos click en New.
Estructura de la carpeta al iniciar un proyecto
Cómo modelar con GAMS Es directo el traspaso desde el modelo escrito a GAMS. A continuación se detalla la estructura de modelación: 1. Se deben definir los conjuntos, llamados sets.
2. Se definen parámetros del problema. 3. Se definen las variables.
4. Se definen las restricciones. 5. Se desarrollan las restricción junto con la función objetivo. 6. Se definen las opciones de solución.
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 vehículo k, donde k Є {1,2,3}. “ATM, vehículos, clientes con depósitos” 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 números. /1*5/ es igual a 1,2,3,4,5.
Parameters
Los
parámetros 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 parámetros, de manera directa en GAMS, primero deben ser definidos de la siguiente forma:
Parameters de forma directa En
el caso de que exista un parámetro que tiene sólo un valor, se puede definir de manera directa de la siguiente forma:
Los parámetros también pueden depender de otros parámetros:
Parameters de forma directa En
caso de que exista un parámetro que depende de dos set, se puede definir con una tabla:
Finalmente, si existe un parámetro que es una lista, se puede definir de la siguiente forma:
Parameters provenientes de Excel
Para
la tarea es necesario saber como trabajar los parámetros provenientes de una planilla Excel. Esto se debe a que con grandes problemas es engorroso trabajar los datos de manera directa. Además de esta manera los datos se mantienen organizados y son fáciles de modificar.
Parameters provenientes de Excel En
primer lugar se debe definir de distinta manera los parámetros que no dependen de otros. Es decir, son extraídos directo de la tabla Excel. La estructura de definición es la siguiente:
Luego se debe crear el archivo Datos.gdx(Este archivo guarda los datos para que GAMS trabaje con ellos).
Detalle de cómo llamar a los datos La llamada de los datos depende del tipo que sea este. Este dato puede o no tener dimensión y a la vez la dimensión puede ser mayor que 1. Por lo tanto, a continuación se mostrará como llamar los distintos datos. Primer caso: Dato único sin dimensión. Se declara de la siguiente forma: Segundo Caso: Múltiples datos con una dimensión. 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 explícitamente a que auto se le asocia cierto costo.
Detalle de cómo llamar a los datos
Finalmente se está el caso de múltiples datos con mas de una dimensión. En este caso, las horas de llegadas dependen del Nodo como del periodo.
Para este caso la declaración es:
Detalle de cómo llamar a los datos
Par=a, significa que trabajamos sobre el parámetro “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 dimensión de las filas es 1.
Cdim, significa que la dimensión de las columnas es 1.
Los
parámetros que depende de otros para ser calculados se declaran de la misma forma, pero después de los que son extraídos 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 descripción.
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 ecuación:
Sum(set,expresión)=sumatoria. Ord(i)= Posición de i. Card(i)= Última posición o tamaño del conjunto i. Eq= equal. Ne=Not equal.
Opciones de Solución
Estas serán definidas de la siguiente forma para todos los modelos:
Solución Cuando
ya este listo el modelo, le decimos a Gams que solucione el problema con el botón RUN GAMS. Y además agregamos que la solución la entregue en archivo gdx. De esta manera será más fácil revisar los resultados.
Solución La
pantalla obtenida será:
Donde
claramente la solución es 3902750.
Podemos
ver también que se creo el archivo GDX FILE. Hacemos doble click sobre el.
Cómo 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 declaración.
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:
Cómo guardar los resultados de las variables Al
abrir el gdx en GAMS se debe guardar como Excel de la siguiente manera:
Solución
Al
abrir el archivo gdx tenemos todos los datos del problema, junto con las variables y sus resultados:
Estructura básica del proyecto