Taller AMPL 1

October 21, 2017 | Author: sebastaburuaga | Category: Mathematical Optimization, Inventory, Programming Language, Computer File, Function (Mathematics)
Share Embed Donate


Short Description

Download Taller AMPL 1...

Description

ICS1113 Optimización

Taller 3:

Introducción a AMPL



1. ¿Qué es AMPL? A Mathematical Programming Language 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. Permite resolver 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.

2

2. ¿Cómo Opera AMPL? Archivo de Modelo Archivo de Datos

Lenguaje

Solver

AMPL

(Minos / Cplex o Neos Server)

Archivo de Instrucciones

Salida Resultados

3

3. ¿Cómo Obtener AMPL? AMPL Línea de Comandos: Versión estudiantil (limitada a 200 variables y 200 restricciones) disponible en: www.ampl.com

AMPL Servidor Neos Online Subir los archivos de modelo, de datos y de instrucciones al Servidor Neos en: www-neos.mcs.anl.gov/neos/

4

4. ¿Cómo Resolver un Problema Usando AMPL? Archivo de Modelo Archivo de Datos

Lenguaje

Solver

AMPL

(Minos / Cplex o Neos Server)

Archivo de Instrucciones

Primero debemos escribir tres archivos: .mod

Salida Resultados

.dat .run

5

4. ¿Cómo Resolver un Problema Usando AMPL? Archivo de Modelo .mod

Contiene los modelos (función objetivo y restricciones) a usar.

Archivo de Datos .dat

Contiene los datos del problema.

Archivo de Instrucciones .run

Llama al modelo contenido en .mod y a los datos contenidos en .dat, y configura opciones de entrada y salida

Todos estos archivos pueden ser escritos en cualquier editor de texto (WordPad, NotePad, etc.) 6

4. ¿Cómo Resolver un Problema Usando AMPL? Archivo de Modelo Archivo de Datos

Lenguaje

Solver

AMPL

(Minos / Cplex o Neos Server)

Archivo de Instrucciones

Los archivos deben ser escritos en el lenguaje apropiado

Salida Resultados

7

4. ¿Cómo Resolver un Problema Usando AMPL? Lenguaje AMPL

Max F(X) s.a. gi ( X ) ≤ bi ∀i ∈ I Comandos de declaración de elementos del modelo en AMPL: • set: Define y declara un conjunto de elementos del problema. • param: Define y declara un conjunto de parámetros del problema. • var: Define las variables del problema. • maximize o minimize: Se utiliza para declarar la función objetivo. • subject to: Se utiliza para declarar las restricciones del problema.

8

4. ¿Cómo Resolver un Problema Usando AMPL? Lenguaje AMPL

Max ∑∑ ( Pit − Ci ) X it i

X it :

Cantidad de producto i producida en tiempo t

t

Declaración de elementos del modelo en AMPL: • set: Dos conjuntos: 1) Productos, 2) Tiempo • param: Precio, definido sobre los conjuntos de Productos y Tiempo Costo de venta, definido sobre el conjunto Productos

• var: Variable x definida sobre los conjuntos Productos y Tiempo • maximize: Estamos maximizando • subject to: No hay restricciones 9

4. ¿Cómo Resolver un Problema Usando AMPL? Lenguaje AMPL Expresiones aritméticas: Existen muchas expresiones aritméticas que se pueden utilizar en el lenguaje AMPL, algunos ejemplos … + * /

= > != =0, default 10, etc.

Declara las variables de decisión del modelo

Declara la función objetivo

Declara las restricciones del modelo

31

7. Ejercicio Empresa de Computadores Archivo de datos: comp.dat

Nótese la diferencia en el uso de : y := en la declaración de vectores y matrices 32

7. Ejercicio Empresa de Computadores Archivo de instrucciones: comp.run

• ¿Cómo puedo cambiar interactivamente los valores? • ¿Cómo puedo fijar el valor de una variable? • ¿Cómo puedo guardar los resultados en un archivo? • ¿Cómo puedo medir el tiempo de resolución?

33

7. Ejercicio Empresa de Computadores Archivo de instrucciones: comp2.run

Ingreso de datos interactivo

Cambiar valores de datos (condiciones iniciales o parámetros)

Muestra más cifras significativas de los resultados Muestra tiempos y memoria utilizada

34

7. Ejercicio Empresa de Computadores Archivo de instrucciones: comp2.run Ejecuta comando MS-DOS Guarda datos en .txt

Fija el valor de una variable Deshace la fijación de una variable

Nótese el uso de > para crear y guardar en un archivo .txt nuevo y de >> para guardar en un archivo .txt ya existente

35

