Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
AMPL:
Una herramienta para la resolución
de problemas de optimización
—————————————————————
Gestión de Operaciones II - ICN344
1/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
Contenidos
1 Instalación software AMPLIDE
2 Introducción a AMPL
AMPL: A Modeling Language For Mathematical Programming
SOLVERS con los que trabaja AMPL
Expresiones básicas
3 Estructura General
Tipos de archivo
Archivo .mod
Archivo .dat
Archivo .run
4 Extensiones
Instrucciones complementarias
5 Aplicaciones
Ejemplo: A linear program for the diet problem
Ejemplo: Modelo en AMPL
Más información
2/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
Paso 1: Descarga
Ingresar a la plataforma AULA.
Ingresar a la página del curso.
Descargar la licencia según su sistema operativo en la sección AMPL.
Paso 2: Descomprimir
Mueve el archivo descargado al escritorio y
descomprı́melo en una carpeta con el mismo
nombre.
Paso 3: Ejecución
Finalmente ingresa a la carpeta amplide y
Figura: Descarga de Licencias ejecuta el archivo amplide.exe.
3/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
4/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
5/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
6/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
Importante
Si se ejecuta con normalidad el archivo amplide.exe, ha concluido exitosamente
la instalación. Si no, favor seguir leyendo el documento.
7/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General
Extensiones
Aplicaciones
Paso 5: Reemplazar
Mueva el archivo amplide.win64.zip a la carpeta ampl win64 en donde se
encuentran las licencias de AMPL que usted descargó anteriormente, y des-
comprima su contenido en ésta, reemplazando todos los archivos (Los nom-
bres de los archivos dependerán del sistema operativo descargado).
Vuelva al paso 3 y ejecute el archivo .exe que se encuentra en la carpeta
amplide.
8/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL AMPL: A Modeling Language For Mathematical Programming
Estructura General SOLVERS con los que trabaja AMPL
Extensiones Expresiones básicas
Aplicaciones
9/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL AMPL: A Modeling Language For Mathematical Programming
Estructura General SOLVERS con los que trabaja AMPL
Extensiones Expresiones básicas
Aplicaciones
Nota:
La versión estudiantil soporta hasta 300 variables y 300 restricciones.
10/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL AMPL: A Modeling Language For Mathematical Programming
Estructura General SOLVERS con los que trabaja AMPL
Extensiones Expresiones básicas
Aplicaciones
Expresiones básicas
Expresión Detalle
m <= n Indica que m es menor o igual a n.
m<n Indica que m es menor estricto a n.
m >= n Indica que m es mayor o igual a n.
m>n Indica que m es mayor estricto a n.
m == n Indica que m es igual a n.
m <> n Indica que m es distinto de n.
p := n Asigna un valor n fijo al parámetro p.
default n Asigna un valor n que puede ser modificado.
∧ Potencia.
Cuadro: Expresiones básicas
11/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
Tipos de archivo
Tanto el modelo como los datos del problema, se pueden escribir en un procesador
de texto (bloc de notas) o bien directamente en la consola AMPLIDE, la cual
se puede descargar desde https://ampl.com/products/ide/. Los archivos deben
ser 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.
12/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
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
Declaración de conjuntos:
set NOMBRE_CJTO := VALOR ;
Ejemplos:
set I :={1 ,2 ,3 ,4 ,5 ,6};
set J :=1..6;
set K :={ a ,b ,c ,d ,e ,f , g };
13/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
Archivo .mod
Declaración de parámetros:
param NOMBRE_PARAM { CONJUNTO } := VALOR ;
Declaración de variables:
var N OM BRE_VARIABLE { CONJUNTO } , ATRIBUTOS ;
Archivo .mod
Ejemplo: X
Max Yi,j
i∈I ,j∈J
Se escribe como:
maximize FO :
sum { i in I , j in J } Y [i , j ];
15/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
Archivo .mod
Ejemplo: X
s.t. Yi,j = 1 ∀j ∈ J
i∈I
Se escribe como:
subject to R1 { j in J }:
sum { i in I } Y [i , j ] = 1;
16/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
Archivo .dat
En este archivo se definen los distintos datos en la resolución del modelo, tales
como elementos de conjuntos y valores de parámetros.
Una dimensión
Dimensión 0 (escalar) Archivo .mod:
Archivo .mod: param NOMBRE { I };
param NOMBRE ;
Archivo .dat:
Archivo .dat: param NOMBRE :=
1 a1
param NOMBRE := a ; 2 a2
3 a3 ;
17/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
Archivo .dat
Dos dimensiones
Tres dimensiones
Archivo .mod:
Archivo .mod:
param NOMBRE {I , J };
param NOMBRE {I ,J , K };
Archivo .dat:
Archivo .dat:
param NOMBRE :
1 2 3 4 := param NOMBRE :
1 a11 a12 a13 a14 [* ,* ,1]:
2 a21 a22 a23 a24 1 2 3 4 :=
3 a31 a32 a33 a34 ; 1 a111 a121 a131 a141
2 a211 a221 a231 a241
3 a311 a321 a331 a341 ;
[* ,* ,2]:
Para 3 o más dimensiones, es nece- 1 2 3 4 :=
sario dejar libre dos ı́ndices y fijar a142 1 a112 a122 a132
los demás, como el siguiente caso en a242 2 a212 a222 a232
a342 ; 3 a312 a322 a332
que se fija el tercer ı́ndice y quedan
libre los 2 primeros.
De esta forma cada combinación de valores que pueden tener los ı́ndices fijados
se trabaja como una matriz de 2 dimensiones.
18/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Tipos de archivo
Introducción a AMPL
Archivo .mod
Estructura General
Archivo .dat
Extensiones
Archivo .run
Aplicaciones
Archivo .run
19/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General Instrucciones complementarias
Extensiones
Aplicaciones
Instrucciones complementarias
20/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General Instrucciones complementarias
Extensiones
Aplicaciones
Intrucciones complementarias
Utilizando los comandos set y setof se puede definir conjuntos que cumplan
ciertas 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 ;
Manual de AMPL:
https://ampl.com/resources/the-ampl-book/chapter-downloads/
21/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General Instrucciones complementarias
Extensiones
Aplicaciones
Instrucciones complementarias
22/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General Instrucciones complementarias
Extensiones
Aplicaciones
Instrucciones complementarias
Ciclos
for { a in A , b in B }{
let P [a , b ] := a + b ;};
-------------------------
for { a in A }{
for { b in B } {
let P [a , b ] := a + b
;}}; Es posible programar ciclos en
------------------------- AMPL con los comandos for, repeat
for { a in A , b in B }{
print " La variable X es " , while y repeat until, habitualmente
X [a , b ] ;}; se utilizan en el archivo (.run).
-------------------------
param flag default 10 ;
repeat while flag == 1 {
let flag := flag 1 ;};
-------------------------
param cont default 1 ;
repeat until cont == 10 {
let cont := cont + 1;};
23/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL
Estructura General Instrucciones complementarias
Extensiones
Aplicaciones
Instrucciones complementarias
if-then-else
if sum { a in A , b in B } P [a , b ] >= 100
then { print " El p a r m e t r o es
mayor o igual a100 " ;};
------------------------- Se puede utilizar comandos
if cont ==1 then {
let cont2 := cont2 + 1 ;};
condicionales, como el if,
------------------------- then y else.
for { a in A , b in B }{
if X [a , b ] >= Y [a , b ] then {
let P [a , b ]:=5 ; {
else {
let P [a , b ]:=10 ;};
24/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL Ejemplo: A linear program for the diet problem
Estructura General Ejemplo: Modelo en AMPL
Extensiones Más información
Aplicaciones
25/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL Ejemplo: A linear program for the diet problem
Estructura General Ejemplo: Modelo en AMPL
Extensiones Más información
Aplicaciones
Función Objetivo: X
minimizar Ci Xi
i∈I
26/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL Ejemplo: A linear program for the diet problem
Estructura General Ejemplo: Modelo en AMPL
Extensiones Más información
Aplicaciones
Restricciones:
R1: X
Xi Vij ≥ 700 ∀j ∈ J
i∈I
R2:
Xi ≥ 0 ∀i ∈ I
27/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL Ejemplo: A linear program for the diet problem
Estructura General Ejemplo: Modelo en AMPL
Extensiones Más información
Aplicaciones
29/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL Ejemplo: A linear program for the diet problem
Estructura General Ejemplo: Modelo en AMPL
Extensiones Más información
Aplicaciones
Más información
30/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020
Instalación software AMPLIDE
Introducción a AMPL Ejemplo: A linear program for the diet problem
Estructura General Ejemplo: Modelo en AMPL
Extensiones Más información
Aplicaciones
AMPL:
Una herramienta para la resolución
de problemas de optimización
—————————————————————
Gestión de Operaciones II - ICN344
31/31
AMPL: Una herramienta para la resolución de problemas de optimización ICN344 - Segundo Semestre 2020