Está en la página 1de 41

EL PROBLEMA DE FLUJO MÁXIMO

EL PROBLEMA DE FLUJO A COSTO MÍNIMO

Investigación de Operaciones II
Ing. César Aldo Canelo Sotelo
REDES DE TRANSPORTE

DEFINICIÓN
Se denomina red de transporte al grafo finito,
sin anillos, donde se cumple que:
a) Cada arco u tiene asociado un número
c(u)>=0 llamado capacidad del arco.
b) Existe un solo vértice Xs tal que W⁻(Xs) = 0
este vértice se llama fuente o entrada de la
red.
c) Existe un solo vértice Xt tal que W⁺(Xt) = 0 ,
este vértice se llama destino o sumidero de
la red.
REDES DE TRANSPORTE

• FLUJO
Es una función entera Ø(u), definida sobre el
conjunto A de arcos. Esta función es un flujo
para una red de transporte si satisface:
0 <= Ø(u) <= c(u) , para todo u Є A.
La función Ø(u) puede considerarse como la
cantidad de materia que fluye por el arco u.
Como la cantidad de materia que entra es igual
a la que sale, entonces para todo nodo se
cumple:
Σ Ø(u) ingresa = Σ Ø(u) sale
REDES DE TRANSPORTE

• ARCO SATURADO
Se dice que un arco u Є A está saturado
si:
Ø(u) = c(u)

• FLUJO COMPLETO
Un flujo es completo si todo camino que
va de la fuente al destino contiene al
menos un arco saturado.
Ø(u)
c(u) 1 X1 0
3 1
c(u)- Ø(u) 2 1

Xs Xt

0 2

2 2 2 4

X2

RED DE TRANSPORTE
RED DE TRANSPORTE
• CORTE
Sea Y un subconjunto del conjunto X de
vértices, que contiene al destino Xt y no
contiene a la fuente Xs. El conjunto W⁻(Y)
(arcos incidentes hacia el interior de Y) se le
denomina corte de la red.
Un corte de una red, es un conjunto de
arcos cuya ausencia desconectaría
completamente a la red.
Ejemplo, si en la red se tiene Y = (X2, Xt),
entonces el corte correspondiente a Y está
dado por: W⁻(Y) = { (X1, Xt), (Xs, X2) }
x1

3 1

xs xt

2 4

x2

CORTE EN UNA RED DE TRANSPORTE


REDES DE TRANSPORTE

• CAPACIDAD DE CORTE
Se denomina así a la expresión:
C [W⁻(Y)] = Σ c(u) , u Є W⁻(Y)
Al definirse la capacidad de un corte se
toma en cuenta la dirección de los arcos
del corte.
Ejemplo, si Y = (X2, Xt) ,
C [W⁻(Y)] = 2 + 1 = 3
EL PROBLEMA DE FLUJO MÁXIMO
• Mucha situaciones se modelan mediante una
red en la que se podrían considerar que los
arcos tienen una capacidad que limita la
cantidad de un producto que se podría
enviar a través del arco. En estas
situaciones, a menudo se desea transportar
la cantidad máxima de flujo desde un punto
de partida (conocido como fuente) hacia un
punto terminal (llamado destino).
• Esta clase de problemas se llaman
problemas de flujo máximo.
EL PROBLEMA DE FLUJO MÁXIMO
El flujo que pasa a través de una red debe
satisfacer las siguientes restricciones:
a) El flujo entra a la red únicamente por el
nodo fuente. Matemáticamente se
representa por:
Σ Xij - Σ Xjk = - v , si j = s
Donde v >= 0 es el flujo total que entra a la
red y s es el nodo fuente. Por convención, el
flujo que sale de un nodo es negativo
(eflujo) y el flujo que entra a un nodo es
positivo (influjo).
EL PROBLEMA DE FLUJO MÁXIMO
b) Hay conservación de flujo en un nodo
intermedio, es decir el total del flujo que entra en
cierto nodo es igual al total del flujo que sale del
mismo. Matemáticamente se tiene:
Σ Xij - Σ Xjk = 0 , para toda j ≠ s ≠ t.
c) El flujo sale de la red únicamente por el nodo
destino. Matemáticamente se escribe como:
Σ Xij - Σ Xjk = v , si j = t.
d) El flujo en un arco debe conformar lo
requerimientos mínimos y las capacidades
máximas del arco, es decir:
0 <= lij <= xij <= uij para toda Aij.
EL PROBLEMA DE FLUJO MÁXIMO
Modelo de programación lineal:
Xij = cantidad de flujo que pasa del nodo i al
nodo j.
Max v = Σ Xsj
s. a. :
-v, si j = s
Σ Xij - Σ Xjk = 0, si j ≠ s ≠ t
v, si j = t

