UNIVERSIDAD ANDRES BELLO Clase Ayudantía 1V Herramientas complementarias para la resolución de problemas de optimizaci
Views 166 Downloads 15 File size 2MB
UNIVERSIDAD
ANDRES BELLO
Clase Ayudantía 1V Herramientas complementarias para la resolución de problemas de optimización
AMPL
Enmarcada en el curso de Investigación de Operaciones I Segundo Semestre de 2009
PROFESORA: PAMELA ÁLVAREZ M. AYUDANTE: IRVING CONTRERAS R.
SANTIAGO DE CHILE - 2009
Introducción LINGO como herramienta de resolución de problemas de optimización
AMPL: (A Modeling Language for Mathematical Programming) AMPL es un lenguaje de modelado algebraico para programación matemática capaz de expresar en notación algebraica problemas de optimización tales como los problemas de programación lineal. Es un lenguaje de programación especializado en la formulación de modelos de optimización y programación matemática. Permite formular los modelos con notación común y conceptos matemáticos familiares. Además, AMPL resuleve distintos tipos de problemas de optimización (lineales, no lineales, enteros, cuadráticos, etc.) mediante solvers especializados para cada caso. Traduce la formulación del modelo matemático y los datos del problema a lenguaje de máquina, que es el que utilizan los solvers y el computador. La gran potencia del lenguaje AMPL está en separar el modelo en sí por un lado y por otro los datos particulares del problema concreto.
Componentes de AMPL Elementos Componentes de AMPL en la construcción de un modelo
Archivo de Modelo .mod archivo que contiene el modelo de un problema.
Archivo de Datos .dat
Lenguaje
AMPL
archivo que contiene los datos del problema.
SOLVER (Minos / CPLEX o NEOS Server)
Archivo de Instrucciones .run
Ejecuta comandos de AMPL, sirve para incluir archivos de modelo y datos, incluir otras opciones de configuración y de solver, etc.
Salida Resultados
Lenguaje AMPL Características Generales del lenguaje de programación
AMPL permite además expresar tanto expresiones aritméticas y funciones matemáticas, tales como: Expresiones Aritméticas: +, -, *, /, =, , >=, = 0; var x2 >= 0; var x3 >= 0; # FUNCION OBJETIVO DEL MODELO maximize z : 2*x1 + 6*x2 + 3*x3; # RESTRICCIONES DEL MODELO subject to restriccion1 : x1 + 2*x2 + 2*x3 =0, integer; # CONJUNTOS DE INDICES set PRODUCTOS := 1..n; set MPRIMAS := 1..m; # VARIABLES DE DECISION Y RESTRICCIONES NO NEGATIVIDAD var x {j in PRODUCTOS} >= 0; # MAS PARAMETROS DEL MODELO param c {i in PRODUCTOS}; param b {j in MPRIMAS}; param a {(i,j) in {MPRIMAS,PRODUCTOS}}; # FUNCION OBJETIVO DEL MODELO maximize z : sum {j in PRODUCTOS} c[j]*x[j]; # RESTRICCIONES DEL MODELO subject to restriccion {i in MPRIMAS} : sum {j in PRODUCTOS} a[i,j]*x[j]