El nombre GAMS se deriva de las iníciales de General Algebraic Modelling System,
que como su propio nombre indica es un lenguaje de modelización, más que un
programa para resolver problemas de optimización. La ventaja que presenta este programa,
es que junto al módulo de modelización (base) incorpora diferentes solver
(algoritmos de resolución de problemas) tanto de programación no lineal, como
lineal y entera.
El lenguaje GAMS posee diferentes versiones (estudiante, profesional,
workstation, mainframe, etc.) que se diferencian básicamente en las
posibilidades de resolución de problemas de diferente tamaño, así por ejemplo,
en la versión básica de estudiante existen una serie de limitaciones en cuanto
al tamaño del problema que admite un máximo de 1000 elementos distintos de cero
en los problemas lineales y no lineales, y de 20 variables enteras. Estas
limitaciones no son importantes para los ejercicios prácticos que se
desarrollan en las clases.
Una de las grandes ventajas de GAMS es la facilidad de migrar a
versiones superiores ya que el formato general es idéntico tanto en un PC como
en un supercomputador en paralelo. Otra de las ventajas es también la capacidad
de resolver diferentes versiones de un mismo modelo, tanto como problema no lineal,
lineal y entero, y el poder usar diferentes solvers.
De entre ellos podemos citar los siguientes:
Problemas
|
Solver
|
NLP
|
CONOPT,
MINOS, etc.
|
LP
|
OSL, CPLEX, MINOS, BDMLP, XA, etc.
|
MIP
|
OSL,
ZOOM, CPLEX, XA; etc.
|
MINLP
|
DICOPT
|
Además,
dentro de cada uno de estos solver, se pueden elegir diferentes opciones. Por ejemplo,
para resolver los problemas lineales con la librería OSL, podemos elegir los
siguientes algoritmos:
Características
del Sistema GAMS
Los modelos pueden ser
desarrollados y documentados de forma simultánea puesto que GAMS permite al
usuario incluir un texto explicativo, como parte de la definición de cualquier
símbolo o una ecuación.
GAMS
puede modelar diferentes tipos de problemas lo que quiere decir que es muy
fácil cambiar de un tipo de modelo a otro sin muchas complicaciones. Tanto es,
que se puede utilizar la misma información, índices, parámetros, variables, ecuaciones,
y restricciones en diferentes modelos, ¡todo al mismo tiempo!
Algunos
de los modelos que se pueden hacer con GAMS son:
LP: Programación Lineal.
MIP: Programación Entera Mixta.
NLP: Programación No Lineal.
MCP: Problemas de Complementariedad Mixta.
MPEC: Programación Matemátia con Restricciones de
equilibrio.
CNS: Sistemas No Lineales Restringidos
DNLP: Programación No Lineal con Derivadas
Discontinuas.
MINLP: Programación No Lineal Entera Mixta.
QCP: Programación con Restricciones Cuadráticas.
MIQCP: Programación Entera Mixta con Restricciones
Cuadráticas.
Esta tabla muestra que tipo de solver es capaz de hacer alguno de estos 10 tipos de modelos básicos:
• Matriz tomada de: http://www.gams.com/modtype/index.htm
Documentación en línea
En la página de GAMS, www.GAMS.com , si lo desean pueden descargar la documentación
sobre GAMS.
En la siguiente tabla se encuentran los diferentes links para descargar la información que se desea.
En la siguiente tabla se encuentran los diferentes links para descargar la información que se desea.
DOCUMENTO
|
link
|
Tutorial
GAMS
|
|
GAMS-Guía
de Usuario
|
|
Notas
de instalación para Windows
|
|
Notas
de instalación para Unix y Mac
|
|
Notas
sobre la versión
|
A continuación
se muestra una lista de Solvers con los que cuenta GAMS:
Al trabajar con GAMS podemos ver
que es muy fácil escribir texto y que este texto será ignorado por GAMS,
si le decimos que es un comentario y eso
lo indicamos con un asterisco (*) en
el inicio de la línea. Este símbolo es
de hecho nuestra primera instrucción en
GAMS. Los comentarios
son
útiles para documentar los procedimientos que se
siguen, y es una
buena
práctica utilizar frecuentemente comentarios aclaratorios.
Si nos olvidamos de añadir
un
asterisco, entonces GAMS detecta un error y nos lo dice. (Ver la figura
adjunta en la que añadimos otros comentarios).
En
este caso el usuario se le olvido el asterisco en
la
última línea. GAMS dice que detecta
errores
y le informa qué tipo de error es probable que
se este cometiendo, al dar click en el mensaje de
error se
envía a
la línea donde se ha detectado el error,
a fin
de que
el usuario intente depurarlo.
GAMS a contribuido a la solución de diferentes problemas asociados a la economía, Rob Dellink es el autor de un importante libro, que deja en claro la actividad económica, mediante los diferentes modelos aplicados.
Ramón Sala-Garrido; GAMS
Documentation in Spanish
Ejercicios Resueltos con GAMS
Implementación de GAMS para la solución de un modelo:
En
algunas subastas los elementos aparecen agrupados por paquetes no
necesariamente disyuntos y la oferta que hace el posible comprador por cada
paquete no es la suma de los precios de sus elementos, puede ser mayor o menor.
En Gams:
La solución es: x = (1,1,1,0,0,0), z = 21
Video guía sobre cómo manejar GAMS
GAMS Timeline