AMPL

UNIVERSIDAD ANDRES BELLO Clase Ayudantía 1V Herramientas complementarias para la resolución de problemas de optimizaci

Views 166 Downloads 15 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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]