Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2019
Introducción Estructura General Extensiones Aplicaciones
Contenidos
1 Introducción
AMPL
2 Estructura General
Tipos de archivo
3 Extensiones
Instrucciones Complementarias
4 Aplicaciones
Ejemplo
Introducción Estructura General Extensiones Aplicaciones
AMPL
Contenidos
1 Introducción
AMPL
2 Estructura General
Tipos de archivo
3 Extensiones
Instrucciones Complementarias
4 Aplicaciones
Ejemplo
Introducción Estructura General Extensiones Aplicaciones
AMPL
AMPL
AMPL
Expresiones básicas
Tipos de archivo
Contenidos
1 Introducción
AMPL
2 Estructura General
Tipos de archivo
3 Extensiones
Instrucciones Complementarias
4 Aplicaciones
Ejemplo
Introducción Estructura General Extensiones Aplicaciones
Tipos de archivo
Tipos de archivo
Tipos de archivo
Archivo .mod
El orden de los elementos dentro del código del archivo .mod, debe
presentar la siguiente estructura:
Conjuntos
Parámetros
Variables
Función objetivo
Restricciones
Introducción Estructura General Extensiones Aplicaciones
Tipos de archivo
Archivo .mod
Declaración de conjuntos
Declaración de Parámetros
Tipos de archivo
Archivo .mod
Declaración de variables
binary Ejemplos:
integer var X{I}, >= 0;
>= expr var Y{I,J}, binary;
<= expr var Z{I,J,K}, integer, >= 1, <= 3;
Introducción Estructura General Extensiones Aplicaciones
Tipos de archivo
Archivo .mod
Tipos de archivo
Archivo .dat
Tipos de archivo
Archivo .dat
Tipos de archivo
Archivo.run
Instrucciones Complementarias
Contenidos
1 Introducción
AMPL
2 Estructura General
Tipos de archivo
3 Extensiones
Instrucciones Complementarias
4 Aplicaciones
Ejemplo
Introducción Estructura General Extensiones Aplicaciones
Instrucciones Complementarias
Instrucciones Complementarias
Utilizando los comandos set y setof se puede definir conjuntos que cumplan cier-
tas condiciones, subconjuntos y conjuntos indexados, entre otros.
Se da la opción de realizar operaciones de conjuntos, tales como intersección y
unión. Suele usarse en el archivo .mod.
set C:=union{a in A, b in B}{(a,b)};
set C:={A,B};
set C:=union{a in A, b in B : P[a,b]>=0}(a,b);
set C{a in A}:=setof{b in B : P[a,b]<>0}b;
Como se ve en el ejemplo, el uso de : nos permite imponer ciertas condiciones al
minuto de definir o utilizar conjuntos, y se debe leer como “tal que”.
subject to C1{a in A}: sum{b in B : P[a,b]¡=5} X[a,b]>=C[a] ;
subject to C2{(i,j) in T}: sum{a in A, b in B :M[a,b,i,j]==1} Y[i,j]<=X[i,j];
subject to C3{a in A : K[a]>=0}: X[a]=L[a] ;
Manual de AMPL :
https://ampl.com/resources/the-ampl-book/chapter-downloads/
Introducción Estructura General Extensiones Aplicaciones
Instrucciones Complementarias
display X;
display X,Y;
display total solve time;
print “La variable X[1,2] toma el valor: ”, X[1,2] ;
print “La demanda total es de %.2f unidades ”, sum{a in A} Dem[a] ;
printf “\n” ;
printf “Analisis \n” > “salida.csv” ;
printf “Vida util, %.2f \n”, VU >> “salida.csv” ;
Introducción Estructura General Extensiones Aplicaciones
Instrucciones Complementarias
Es posible programar ciclos en AMPL con los comandos for, repeat while y
repeat until, habitualmente se utilizan en el archivo (.run).
Se puede utilizar comandos condicionales, como el if, then y else
Ciclos if-then-else
Ejemplo
Contenidos
1 Introducción
AMPL
2 Estructura General
Tipos de archivo
3 Extensiones
Instrucciones Complementarias
4 Aplicaciones
Ejemplo
Introducción Estructura General Extensiones Aplicaciones
Ejemplo
Ejemplo
Datos:
Presión Máx Octanaje Dda Máx. Entregas Mı́n.
Gasolina
de vapor mı́nimo [barril/sem] [barril/sem]
Regular 23 88 100000 50000
Extra 23 93 20000 5000
Ejemplo
Conjuntos
I: Tipo de gasolina.
J: Tipo de petróleo refinado.
Parámetros
Pj : Presión de vapor de cada barril de petróleo tipo j
Pimax : Presión máxima de vapor para el tipo de gasolina i.
Oj : Octanaje de cada barril de petróleo tipo j.
Oimin : Octanaje mı́nimo de la gasolina tipo i.
dimax : Demanda máxima semanal del tipo de gasolina i.
dimin : Cantidad mı́n de entregas de barriles semanales del tipo i.
Invj : Inventario disponible de cada barril de petróleo tipo j.
Cj : Costo por barril de petróleo tipo j.
Vi : Valor de venta por gasolina tipo i.
Variables
Xij : Barriles de petróleo tipo j utilizados en la producción de
gasolina tipo i.
Introducción Estructura General Extensiones Aplicaciones
Ejemplo
X X
Max Xij ∗ Vi
X
i∈I j∈J
P
j∈J Xij ∗ Pj
s.t. P ≤ Pimax ∀i ∈ I
j∈J Xij
P
j∈J Xij ∗ Oj
P ≥ Oimin ∀i ∈ I
Xij
j∈J
X
dimin ≤ Xij ≤ dimax ∀i ∈ I
j∈J
X
Xij ≤ Invj ∀j ∈ J
i∈I
Xij ≥ 0 ∀i ∈ I, j ∈ J.
Introducción Estructura General Extensiones Aplicaciones
Más Información
Es posible encontrar una serie de ejemplos y material en la página
de ampl:
Página Principal:
https://ampl.com/
Ejemplos:
https://ampl.com/resources/the-ampl-book/example-files/
Manual:
https://ampl.com/resources/the-ampl-book/chapter-downloads/
2019