Lenguaje de modelo mpl
Nombre: Puentes Rangel Juan Camilo
Profesor: Ing. Jorge Mario Lopez
AMPL: Lenguaje de programación matemático
AMPL es un lenguaje de modelado algebraico para programación matemática: un lenguaje capaz de expresar en notación algebraica problemas de optimización tales como los problemas de programación lineal. Veamos un ejemplo.
EJEMPLO 1
Unacompañía fabrica tres productos, P1, P2 y P3, que precisan para su elaboración dos materias primas, M1 y M2. Las disponibilidades semanales de estas materias son 25 y 30 unidades, respectivamente.
El beneficio neto que proporciona cada unidad de producto, así como las unidades de materia prima que necesita para su elaboración, vienen dados en la siguiente tabla:Planificar la producción semanal de forma que se maximice el beneficio.
Sean x1; x2; x3 (xi) la cantidad producida de P1; P2; P3 respectivamente (Pi, i = 1; 2; 3).
El problema a resolver sería el siguiente:
El modelo (modelo+datos) escrito en AMPL del ejemplo fue el siguiente:
GAMS
GENERALIDADES DEL LENGUAJE DE PROGRAMACIÓN GAMS
GAMS es un lenguaje deprogramación matemática. Los lenguajes de programación son lenguajes que permiten la formulación de problemas de optimización complejos. Son muy potentes por su capacidad de resolución y la indexación de las variables y ecuaciones. Entre los lenguajes de modelado más conocidos se pueden mencionar: GAMS (www.gams.com) y AMPL (www.ampl.com) de origen estadounidense y AIMMS (www.aimms.com) y XPRESS-MP(www.dash.co.uk) de origen europeo, por citar algunos.
GAMS es el lenguaje más ampliamente difundido comercialmente con su propia lista de discusión de usuarios (gams-l@listserv.gmd.de) mientras que AMPL se está potenciando mucho en las universidades estadounidenses. Existe un proyecto denominado NEOS (www.neos.mcs.anl.gov) para el cálculo distribuido que permite el envío de problemas deoptimización escritos en AMPL o GAMS a través de internet y éstos son resueltos en servidores de la red devolviendo los resultados de la optimización. GAMS es un lenguaje de modelización, más que un programa para resolver problemas de optimización. La ventaja que presenta este programa GAMS, 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.
INFORMACION BASICA
Para resolver un problema de optimización mediante GAMS es necesario preparar un proyecto. Para ello elige “file” “Project” “New Project”. A este proyecto se vincularán todos los archivos que tengan que ver con el proyecto: archivo de modelos, archivos de datos, archivos de opciones, etc que se deberán almacenar todosen la misma carpeta.
Los modelos se editan en un “input file” en donde se definen todos los elementos básicos: VARIABLES, EQUATIONS, MODEL, SOLVE, etc.
En este archivo pueden ir todos los datos y opciones, o estos pueden estar en otros archivos a los que se vincula con el código: $include Nombredelarchivo
Para construir el archivo, se abre GAMSIDE y en la página en blanco que ofrece, seescribe, no el problema de forma explícita sino la siguiente información porque luego, cuando se compila, GAMS formula el problema en forma explicita (estándar). En la página en blanco es necesario declarar:
1. Los sets (subíndices: i, j, etc.)
2. scalars, parámetros del problema
3. Parameters , datos en matrices de una dimensión
4. table, datos en matrices de varias dimensiones5. Las variables que aparecen en el problema
6. tipo de las variables (no negativas, enteras, binarias, etc.).
7. El nombre de las ecuaciones: función objetivo y restricciones (equations)
8. la expresión matemática de estas ecuaciones (incluye a la función objetivo y a las restricciones)
9. El nombre del modelo general y las ecuaciones que forman el modelo (all si son...
Regístrate para leer el documento completo.