0 <= lij <= xij <= uij


TEOREMA DE MINIMO CORTE-MÁXIMO FLUJO

• Sea un flujo Ø(xn) y un corte W¯(Y0) se tendrá:

Ø(xn) <= C [ W¯(Y0)]

• Luego si existe un flujo Ø(xn) y un corte W¯(Y0)


tales que:

Ø(xn) = C [ W¯(Y0)]

Entonces el flujo Ø(xn) tiene un valor máximo y el


corte W¯(Y0) tiene una capacidad mínima. Esto da
origen al siguiente teorema:
TEOREMA DE MINIMO CORTE-MÁXIMO FLUJO

En una red de transporte dada, el valor máximo


de un flujo es igual a la capacidad mínima de un
corte, esto es:
Max Ø(xn) = Min C[ W¯(Y)]
Esto quiere decir, que si se logra
encontrar un flujo igual a la capacidad de
un corte, se estará seguro de que dicho
flujo es máximo.
El corte mínimo puede no ser único.
TEOREMA DE MÍNIMO CORTE-MÁXIMO FLUJO

1
3
1

s 1 t

2 2

Y = 1, 2, t

Min C W¯ (Y) = 1 + 2 = 3 Ømax = 3


ALGORITMO DE FORD Y FULKERSON
Es un algoritmo iterativo, consiste en el
aumento paulatino del flujo (Xo) hasta que
éste llegue a ser máximo.
La búsqueda del flujo máximo se realiza en
dos fases:
1ra Fase: Etiquetado
Se identifica un camino de Xs a Xt, y se
coloca una etiqueta a cada nodo del camino.
2da Fase: Asignación de flujo
Se asigna flujo al camino etiquetado.
NOMENCLATURA EMPLEADA
Xij >= 0 Flujo del nodo i al nodo j.
Xji >= 0 Flujo ficticio que va del nodo j al nodo i.
uij >= 0 Capacidad máximo de flujo del arco Aij (u Є Z).
s: Nodo fuente.
t: Nodo destino.
gij = (uij – xij) Capacidad no saturada del arco Aij,
(gij = 0 arco saturado).
[s⁺, ∞]: Etiqueta del nodo fuente.
[i⁺ , δj]: Etiqueta de un nodo vecino del nodo i.
i⁺: Nodo de donde proviene el flujo.
δj: Cantidad de flujo que aún puede pasar por
el arco Aij.
[k¯, δj]: Etiqueta para un nodo j vecino del nodo k, para
el cual es posible un flujo ficticio ( k  j).
δj = min(δj , Xkj)
PROBLEMA
Una empresa multinacional tiene un programa
anual de distribución de un determinado producto.
Estos productos se producen en dos fábricas. La
fábrica 1 con una capacidad máxima de
producción de 10 tons. al año y la fábrica 2 con
capacidad máxima de producción de 7 tons. al
año. Los excedentes de la fábrica 2 pueden
transferirse a la fábrica 1, para esto existe una
disponibilidad de transporte de un máximo de 8
tons. al año. Hay tres distribuidores mayoristas, la
siguiente matriz indica la capacidad máxima de
transporte anual desde las fábricas hacia los
distribuidores mayoristas.
PROBLEMA

