INFO279 Apunte04
INFO279 Apunte04
INFO279 Apunte04
Apunte 04:
Redes de optimización
•Conceptos fundamentales.
• Camino Ni a Nk: es una serie de nodos y arcos que une nodo i con el
nodo k.
• Ciclo: es una cadena que empieza y termina en el mismo nodo.
• Camino simple: es aquel camino que no contiene ciclos.
Redes de Optimización
2
2 1 2
N1-N2-N3-N1 ciclo
N1-N2-N3 y N4 camino simple
Red inconexa N1-N2-N3 y N, no árbol
N1-N3 y N4 camino simple
Camino simple
Red conexa
Red conexa
Redes de Optimización
• cij: costo por unidad de flujo que pasa de i a j
• Xij: de flujo que va de i a j.
• uij: capacidad máxima arco ij
• lij: capacidad mínima arco ij
En cualquier red distinguiremos el Nodo inicial u origen (No) y el Nodo final o
destino (Nf). Solamente ingresa flujo a la red por el nodo origen y sale el flujo
de la red por el nodo final. Además se deben cumplir las restricciones de
capacidad de los arcos.
x
k
jk v j=o flujo entra No
x x
i
ij
k
jk 0 j o y j f conserva flujo
x
k
kj v j=f flujo sale por Nf
x k
jk v j=o
x x
i
ij
k
jk 0 jo y jf
x k
kj v j=f
Corte = 12 Corte = 11
5
2 4 5
3
2
1 4 6
5 2 3
3 2 5
Corte = 9
Corte = 7
5
2 4 5
3
2
1 4 6
5 2 3
3 2 5
1. Problema de Flujo Máximo – Algoritmo de Etiquetas
Fase 1: Un nodo puede estar en uno de los siguientes estados mutuamente
excluyente:
• Con etiqueta y registrado (él y sus vecinos etiquetados)
• Con etiqueta sin registro (él y no todos sus vecinos etiquetados)
• Sin etiqueta (cuando no tiene etiqueta)
Al inicio todos los nodos están sin etiquetas.
Se comienza etiquetando el No con [0; ], y a todos sus vecinos Nj con [o; j],
donde j es la capacidad del arco Aoj.
A todos los nodos vecinos Nk de Nj que no tengan etiqueta, se les asigna la
etiqueta [j, k], donde k es el mínimo entre donde j y la capacidad del arco
Ajk.
A todos los nodos vecinos Nk de Nj que no tengan etiqueta y para los cuales sea
posible devolver flujo, se les asigna la etiqueta [j-, k], donde k es el mínimo
entre j y Xjk.
Como todos los nodos vecinos Nk de Nj han sido investigados, Nj pasa a ser
etiquetado y registrado. Se repite este proceso hasta llegar a Nf.
1. Problema de Flujo Máximo – Algoritmo de Etiquetas
Fase 1: Un nodo puede estar en uno de los siguientes estados mutuamente
excluyente:
• Con etiqueta y registrado (él y sus vecinos etiquetados)
• Con etiqueta sin registro (él y no todos sus vecinos etiquetados)
• Sin etiqueta (cuando no tiene etiqueta)
Al inicio todos los nodos están sin etiquetas.
Se comienza etiquetando el No con [0; ], y a todos sus vecinos Nj con [o; j],
donde j es la capacidad del arco Aoj.
A todos los nodos vecinos Nk de Nj que no tengan etiqueta, se les asigna la
etiqueta [j, k], donde k es el mínimo entre donde j y la capacidad del arco
Ajk.
A todos los nodos vecinos Nk de Nj que no tengan etiqueta y para los cuales sea
posible devolver flujo, se les asigna la etiqueta [j-, k], donde k es el mínimo
entre j y Xjk.
Como todos los nodos vecinos Nk de Nj han sido investigados, Nj pasa a ser
etiquetado y registrado. Se repite este proceso hasta llegar a Nf.
1. Problema de Flujo Máximo – Algoritmo de Etiquetas
Algoritmo etiquetas (continuación):
Si el nodo final de la red, no puede ser etiquetado, el flujo actual de la red no
cambia y por consiguiente es el flujo máximo.
En caso que el Nf tenga etiqueta, el flujo actual cambia de acuerdo a lo
siguiente:
Fase 2 (modificación del flujo):
Si el Nf tiene la etiqueta [k; f] , modifíquese el flujo de Njk por Xjk+ j y pase al
nodo Nj.
Si el Nk tiene la etiqueta [j-; k] , modifíquese el flujo de Nkj por Xkj- k y pase
al nodo Nj.
Continúe de esta manera hasta llegar al No y regrese a la Fase 1. En esta
iteración se han introducido f unidades de nuevo flujo.
Ejemplo: Determine flujo máximo
en la siguiente red: 2 5 4 5
3
2
1 4 6
5 2 3
2
3 5
1. Problema de Flujo Máximo – Algoritmo de Etiquetas
1a Iteración
Fase 1: etiquetado de nodos
[1;3] [3;4]
2 5 4
[1;] 5
3
2
1 4 6
5 2 3
2 [4;4]
3 5
[1;5] [3;2]
Fase 2: Ajuste del flujo
[1;3] [3;4]
2 5 4 5 1
[1;]
3
2 4 0
1 6
5 1 2 3
2 [4;4]
3 5
[1;5] [3;2]
4
[1;] 0 2 4 0 No se llega a Vf . Termina la ejecución del algoritmo.
0
1 0 6
1 2 1
0
3 5
[1;1]
2 4
2
2 4
1
4 3
3
1. Problema de Flujo Máximo – Algoritmo de Etiquetas
Formulación PL:
Max v=X12+X13=X24+X34
SA: X12+X13-v=0 (Nodo 1)
X12-X23-X24=0 (Nodo 2)
X13+X23-X34=0 (Nodo 3)
X24+X34-v=0 (Nodo 4)
2 4
X12 ≤ 2 2
X13 ≤ 4 2 4
1
X23 ≤ 2 4 3
X24 ≤ 4 3
X34 ≤ 3
Xij0
1. Problema de Flujo Máximo – Algoritmo de Etiquetas
Ejercicio: Determine en la siguiente red:
4
• Flujo máximo 18 68
35 2 35
48
• Corte mínimo 22 7 46
1 37
47 32 5 8
• Formulación PL
3 20 34
41
6
2. Problema de Costo Mínimo
Min Z cij xij
i j
sujeto a:
1 jo
i ij k jk 0
x x jo y j f
1 j f
xij 0 ;1
Este problema tiene tantas restricciones como nodos y arcos tenga la red. De sus
variables, sólo algunas son 1, lo que hace que solución PL-entera no sea eficiente por
lo que utilizaremos el algoritmo de Dijkstra:
Se considera que los arcos de una red pueden pertenecer a sólo uno de los siguientes
conjuntos mutuamente excluyentes:
•El arco pertenece a un árbol
•El arco no pertenece a un árbol.
Formulación PL:
Min Z= 3X12+5X13+2X23+5X24+4X34+2X35+ 2X45+ 5X46+3X56
SA: X12+X13=1 (Nodo 1)
X12-X23-X24=0 (Nodo 2)
2 5 4 5
X13+X23-X34-X35=0 (Nodo 3) 3
2
1 4 6
X24+X34-X45-X46=0 (Nodo 4) 5 2 3
2
X35-X54-X56=0 (Nodo 5) 3 5
X46+X56=1 (Nodo 6)
Xij=0;1
2. Problema de Costo Mínimo – Algoritmo de Dijkstra
Ejercicio: Determine en la siguiente red:
4 68
• Ruta de costo mínimo 18
35 2 48 35 7 46
• Formulación PL 22
1 47 37 8
32 5
3 34
20
41
6
3. Problema de Flujo Máximo a Costo Mínimo
Min Z cij xij
i j
sujeto a: v jo
i ij k jk 0
x x jo y j f
v j f
0 lij xkj uij i, j
xij 0 ;1
En este caso se aplica el algoritmo de Busacker Gowen:
• Paso 1: Sea v=0 y Xij=0, Aij.
• Paso 2: Construya un nuevo costo Cij para el arco Aij basado en:
Cij=cij si 0 ≤ Xij ≤ uij (costo no cambia)
Cij= si Xij = uij (arco se satura)
Cij=-cij si Xij >0 (arco en reversa)
• Paso 3: Encuentre la ruta mas económica entre No y Nf, basado en los costos Cij .
Envíe por esa ruta la mayor cantidad de flujo permisible. Añada al flujo actual de la red este nuevo
flujo. Si todas las rutas que conducen a Nf están saturadas, la solución óptima se ha encontrado. De
otra forma volver al Paso 2.
3. Problema de Flujo Máximo a Costo Mínimo
(5,10)
2 4 (5,7)
Ejemplo: Determine el flujo máximo a (3,8)
costo mínimo de la siguiente red: (2,5) (4,8)
1 (2,8) 6
(1er elemento es el costo, 2° es el flujo):
(5,5) (2,5) (3,5)
3 5
•N1, N2,N3 árbol , sus vecinos son: N4. L´14 =Min{8,9}=8 ⇒ L1r= 8 , r=4
y N5=[8,2] hay 3 arcos en el árbol
•N1, N2,N3,N4 árbol , sus vecinos son: N6. L´16 =Min{,13}=13 ⇒ L1r= 13, r=6
y N6=[13,4], hay 4 arcos en el árbol.
3. Problema de Flujo Máximo a Costo Mínimo
La ruta de costo mínimo es: A12-A24-A46 y
(5,10) el costo mínimo es 13.
(3,8) 2 4 (5,7)
Como no hay camino hasta Nf, llegamos al óptimo, V*=12 a un costo de 141.
3. Problema de Flujo Máximo a Costo Mínimo
Formulación PL:
Min Z= 3X12 + 5X13 + 2X23 + 5X24 + 4X34 + 2X35 + 2X45 + 5X46 + 3X56
SA: X12+X13=v (Nodo 1)
X12-X23-X24=0 (Nodo 2)
(5,10)
(3,8) 2 4 (5,7)
X13+X23-X34-X35=0 (Nodo 3)
(2,5) (4,8)
X24+X34-X45-X46=0 (Nodo 4) 1 (2,8) 6
(5,5) (2,5) (3,5)
X35-X54-X56=0 (Nodo 5) 3 5
X46+X56=v (Nodo 6)
X12 ≤ 8; X46 ≤ 7
X13 ≤ 5 ; X56 ≤ 8
X23 ≤ 5 ; X54 ≤ 5
X24 ≤ 10; X34 ≤ 8
X35 ≤ 5
v = 10 (valor mayor o igual a la máxima capacidad de las aristas)
3. Problema de Flujo Máximo a Costo Mínimo
Ejercicio: Determine en la siguiente red el flujo máximo a costo mínimo (el primer elemento
de cada arco es el flujo y el segundo es el costo).
(3,1) 2 (3,1)
6 (10,1)
1 (2,1) 8
(2,1)
(7,2)
3 (5,3)
(2,2) 7
(5,4) 5 (8,2)
(5,2)
4
3. Problema de Transporte como Red de Optimización
Dado el siguiente problema transporte:
(a2,0) (b2,0)
o 2 2 f
(an,0)
(an, cn1)
(bm,0)
n (an, cnm) m
3. Problema de Transporte como Red de Optimización
Ejemplo: formule el siguiente problema de
transporte como red, la capacidad de
transporte es de 50 unidades.
(20,8)
1 1
(20,5)
(20,0) (40,0)
(50,0) 2 2 (50,0)
o (70,0) f
(40,0)
3 3 (80,0)
(70,0)
4 (70,2) 4