Anda di halaman 1dari 19

P.

Reyes
Introduccin
El equipo de ftbol de una ciudad A va a celebrar una competicin
en otra ciudad B y por lo tanto muchos de sus seguidores en otra ciudad B y por lo tanto muchos de sus seguidores
necesitan viajar hasta dicha ciudad. Existen diferentes rutas entre
las ciudades A y B y es conocido el nmero de asientos
disponibles en cada vuelo Cul ser el mximo nmero de
i
s
c
r
e
t
a
disponibles en cada vuelo. Cul ser el mximo nmero de
hinchas que podrn realizar el viaje y cules sern las rutas?.
m

t
i
c
a

D
30
36
65
M
a
t
e
m
B
54
42
11
65
54
41
A
47
35
33
P.Reyes
Tema 7: Flujos en redes
Introduccin Introduccin.
i
s
c
r
e
t
a
Teorema de mximo flujo-mnimo corte
m

t
i
c
a

D
Algoritmo de mximo flujo mnimo corte
M
a
t
e
m
Algoritmo de mximo flujo-mnimo corte
P.Reyes
Introduccin
Matemtica
Discreta
Red: N = (D s t c())
D = (V,A) grafo dirigido
dos vrtices
s fuente (source)
Red: N = (D,s,t,c())
dos vrtices
destacados
( )
t sumidero (sink)
c : A N {} funcin capacidad
e
d
e
s
Entornos de salida y de entrada de un vrtice:
o
s

e
n