Distribuidores 3 4 5
Fábricas
1 8 4 -
2 2 3 3

Los excedentes de 3 y 5 pueden transferirse a 4. La


capacidad máxima de transporte es de 3 tons. y 4 tons.
respectivamente. De los distribuidores mayoristas se
entregan los productos al mercado consumidor. Los
requerimientos de los distribuidores son de 4, 7 y 5
toneladas respectivamente.
Determine el flujo máximo anual que puede circular por el
sistema.
Red de transporte del problema

8 3
1 4
4
10 3

7
s 8 2 4 t

3
7 4
5
2
3
5
Teorema de Mínimo corte-Máximo flujo
Max Ø(xn) = Min C[ W¯(Y)]

8 3
1 4
4
10 3

7
s 8 2 4 t

3
7 4 5
2 16
17 3
5
20
14 ɸmax
Red de transporte del problema

8 3
1 4
4
10 3

7
s 8 2 4 t

3
7 4
5
2
3
5
Algoritmo de Ford y Fulkerson
[1+, 8 ]
4
[s+, 10] 4 8 3 0
4 1 4
4
10 3
4
6 [3+, 4]
7
s 8 2 4 t
[s+, ∞] 7 3
4 5
2
3
5

ɸ1 = 4 unids.
Algoritmo de Ford y Fulkerson
[1+, 8 ]
[s+, 6] 4
[s+, 10] 4 8 3 0
8 1
4 4
0 4 [3+, 4]
2 10 3
[1+, 4]
4 [4+, 4]
6
4 3 7 4
s 8 2 4 t
[s+, ∞] 7 3
4 5
2
3
5

ɸ2 = 4 unids.
Algoritmo de Ford y Fulkerson
[1+, 8 ]
[s+, 6] 4
[s+, 10] 4 8 3 0
8 1 [3+, 4]
4 4
0 4 [4+, 4]
2 10 3
[1+, 4]
4 [4+, 3]
6 0 7
4 3 7 4
s 8 2 4 t
4 3
[2+, 3]
[s+, ∞] 7 3
4 5
3 0
2
3
[s+, 7] 5

ɸ3 = 3 unids.
Algoritmo de Ford y Fulkerson
[1+, 8 ]
[s+, 6] 4
[s+, 10] 4 8 3 0
[3+, 4]
8 1
4 4 [4+, 4]
0 4
10 3 [4+, 3]
2 4
6 [1+, 4] [5+, 3]
0 7
4 3 4
s 1 8 2 4 7 t
4 3 3
[2+, 3]
[s+, ∞]
7 6 3
3 4 5
0
2 0 2
[s+, 7]
3 3
[s+, 4] 5
[2+, 3] ɸ4 = 3 unids.
ɸmax = ɸ1 + ɸ2 + ɸ3 + ɸ4 = 14 unids.

Distribuidores
Fábricas 3 4 5 Total
1 4 4 -- 8
2 0 3 3 6
Total 4 7 3 14
Problema

1 3

s 1 t

2
2

2
Problema
[s+, 1]
1ra. iteración 1
1

1 0 3

[2+, 1]
0
s 1
t
[s+, ∞] 1

2 2
1
1
2

[1+, 1] ɸ1 = 1 unid
Problema
[s+, 1]
2da. iteración
1
1

1 0 3
[2+, 1]
0
1 [2+, 1]
s t
1 2
1
[s+, ∞]
2 2
1
0
1 1
2

[1+, 1] [s+, 2] ɸ2 = 1 unid


Problema
[s+, 1] [2-, 1]
3ra. iteración
1
1 2

1 0 1 3
[2+, 1]
0 1
[2+, 1]
s 1
t [1+, 1]
0 2
[s+,∞] 1
1
2 2
1-1=0
0
2 1
1 2
[1+, 1] [s+, 2] [s+, 1]
ɸ3 = 1 unid
Solución
[s+, 1]
[2-, 1]
1
1 2