7. Ejercicio Empresa de Computadores Archivo de resultados: comp.txt Parte 1 (todas las variables libres)

Parte 2 (Producción de A fijo en 0)

Nótese el valor de las condiciones iniciales de las variables

36

8. Ejercicio Empresa de Manufactura Problema: Empresa debe determinar nivel de producción y de inventario en cada periodo para maximizar sus beneficios.

Variables de decisión: Qjt = Cantidad de producto j a producir en periodo t. Iit = Inventario de materia prima i en periodo t.

Datos: • • • • • • • •

3 productos: clavos, pernos y tornillos. 2 tipos de materia prima: níquel y fierro. T periodos a planificar. Máxima cantidad a producir por periodo. Unidades de materia prima para producir por producto. Inventarios iniciales de materia prima. Beneficio de cada producto por periodo. Costo de inventario y valor residual de materia prima. 37

8. Ejercicio Empresa de Manufactura Problema: Empresa debe determinar nivel de producción y de inventario en cada periodo para maximizar sus beneficios.

Objetivo: Maximizar beneficio total estimado sobre todos los periodos, menos los costos totales de almacenaje sobre todos los periodos, más el valor de la materia prima restante después del último periodo

Restricciones: • • •



Cantidad producida total en cada periodo no debe exceder el máximo permitido Unidades de cada materia prima almacenada al comienzo del periodo 1 no puede exceder el inventario inicial máximo Unidades de cada materia prima almacenada al comienzo de cualquier periodo t+1 debe ser igual a las unidades en almacenaje al comienzo del periodo t, menos las unidades utilizadas para producción en el periodo t Debe cumplir cantidades mínimas de producción requeridas por el cliente 38

8. Ejercicio Empresa de Manufactura Archivo de modelo: manuf.mod

Parámetro adicional que me obliga a producir una cantidad mínima de cada producto en cada periodo

39

8. Ejercicio Empresa de Manufactura Archivo de modelo: manuf.mod

Restricción adicional de producción mínima, puede ser por requerimiento de los clientes

40

8. Ejercicio Empresa de Manufactura Archivos de datos: manuf1.dat y manuf2.dat

• Puedo resolver distintos archivos de datos con el mismo archivo de modelo. • Nótese que los archivos de datos pueden contener distintos conjuntos y n°de elementos. 41

8. Ejercicio Empresa de Manufactura Archivos de instrucciones: manuf1.run

¿Cómo puedo ingresar valor de producción mínima requerida interactivamente? 42

8. Ejercicio Empresa de Manufactura Archivos de instrucciones: manuf1.run Ingresando cantidades mínimas de producción interactivamente.

43

8. Ejercicio Empresa de Manufactura Interfaz AMPL Ingresando cantidades mínimas de producción interactivamente.

44 Resultados con y sin restricciones de cantidad mínima de producción difieren

8. Ejercicio Empresa de Manufactura Archivos de Resultados: manuf1.txt

Cantidades a producir e inventarios para cada producto y para cada periodo de tiempo con y sin restricciones de producción mínimas 45

9. Modelo de Programación No Lineal

Queremos calcular el círculo de mayor área inscrito en un polígono definido por 4 rectas. Por lo tanto, sea: R : Radio de la circunferencia. (x0,y0) : Centro de la circunferencia.

9. Modelo de Programación No Lineal

Problema: Encontrar el círculo de mayor área inscrito dentro de las curvas.

9. Modelo de Programación No Lineal P ) Max πR 2 s .a

3x 0 + 4y 0 ≤ 24 5x 0 − 2y 0 ≤ 30 y0 + 4 ≥ 0 - 3x 0 + 5y 0 ≤ 15

3x 0 + 4y 0 − 24 5 5x 0 - 2y 0 − 30

≥R ≥R

29 y0 + 4 ≥ R - 3x 0 + 5y 0 − 15

El radio se debe encontrar al interior del polígono

≥R

34 R ≥ 0, x 0, y0 ∈ ℜ

La distancia desde el centro a cada una de las rectas no puede ser mayor al radio

9. Modelo de Programación No Lineal En este caso sólo utilizaremos el .mod para correr el problema en AMPL

Definición de variables

Definición de π

Restricciones Lineales

Restricciones No Lineales

9. Modelo de Programación No Lineal

Opciones de resolución

Estadísticas del Solver

Tiempos de resolución

Minos encuentra solución

Resultados con display

9. Modelo de Programación No Lineal

Solución: Área = 44.1188 Radio = 3.7474 Xo = 1.86285 Yo = -0.25254

Links de interés

www.ampl.com http://www-neos.mcs.anl.gov/ www.informatica.us.es/~calvo/ampl/amplavanzado.html

52

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF