Clase Introductoria AMPL
Javier Ramos - Jorge Weston
Departamento de Industrias, Universidad T
ecnica Federico Santa Mara, Chile
2 de junio de 2015
Javier Ramos - Jorge Weston
Gesti
on de Operaciones I
Introducci
on
Estructura General
APLICACIONES
AMPL
AMPL: A Modeling Language For Mathematical Programming
AMPL es un lenguaje de modelado algebraico especializado en la formulaci
on de modelos de optimizaci
on y programaci
on matem
atica. Permite
formular modelos con notaci
on com
un y conceptos matem
aticos familiares.
Es posible aplicarlo problemas de optimizaci
on lineal y no lineal, en
variables continuas o Discretas (enteras). La resoluci
on de estos problemas es mediante solvers especializados para cada caso, estos traducen
la informaci
on del modelo matem
atico y los datos del problema a lenguaje m
aquina, que es el que utilizan los computadores para obtener la
soluci
on.
Los modelos en AMPL envuelven variables, restricciones y una funci
on
objetivo, expresados con la ayuda de conjuntos y par
ametros. A todo lo
anterior se les llama elementos del modelo.
Introducci
on
Estructura General
APLICACIONES
AMPL
SOLVERS con los que trabaja AMPL
Algunos de los SOLVERS ocupados por AMPL, y su aplicaci
on, se
muestran a continuaci
on:
GUROBI : problemas de programaci
on lineal, y programaci
on lineal
entera mixta.
MINOS : problemas de programaci
on lineal y no lineal.
CPLEX : problemas de programaci
on lineal, y programaci
on lineal entera mixta.
IPOPT : problemas de programaci
on no lineal
DONLP2 : problemas de programaci
on no lineal
En este curso, los SOLVERS que se utilizar
an principalmente son CPLEX y
MINOS
Introducci
on
Estructura General
APLICACIONES
TIPOS DE ARCHIVO
Tipos de archivo
Tanto el modelo como los datos del problema, son escritos en un procesador
de texto (bloc de notas), pero guardados con las siguientes extensiones:
.mod : donde se aloja el modelo.
.dat : donde se escribe la data.
.run : se escriben las distintas instrucciones y condiciones bajo las
cuales se ejecutar
a el modelo.
Introducci
on
Estructura General
APLICACIONES
TIPOS DE ARCHIVO
Archivo .mod
El orden de los elementos dentro del c
odigo del archivo .mod, debe presentar
la siguiente estructura:
Conjuntos
Par
ametros
Variables
Funci
on objetivo
Restricciones
Introducci
on
Estructura General
APLICACIONES
TIPOS DE ARCHIVO
Archivo .mod
Declaraci
on de conjuntos
set NOMBRE CJTO;
Declaraci
on de Par
ametros
set NOMBRE PARAM {conjunto al que esta indexado} := VALOR;
Alternativamente el valor del par
ametro puede escribirse en el archivo
.dat
Introducci
on
Estructura General
APLICACIONES
TIPOS DE ARCHIVO
Archivo .mod
Declaraci
on de Variables
var NOMBRE {cjto} atributos;
Dentro de los atributos (los cuales deben ir separados por comas) se
encuentran:
binary
integer
>= expr
<= expr
:= expr
Introducci
on
Estructura General
TIPOS DE ARCHIVO
Archivo .mod
Declaraci
on de Funci
on Objetivo
maximize NOMBRE F.O : expresion;
minimize NOMBRE F.O : expresion;
Declaraci
on de restricciones
subject to NOMBRE RESTR. {cjto}: expresion;
APLICACIONES
Introducci
on
Estructura General
APLICACIONES
TIPOS DE ARCHIVO
Archivo .dat
En este archivo se definen los distintos datos en la resoluci
on del modelo,
tales como elementos de conjuntos, y valores de par
ametros.
Dentro de estos u
ltimos, destacan aquellos par
ametros que cambian de
acuerdo a subndices, los cuales se presentan con tablas como sigue:
param NOMBRE :
1
2
3
a11
a21
a31
a12
a22
a32
a13
a23
a33
a14
a24
a34 ;
Cuadro: formato ingreso datos
:=
Introducci
on
Estructura General
APLICACIONES
TIPOS DE ARCHIVO
Archivo .run
En este archivo se definen las instrucciones bajo las cuales se ejecutar
a el
modelo, la estructura es la siguiente:
model NOMBREMODELO.mod; (se carga archivo del modelo)
data NOMBREDATA.dat; (se carga archivo con datos)
option solver SOLVER; (se selecciona el SOLVER usar seg
un tipo de
problema)
solve; (se ordena la resoluci
on del problema)
display VARIABLES; (se muestran valores optimos de las variables a
elecci
on)
Introducci
on
Estructura General
APLICACIONES
Ejemplos
Problema de transporte y localizacion
El problema consiste en determinar las unidades a transportar entre un conjunto de posibles bodegas a un conjunto de clientes. Adem
as, se debe determinar la cantidad de estas instalaciones, y el lugar donde se instalar
an.
Todo lo anterior sujeto a restricciones de capacidad de cada bodega y a la
satisfacci
on de demanda para cada cliente, con el fin de lograr el mnimo
costo.
Figura: Grafo con clientes y bodegas
Introducci
on
Estructura General
Ejemplos
Problema de transporte y localizacion
Conjuntos
I: conjunto de orgenes (bodegas)
J: conjunto de destinos (destinos)
Par
ametros
Capi : capacidad de la bodega i
dj : demanda cliente j
CCi : costo de construir bodega i
CTij : costo unitario de transporte desde bodega i a cliente j
Variables
Yi : 1 si se construye bodega i, 0 si no
Xij : unidades transportadas desde bodega i a cliente j
APLICACIONES
Introducci
on
Estructura General
APLICACIONES
Ejemplos
Problema de transporte y localizacion: El modelo
M in
CTij Xij
Xij Capi Yi
i I
s.a
X
j
X
i
CCi Yi +
i,j
Xij = dj j J
Xij 0, Yi [0, 1]
ver modelo
ver .run
Introducci
on
Estructura General
APLICACIONES
Ejemplos
Problema de transporte y localizacion: Aplicacion
Para el problema anterior, se tienen los siguientes datos:
i/j
1
2
3
4
5
6
7
8
9
10
dj
1
73.78
60.28
58.18
50.37
42.73
44.62
49.31
50.79
51.93
65.90
12000
2
14.76
20.92
21.64
21.74
35.19
39.21
51.72
59.25
72.13
13.07
12000
CTij
3
4
86.82
91.19
76.43
83.99
69.84
72.39
61.49
65.72
44.11
58.08
44.44
48.32
36.27
42.96
22.53
33.22
21.66
29.39
79.59
86.07
14000 13500
5
51.03
58.84
61.64
60.48
65.76
76.12
84.52
94.30
93.52
46.83
25000
Cuadro: Datos problema
Considere CCi = 500000 i I
ver datos
6
76.49
68.86
58.39
56.68
55.51
51.17
49.61
49.66
49.63
69.55
29000
Capi
23070
18290
20010
15080
17540
21090
16650
18420
19160
18860
Clase Introductoria AMPL
Javier Ramos - Jorge Weston
Departamento de Industrias, Universidad T
ecnica Federico Santa Mara, Chile
2 de junio de 2015
Javier Ramos - Jorge Weston
Gesti
on de Operaciones I