r
e
u v
N
+
(u)={veV | (u,v)eA} N
-
(u)={veV | (v,u)eA}
N
+
(y)={w,t}
F
l
u
j
3
1
2
3
u v
(y) { , }
N
-
(y)={x}
4
3
3
2
1
s
t
x
y
Tema 7: 3
3
2
5
w
P.Reyes
Introduccin
Matemtica
Discreta
Flujo en una red N = (D,s,t,c()) f : A N {}
Restriccin de capacidad 0 f(a) c(a) aeA Restriccin de capacidad 0 f(a) c(a), aeA
Para cada vrtice, excepto la fuente y el
sumidero, debe ser igual el flujo de salida
e
d
e
s
Ec. conservacin que el de entrada.
t s u V u u w f v u f
u N w u N v
, , , ) , ( ) , (
) ( ) (
= e =

+
e e
o
s

e
n

r
e
u v
u N w u N v ) ( ) ( e e
F
l
u
j
3
1
2
3
u v
1
1
1
2
4
3
3
2
1
s
t
x
y
4 3
2
1
Tema 7: 4
3
2
5
w
1 1
P.Reyes
Introduccin
Matemtica
Discreta
Flujo en una red N = (D,s,t,c()) f : A N {}
Restriccin de capacidad 0 f(a) c(a) aeA Restriccin de capacidad 0 f(a) c(a), aeA
Para cada vrtice, excepto la fuente y el
sumidero, debe ser igual el flujo de salida
e
d
e
s
Ec. conservacin que el de entrada.
t s u V u u w f v u f
u N w u N v
, , , ) , ( ) , (
) ( ) (
= e =

+
e e
o
s

e
n

r
e
u v
Valor del flujo en la red N , f(N), la diferencia entre el flujo de
salida y el de entrada del vrtice fuente.
u N w u N v ) ( ) ( e e
F
l
u
j
3
1
2
3
u v
1
1
1
2
f(N)=4
4
3
3
2
1
s
t
x
y
4 3
2
1
Tema 7: 5
3
2
5
w
1 1
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Flujo en una red N = (D,s,t,c()) f : A N {}
X Y V (X Y) { ( ) A | X Y } X,Y _ V, (X ,Y) = { (x,y)eA | xeX , yeY }

e e
= =
) , ( ) , ( ) , ( ) , (
) , ( ) , ( ) , ( ) , (
Y X y x Y X y x
y x c Y X c y x f Y X f
e
d
e
s
X = {u,x,w},Y ={v,y,w} (X ,Y) = { (u,v), (x,v), (x,y) }
6 ) , ( 5 ) , ( = = Y X c Y X f
o
s

e
n

r
e
u v
6 ) , ( 5 ) , ( c f
F
l
u
j
3
1
2
3
u v
1
1
1
2
4
3
3
2
1
s
t
x
y
4 3
2
1
Tema 7: 6
3
2
5
w
1 1
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Flujo en una red N = (D,s,t,c()) f : A N {}
Corte: ( P, P ) se P, te P, P es el complementario de P
c( P, P ) capacidad del corte
e
d
e
s
( P, P ) = { (u,v), (x,v), (x,y), (w,t)} P = {s,u,x,w}
f ( P, P ) flujo de P a P
f ( P, P ) flujo de P a P
o
s

e
n

r
e
u v
c( P, P ) = 11
f ( P, P ) = 6
F
l
u
j
3
1
2
3
u v
1
1
1
2
f ( P, P ) = 2
4
3
3
2
1
s
t
x
y
4 3
2
1
Tema 7: 7
3
2
5
w
1 1
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Flujo en una red N = (D,s,t,c()) f : A N {}
Teorema: Sea N una red y f un flujo en ella. Si (P,P) es un y j ( , )
corte, entonces el flujo de la red es f(N) = f(P,P) f(P,P).
f(N) 4
e
d
e
s
f ( P, P ) = 6 f ( P, P ) = 2
f(N)=4
o
s

e
n

r
e
u v
F
l
u
j
3
1
2
3
u v
1
1
1
2
4
3
3
2
1
s
t
x
y
4 3
2
1
Tema 7: 8
3
2
5
w
1 1
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Flujo en una red N = (D,s,t,c()) f : A N {}
Teorema: Sea N una red y f un flujo en ella. Si (P,P) es un y j ( , )
corte, entonces el flujo de la red es f(N) = f(P,P) f(P,P).
Corolario 1: El valor del flujo de una red no puede exceder
la capacidad de ningn corte
e
d
e
s
la capacidad de ningn corte.
Corolario 2: El valor del flujo de una red coincide con el flujo
neto de entrada (flujo de entrada menos flujo de salida) en el
o
s

e
n

r
e
u v
( j j )
sumidero:

+
e e
=
) ( ) (
) , ( ) , ( ) (
t N y t N x
y t f t x f N f
F
l
u
j
3
1
2
3
u v
1
1
1
2
4
3
3
2
1
s
t
x
y
4 3
2
1
Tema 7: 9
3
2
5
w
1 1
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Objetivo: Dada una red N, obtener aquel flujo f en la red,
de modo que f(N) sea mximo.
(U fl j f di fl j i i f(N) f(N) (Un flujo f se dice que es un flujo mximo si f(N) f(N),
para cualquier otro flujo f, definido en la red N).
e
d
e
s
El flujo f no es mximo, f(N) = 4.
o
s

e
n

r
e
u v
f(N) = 6.
F
l
u
j
3
1
2
3
u v
1
1
1
2
2
1
2
3
4
3
3
2
1
s
t
x
y
4 3
2
1
4 3
2
1
Tema 7: 10
3
2
5
w
1 1 0 2
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Objetivo: Dada una red N, obtener aquel flujo f en la red,
de modo que f(N) sea mximo.
(U fl j f di fl j i i f(N) f(N) (Un flujo f se dice que es un flujo mximo si f(N) f(N),
para cualquier otro flujo f, definido en la red N).
El flujo mximo siempre existe pero puede no ser nico
e
d
e
s
El flujo mximo siempre existe, pero puede no ser nico.
x
u
1
1
1
o
s

e
n

r
e
s
2
t
v
4
1
1
1
1
4
0
1
0
2
1
0
4
1
1
F
l
u
j
y
v
w
3
2
5
3
4
1
0
5
1
4
3
0
5
3
4
y
w
El flujo f es mximo, f(N) = 6.
Tema 7: 11
El flujo f es mximo, f(N) = 6.
P.Reyes
Teorema del mximo flujo-mnimo corte
Matemtica
Discreta
Objetivo: Dada una red N, encontrar el mnimo corte.
[ Un corte (P,P) se dice que es mnimo si c(P,P) c(X,X),
para cualquier otro corte (X,X) ]
( P, P ) = { (u,x), (y,t) } P = {s,u,v,w,y}
e
d
e
s
x
u
1
1
c( P, P ) = 6
o
s

e
n

r
e
s
2
t
v
4
1
1
1
1
4
0
1
0
c( P, P ) f(N)
f(N) = 6
F
l
u
j
y
v
w
3
2
5
3
4
1
0
5
1
4
( , ) ( )
c( P, P ) = f(N)
es mnimo
y
w
es mnimo
Teorema del mximo flujo mnimo corte: En toda red el valor
Tema 7: 12
Teorema del mximo flujo-mnimo corte: En toda red, el valor
del mximo flujo coincide con el del mnimo corte.
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
u
0
, u
1
, u
2
, ..., u
n-1
, u
n
u
i
e V, (u
i-1
,u
i
) e A (u
i
,u
i-1
) e A
Semicamino
Dado un flujo f, semicamino f-no saturado si, para cada i, se Dado un flujo f, semicamino f no saturado si, para cada i, se
verifica una de las condiciones:
(a) Si a
i
= (u
i-1
,u
i
) e A, entonces f(a
i
) < c(a
i
)
e
d
e
s
(b) Si a
i
= (u
i
,u
i-1
) e A, entonces f(a
i
) >0
Un semicamino f-no saturado es f-aumentante si u
0
=s y u =t
o
s

e
n

r
e
uyzt es
Un semicamino f no saturado es f aumentante si u
0
s y u
n
t.
F
l
u
j
sxyz no es
f-no saturado.
y
f-no saturado.
x
y
3 3
z
3 2
5
s
t
u
v
4
1
5
6
4
3
2
1
3
2
4
Tema 7: 13
suyzt es
f-aumentante
u
w
4
3
3
1
1
2
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
Teorema (Ford-Fulkerson): Un flujo f en una red N es mximo
si, y slo si, no existe ningn camino f-aumentante.
(a) Si a
i
= (u
i-1
,u
i
) e A, entonces f(a
i
) < c(a
i
)
A
i
= c(a
i
)-f(a
i
)
Q: s=u
0
, u
1
, u
2
, ..., u
n-1
, u
n
=t f-aumentante
e
d
e
s
(b) Si a
i
= (u
i
,u
i-1
) e A, entonces f(a
i
) >0 A
i
= f(a
i
)
A = min {A }
f(a) + A , si a=a
i
= (u
i 1
,u
i
) e A
o
s

e
n

r
e
A = min {A
i
}
f*(a) =
( ) ,
i
(
i-1
,
i
)
f(a) - A , si a=a
i
= (u
i
,u
i -1
) e A
f(a) , si a e Q
F
l
u
j
x
y
3 3
z
3 2
A
1
= 2, A
2
= 1,
A
3
= 1, A
1
= 4
f(a) , si a e Q
f* se obtiene
aumentando
3
5
s
t
u
v
4
1
5
6
4
3
2
1
3
2
4
A =1
aumentando
f a lo largo
de Q
0
3
3
Tema 7: 14
suyzt es
f-aumentante
u
w
4
3
3
1
1
2
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
Algoritmo de Edmonds-Karp (mximo flujo-mnimo corte)
Entrada: N = (D,s,t,c()) una red y f un flujo en N. Entrada: N (D,s,t,c()) una red y f un flujo en N.
P1: Construir, a partir del digrafo D, el digrafo D con V(D) = V(D) y
A(D) = { (x y) | (x y) e A(D) f(x y) < c(x y)}
e
d
e
s
A(D ) = { (x,y) | (x,y) e A(D) , f(x,y) < c(x,y)}
{ (x,y) | (y,x) e A(D) , f(x,y) >0 }
o
s

e
n

r
e
P2: Mediante el algoritmo BFS (debido a Moore) determinar si existe
un camino Q (mnimo) entre s y t (este camino es f-aumentante). Si
no existe Q, ir al paso 5.
F
l
u
j
P3: Aumentar f a lo largo del camino Q.
P4: Volver al paso P1. o e a paso
P5: El flujo obtenido es mximo. El conjunto P de vrtices con
etiqueta finita en el algoritmo BFS del paso P2 define un corte
i
Tema 7: 15
mnimo.
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
5
x
y
3
1
3
6
z
3
3
1
2
2
P1: Crear D
5
s
t
u
v
4
4
1
5
3
3
4
2
1
3
1
2
2
4
x
y z
e
d
e
s
w
3
1
s
t
v
y
P2: Buscar camino s(0)
o
s

e
n

r
e
w
t
u
P2: Buscar camino
s-t mediante BFS
s(0)
x(1)
u(1)
F
l
u
jw
x(1)
w(1)
u(1)
P3: Aumentar f
x
y
3 3
z
3 2
v(2)
t(2)
s-w-t es un semicamino
f t t
5
s
t
u
v
4
1
5
6
4
3
2
1
3
1
2
4
Tema 7: 16
f-aumentante
A
1
= 1, A
2
= 2, A = 1
u
w
4
3
3
0
1
1
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
5
x
y
3
1
3
6
z
3
3
1
2
2
P1: Crear D
5
s
t
u
v
4
4
1
5
3
3
4
2
0
3
1
1
2
4
x
y z
e
d
e
s
w
3
0
s
t
v
y
P2: Buscar camino
o
s

e
n

r
e
w
t
u
P2: Buscar camino
s-t mediante BFS
F
l
u
jw
s-u-y-z-t es un
semicamino
f-aumentante
P3: Aumentar f
x
y
3 3
z
3 3
5
s
t
u
v
4
1
5
6
4
3
3
0
3
1
3
4
Tema 7: 17
A
1
= 2, A
2
= 1, A
3
= 1, A
4
= 4,
A = 1
u
w
4
3
3
0
1
1
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
5
x
y
3
1
3
6
z
3
3
0
3
3
P1: Crear D
5
s
t
u
v
4
4
1
5
3
3
4
3
0
3
1
1
3
4
x
y z
e
d
e
s
w
3
0
s
t
v
y
P2: Buscar camino
o
s

e
n

r
e
w
t
u
P2: Buscar camino
s-t mediante BFS
F
l
u
jw
s-u-v-w-t es un
semicamino
f-aumentante
P3: Aumentar f
x
y
3 3
z
3 3
5
s
t
u
v
4
1
5
6
4
3
4
0
4
0
3
4
Tema 7: 18
A
1
= 1, A
2
= 2, A
3
= 1, A
4
= 1,
A = 1
u
w
4
3
3
0
0
0
P.Reyes
Algoritmo del mximo flujo-mnimo corte
Matemtica
Discreta
5
x
y
3
1
3
6
z
3
3
0
3
3
P1: Crear D
5
s
t
u
v
4
4
1
5
3
3
4
4
0
4
0
0
3
4
x
y z
e
d
e
s
w
3
0
s
t
v
y
P2: Buscar camino
o
s

e
n

r
e
w
t
u
P2: Buscar camino
s-t mediante BFS
s(0)
F
l
u
jw
No existe
x
y
3 3
z
3 3
x(1)
No existe
semicamino
f-aumentante
P5: flujo mximo y
mnimo corte
5
s
t
u
v
4
1
5
6
4
3
4
0
4
0
3
4
f(N) 7
Tema 7: 19
u
w
4
3
3
0
0
0
f(N)=7
P={s,x}