Professional Documents
Culture Documents
SOLUCIÓN Y
GENERADOR DE MODELOS (AMPL)
RESULTADOS
SOLVER MODELO
(CPLEX) ESPECÍFICO
(Archivo MPS)
AMPL A Modeling Language for
Mathematical Programming
AMPL is a comprehensive and powerful algebraic
modeling language for linear and nonlinear
optimization problems, in discrete or continuous
variables.
Using the NEOS Server for MINTO
• ARCHIVO MODELO: Contiene la definición de conjuntos, parámetros
variables, la función objetivo y el conjunto de restricciones
• ARCHIVO DATOS: Contiene los elementos de los conjuntos y la
información tabulada de los parámetros
• ARCHIVO COMANDOS: Son las instrucciones que se dan al sistema
acerca de cómo se desea que salgan los resultados y cuáles de éstos
se quieren tener en la salida.
Problema Red de Abastecimiento
Variables de Decisión
Sujeto A :
n
∑x ij = D j ∀ j = 1, 2, ...., m
i =1
m
∑x ij ≤ K i yi ∀ i = 1, 2, ...., n
j =1
xij ≥ 0
yi ∈ [0,1] ∀ i = 1, 2, ...., n
Modelo AMPL
Conjuntos
set INSTALACIONES;
# Conjunto de instalaciones candidatas
set MERCADOS;
# Conjunto de mercados
Parámetros
param demanda{j in MERCADOS} >=0;
# Demanda Dj anual del mercado j
param cap{i in INSTALACIONES} >=0;
# Capacidad Ki de la instalacion i
param c_fijo{i in INSTALACIONES} >=0;
# Costo fi de apertura de la instalacion i
param c_tran{i in INSTALACIONES, j in MERCADOS} >=0;
# Costo de transportar una unidad desde la instalacion i hacia el mercado j
Variables
var x{i in INSTALACIONES, j in MERCADOS} >= 0;
var y{i in INSTALACIONES} binary;
Función Objetivo
minimize costo_total:
sum{i in INSTALACIONES} (c_fijo[i]*y[i]) +
sum{i in INSTALACIONES, j in MERCADOS} (c_tran[i,j]*x[i,j]);
Restricciones
subject to cump_dem{j in MERCADOS}:
sum{i in INSTALACIONES} (x[i,j]) = demanda[j];
DESTINO B/QUILL
ORIGEN CALI MEDELLIN BOGOTA PASTO
A
CALI 0 75908 83184 133706 69707
IBAGUE 57067 73630 45991 114487 109520
NEIVA 69604 84105 63116 135524 110175
Fuente. DECRETO 2663 / 21 JULIO 2008 CON BASE EN LA RESOLUCIÓN 3175 DE 2008
MODELO MATEMATICO
Función Objetivo :
Min Costo Total : ∑∑ Xij Cij + ∑ ∑ Yjk Cjk
i∈I j∈J j = k k∈K
S . A.
∑ Yjk = Dem k ∀ k ∈K
j∈J
∑ Xij ≤ Cap i
j∈J
∀ i∈ I
∑ Xij = ∑ Yjk ∀ j∈ J
i∈I k∈K
ARCHIVO MODELO
# CONJUNTOS
set I; # Conjunto de plantas ubicados en la zona de consumo i
set J; # Conjunto de zonas de trasbordo ubicados en la zona de consumo j
set K; # Conjunto de clientes ubicados en la zona de consumo k
# PARAMETROS
param Cap_plantai{i in I} >= 0; # Capacidad de la planta ubicada en la localidad
i (Toneladas de producto/ año)
param Dem_clientesk{k in K} >= 0; # Demanda de producto de los clientes
ubicados en la zona de consumo k (Toneladas de producto/año)
param Cost_tteij{i in I, j in J}; # Costo de transporte de producto de la planta i
al sitio de transbordo j ($/Ton)
param Cost_ttejk{j in J, k in K}; # Costo de transporte de producto del sitio de
transbordo j a la zona de consumo k ($/Ton)
# VARIABLES DE DECISIÓN
var x{i in I, j in J}>= 0;
# Toneladas de producto a enviar de i a j por año (Ton/año)
var y{j in J, k in K}>= 0;
# Toneladas de producto a enviar de j a k por año (Ton/año)
# FUNCION OBJETIVO
minimize costo_total:
# ($/año)
sum{i in I, j in J} (x[i,j]*Cost_tteij[i,j])
# Costo anual de enviar producto de i a j
+ sum{j in J, k in K} (y[j,k]*Cost_ttejk[j,k];
# Costo anual de enviar producto de j a k
# RESTRICCIONES
# Por capacidad de la planta i (Ton/año):
subject to Cap_pdni{i in I}:
sum {j in J} (x[i,j]) <= Cap_plantai[i];
Variables de decisión
Función objetivo
Costo anual de transporte desde las minas de bauxita hacia las plantas de
alúmina ($/año):
Función Objetivo Problema Bauxita
Costo anual de transporte desde las plantas de alúmina hacia las plantas de
esmaltado ($/año):
4) Por ventas anuales de aluminio terminado en cada planta de esmaltado (Ton de aluminio
terminado/año):
PARÁMETROS
Código AMPL
∑∑cexp(i)× x
i j
ij sum{i in MINAS, j in PLALU} (cexp[i]*x[i,j])
∑∑cpal(j)× y
j k
jk + sum{j in PLALU, k in PLESM} (cpal[j]*y[j,k])
∑∑cpes(k)× y
j k
jk
+ sum{j in PLALU, k in PLESM} (cpes[k]*y[j,k])
∑∑ctran_b(i,j) × x
i j
ij
+ sum{i in MINAS, j in PLALU} (ctran_b[i,j]*x[i,j])
∑∑ctran_al(j,k)× y
j k
jk
+ sum{j in PLALU, k in PLESM} (ctran_al[j,k]*y[j,k])
∑cfijo(j)× w(j)
j
+ sum{j in PLALU} (cfijo[j]*w[j]);
Restricciones
Código AMPL
subject to cap_exp{i in MINAS}:
sum{j in PLALU} (x[i,j]) <= capbaux[i];
MAT_PRIMA1 0.30
MAT_PRIMA1 0.25
MAT_PRIMA2 0.00
MAT_PRIMA3 0.20 MAT_PRIMA2 0.05
MAT_PRIMA4 0.05 MAT_PRIMA3 0.15
MAT_PRIMA5 0.40 MAT_PRIMA4 0.03
MAT_PRIMA6 0.10 MAT_PRIMA5 0.40
MAT_PRIMA6 0.20
[MAQ1, PROD_INTERM2, *]
[MAQ2, PROD_INTERM2, *]
MAT_PRIMA1 0.50
MAT_PRIMA2 0.30
MAT_PRIMA3 0.20 MAT_PRIMA1 0.45
MAT_PRIMA4 0.00 MAT_PRIMA2 0.30
MAT_PRIMA5 0.05 MAT_PRIMA3 0.25
MAT_PRIMA6 0.05 MAT_PRIMA4 0.05
MAT_PRIMA5 0.00
MAT_PRIMA6 0.07;
Datos de parámetros de tres y más
dimensiones (3)
param
pmformula:=
;
Datos de parámetros de tres y más
dimensiones (4)
param pmformula:=