1 0 1 3
[2+, 1]
0 1
[2+, 1]
1
s t [1+, 1]
0 2
[s+, ∞] 1
1
2 2
1-1=0
0
2 1
1 2
[1+, 1] [s+, 1]
[s+, 2]

ɸmax = 1 + 1 + 1 = 3
EL PROBLEMA DE FLUJO MÁXIMO A
COSTO MÍNIMO

• Este problema es una combinación de dos


problemas: Flujo máximo y costo mínimo.
• Un problema de flujo máximo puede tener
soluciones óptimas alternativas, cuando
se incluye costos en la red, al menos una
solución tiene el costo mínimo.
EL PROBLEMA DE FLUJO MÁXIMO A COSTO MÍNIMO

El problema de flujo máximo a costo mínimo


puede representarse matemáticamente
como:
Min Z = ΣCijXij
s.a. : - v, si j=s
ΣXij - ΣXjk = 0, si j≠ s ≠ t
v, si j=t

0 <= lij <= Xij < uij


En esta formulación, las variables de
decisión son Xij y el flujo total v.
ALGORITMO DE BUSACKER Y GOWEN

1) Xij=0 para todos los arcos Aij y v=0.


2) Construir nuevos costos Ĉij en el arco Aij
basado en lo siguiente:
• Ĉij= Cij, si Xij=0, cuando no hay flujo en el
arco Aij.
• Ĉij=∞, si Xij=Uij, cuando el arco Aij está
saturado.
• Ĉji=-Cij, si Xij>0, arco en reversa para
posible reducción de flujo.
ALGORITMO DE BUSACKER Y GOWEN

3) Encuéntrese la ruta más económica del nodo s al


nodo t, basado en los costos Ĉij, utilizando
cualquier algoritmo disponible.
4) Envíese la mayor cantidad de flujo por la ruta
más económica, es decir una cantidad de flujo
con el cual uno o varios arcos que componen
esa ruta se saturen.
5) Añádase al flujo actual en toda la red, el flujo
adicional que se encuentre en el paso anterior. Si
todas las rutas que conducen al destino están
saturadas, la solución óptima ha sido
encontrada. De otra manera, regrese al paso 2.
PROBLEMA
En la red de la figura, los números en los arcos representan respectivamente
la capacidad mínima, la capacidad máxima y el costo unitario. Determine el
flujo máximo a costo mínimo.

(0,1,1) (0,1,2)

(0,1,1) (0,1,2) (0,1,1)


s 1 2 t

(0,2,2)
(0,2,2)
4
3
(0,1,2)
(0,1,1)

(0,1,1) (0,1,2) (0,1,1) t


s 1 2

(0,2,2) (0,2,2)

1ra. Iteración: Se elige el camino: s-1-2-t

Ĉij = Cij No hay flujo en todos los arcos ɸ1 = 1 unid


s-3-2-t: $4 Costo = $4
s-1-2-t: $4 Caminos de costo mínimo
s-1-4-t: $5
3
(0,1,2)
(0,1,1)

1 1 1
s 1 2 t
(0,1,1) (0,1,2) (0,1,1)

(0,2,2) (0,2,2)

2da. Iteración: Se elige el camino:


Ĉs1 = ∞ s-3-2-1-4-t
Ĉ12 = ∞
Ĉ2t = ∞ ɸ2 = 1 unid
Ĉ21 = -2 Costo = $5
Camino de costo mínimo:
s-3-2-1-4-t: $5
1 3
(0,1,2)
(0,1,1)
1
1 1-1=0 1
s 1 2 t
(0,1,1) (0,1,2) (0,1,1)

(0,2,2) (0,2,2)
1
1
4

ɸmax = ɸ1+ ɸ2 = 2 unids

Costo mínimo = $9
GRACIAS

También podría gustarte