Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Taller 3:
Introduccin a AMPL
1. Qu es AMPL?
2
2. Cmo Opera AMPL?
Archivo de
Modelo
Lenguaje Solver
Archivo de
Datos (Minos / Cplex o
AMPL Neos Server)
Archivo de
Instrucciones
Salida
Resultados
3
3. Cmo Obtener AMPL?
www-neos.mcs.anl.gov/neos/
4
4. Cmo Resolver un Problema Usando AMPL?
Archivo de
Modelo
Lenguaje Solver
Archivo de
Datos (Minos / Cplex o
AMPL Neos Server)
Archivo de
Instrucciones
Archivo de
Contiene los modelos (funcin objetivo y
Modelo
.mod
restricciones) a usar.
Archivo de
Datos Contiene los datos del problema.
.dat
Archivo de
Modelo
Lenguaje Solver
Archivo de
Datos (Minos / Cplex o
AMPL Neos Server)
Archivo de
Instrucciones
7
4. Cmo Resolver un Problema Usando AMPL?
Lenguaje AMPL
Max F(X)
s.a. gi ( X ) bi i I
Comandos de declaracin de elementos del modelo en AMPL:
set: Define y declara un conjunto de elementos del problema.
param: Define y declara un conjunto de parmetros del problema.
var: Define las variables del problema.
maximize o minimize: Se utiliza para declarar la funcin objetivo.
subject to: Se utiliza para declarar las restricciones del problema.
8
4. Cmo Resolver un Problema Usando AMPL?
Lenguaje AMPL
9
4. Cmo Resolver un Problema Usando AMPL?
Lenguaje AMPL
Expresiones aritmticas:
Existen muchas expresiones aritmticas que se pueden utilizar en el lenguaje
AMPL, algunos ejemplos
+ = sum or o ||
- > min and o &&
* != max not o !
/ <= prod
Funciones matemticas:
Existen muchas funciones matemticas que se pueden utilizar en el lenguaje
AMPL, algunos ejemplos
11
4. Cmo Resolver un Problema Usando AMPL?
Lenguaje AMPL
Otros comandos:
reset: limpia la memoria de AMPL para comenzar un nuevo problema.
model: se utiliza para ingresar el archivo de modelo al compilador AMPL.
data: se utiliza para ingresar el archivo de datos al solver.
solve: resuelve el modelo (el solver predeterminado es el MINOS).
options: se utiliza para cambiar algunas opciones de AMPL.
display: se utiliza para ver los resultados despus de resolver.
include: se utiliza para ejecutar un archivo de instrucciones .run
12
4. Cmo Resolver un Problema Usando AMPL?
Archivo de
Modelo
Lenguaje Solver
Archivo de
Datos (Minos / Cplex o
AMPL Neos Server)
Archivo de
Instrucciones
13
4. Cmo Resolver un Problema Usando AMPL?
Se puede utilizar AMPL con distintos solvers de acuerdo a las caractersticas del
problema a resolver.
14
4. Cmo Resolver un Problema Usando AMPL?
Archivo de
Modelo
Lenguaje Solver
Archivo de
Datos (Minos / Cplex o
AMPL Neos Server)
Archivo de
Instrucciones
15
4. Cmo Resolver un Problema Usando AMPL?
display nombre_funcin_objetivo;
display nombre_variable;
display nombre_restriccin;
16
4. Cmo Resolver un Problema Usando AMPL?
display nombre_variable.sufijo_variables;
display nombre_restriccin.sufijo_restriccin;
.body: valor actual .ub: cota superior .dinit: valor inicial variable dual
.slack: holgura .lb: cota inferior .dual: valor actual variable dual
17
4. Cmo Resolver un Problema Usando AMPL?
18
4. Cmo Resolver un Problema Usando AMPL?
21
5. Ejemplo
1. Crear documento de texto en Notepad o Wordpad.
2. Escribir archivo de datos y guardar con extensin .run
3. Se ejecuta en AMPL con el comando: include archivo.run
22
5. Ejemplo
23
6. Ejercicio Barriles de Petrleo
Problema:
Petrolera debe determinar su produccin de barriles de petrleo para los prximos 3
aos.
Variables de decisin:
x = Produccin en millones de barriles de petrleo para el periodo i.
i
Datos:
P = ( 28 x ), Precio en dlares para barriles vendidos en periodo 1.
1 1
2
C = x , Costo de extraccin en millones de dlares para periodo 1.
1 1
2
C = 1.5x , Costo de extraccin en millones de dlares para periodo 2.
2 2
24
6. Ejercicio Barriles de Petrleo
Problema:
Petrolera debe determinar su produccin de barriles de petrleo para los prximos 3
aos.
Objetivo:
Maximizar las utilidades totales (valor presente) para los 3 periodos:
2 2 2
Max P x - x + (P x -1.5x )/1.04 +( P x -2 x )/1.04 2
1 1 1 2 2 2 3 3 3
{x1,x2,x3} 0
Restricciones:
R : x + x + x 30, Cantidad mxima de extraccin en 3 periodos.
1 1 2 3
25
6. Ejercicio Barriles de Petrleo
Archivo de modelo: petro.mod
26
6. Ejercicio Barriles de Petrleo
Archivo de datos: petro.dat
27
6. Ejercicio Barriles de Petrleo
Resultado en AMPL
28
7. Ejercicio Empresa de Computadores
Problema:
Empresa debe determinar sus cantidades ptimas de produccin de dos tipos de
computadores, que llamaremos modelo A y modelo B.
Variables de decisin:
q = Cantidad de computadores modelo i a fabricar, con i={A, B}.
i
Datos:
Modelo A:
Requiere de 3 horas de trabajo y de 2 chips como insumos.
Funcin de demanda dada por: qA = 6.000 8pA + 2pB.
Modelo B:
Requiere de 2 horas de trabajo y de 4 chips como insumos.
Funcin de demanda dada por: qB = 5.000 + pA 5pB.
Se dispone de 8.000 horas de trabajo y de un inventario de 7.000 chips.
29
7. Ejercicio Empresa de Computadores
Problema:
Empresa debe determinar sus cantidades ptimas de produccin de dos tipos de
computadores, que llamaremos modelo A y modelo B.
Objetivo:
Maximizar las utilidades totales variando el precio y la cantidad producida:
Max pq +pq
A A B B
{p1,p2,q1,q2} 0
Restricciones:
R : qA = 6.000 8pA + 2pB , demanda modelo A.
1
R : qB = 5.000 + pA 5pB,
2 demanda modelo B.
R : 3qA + 2qB 8.000, restriccin de recurso horas de trabajo.
3
30
7. Ejercicio Empresa de Computadores
Archivo de modelo: comp.mod
31
7. Ejercicio Empresa de Computadores
Archivo de datos: comp.dat
34
7. Ejercicio Empresa de Computadores
Archivo de instrucciones: comp2.run
Ejecuta comando MS-DOS
Problema:
Empresa debe determinar nivel de produccin y de inventario en cada periodo
para maximizar sus beneficios.
Variables de decisin:
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: nquel y fierro.
T periodos a planificar.
Mxima 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 produccin 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,
ms el valor de la materia prima restante despus del ltimo periodo
Restricciones:
Cantidad producida total en cada periodo no debe exceder el mximo permitido
Unidades de cada materia prima almacenada al comienzo del periodo 1 no puede
exceder el inventario inicial mximo
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 produccin en el periodo t
Debe cumplir cantidades mnimas de produccin requeridas por el cliente 38
8. Ejercicio Empresa de Manufactura
Archivo de modelo: manuf.mod
Parmetro
adicional
que me
obliga a
producir
una
cantidad
mnima de
cada
producto en
cada
periodo 39
8. Ejercicio Empresa de Manufactura
Archivo de modelo: manuf.mod
Restriccin
adicional de
produccin
mnima, puede
ser por
requerimiento
de los clientes
40
8. Ejercicio Empresa de Manufactura
Archivos de datos: manuf1.dat y manuf2.dat
42
8. Ejercicio Empresa de Manufactura
Archivos de instrucciones: manuf1.run
Ingresando cantidades mnimas de produccin interactivamente.
43
8. Ejercicio Empresa de Manufactura
Interfaz AMPL
Ingresando cantidades mnimas de produccin interactivamente.
44
Resultados con y sin restricciones de cantidad mnima de produccin difieren
8. Ejercicio Empresa de Manufactura
Archivos de Resultados: manuf1.txt
Problema:
Encontrar el crculo de
mayor rea inscrito dentro
de las curvas.
9. Modelo de Programacin No Lineal
P ) Max R 2
s .a 3x 0 + 4y 0 24
5x 0 2y 0 30
El radio se debe encontrar
y0 + 4 0
al interior del polgono
- 3x 0 + 5y 0 15
3x 0 + 4y 0 24
R
5
5x 0 - 2y 0 30
R
29 La distancia desde el centro
y0 + 4 R a cada una de las rectas no
puede ser mayor al radio
- 3x 0 + 5y 0 15
R
34
R 0, x 0, y0
9. Modelo de Programacin No Lineal
En este caso slo utilizaremos el .mod para correr el problema en AMPL
Definicin de variables
Definicin de
Restricciones Lineales
Restricciones No Lineales
9. Modelo de Programacin No Lineal
Opciones de resolucin
Tiempos de resolucin
Solucin:
rea = 44.1188
Radio = 3.7474
Xo = 1.86285
Yo = -0.25254
Links de inters
www.ampl.com
http://www-neos.mcs.anl.gov/
www.informatica.us.es/~calvo/ampl/amplavanzado.html
52