Escolar Documentos
Profissional Documentos
Cultura Documentos
3 I.T.I. de Sistemas
Redes.
Flujos y cortes.
1
Ejemplos:
4
Sea N una red con digrafo asociado D, vrtices fuente s y
sumidero t , y sea c la funcin capacidad asociada a los
arcos.
Para x e V(D) definimos los vecinos de x :
de salida N+ (x) = {y e V(D) / (x,y) e E(D) }
de entrada N- (x) = {y e V(D) / (y,x) e E(D) }
Flujos y cortes
f ( x, y ) = f ( y , x ) x V ( D) {s, t}
yN + ( x ) yN ( x )
5
Flujo neto de salida de un vrtice x es :
f ( x, y ) f ( y , x )
yN + ( x ) yN ( x )
f ( y , x ) f ( x, y )
yN ( x ) yN + ( x )
6
El valor f (N) del flujo en la red N , es el flujo neto de salida del
vrtice fuente s
f (N ) = f ( s , x ) f ( x, s )
xN + ( s ) xN ( s )
x y
Ejemplo 3,3 3,2 z
En cada arco figura 5,3 1,1 6,2
( capacidad, flujo)
s 4,2 v 4,4
u t
5,3
4,1 3,1
3,2
f(N) = ?3+2-1
w
f(y,z) = 2
c(y,z) = 3
7
Definicin: Sean D un digrafo, X e Y subconjuntos no vacos
de vrtices.
(X,Y) es el conjunto de todos los arcos dirigidos desde algn
vrtice de X a algn vrtice de Y
(X,Y) = {(x,y) e E(D) / x e X, y e Y}
su flujo y capacidad correspondientes son:
f ( X ,Y ) = f ( x, y )
( x , y )( X ,Y )
; c ( X , Y ) = ( x , y c ( x, y )
)( X ,Y )
donde f ( X , Y ) = c( X , Y ) = 0 si ( X , Y ) =
w 8
Definicin: Un corte en N es un subconjunto de arcos (P, P)
en D, tal que s e P pero t P y P = V(D) P
f (N ) = f ( x, y )
( x , y )( P , P )
f ( y, x) =
( y , x )( P , P )
f ( P, P ) f ( P , P )
9
1 Sea N un red y f un flujo en N , entonces
Corolario 1:
f ( N ) min { c( P, P ) }
donde el mnimo se toma para todos los cortes en N
f (N ) = f ( x, t ) f (t , x)
xN ( t ) xN + ( t )
10
Teorema del flujo mximo y corte mnimo
11
Ejemplo: En la figura, el dato de cada arco es su capacidad
f1 y f2 son flujos mximos
arco a f1(a) f2(a)
u x (s,u) 1 2
1
1 (s,v) 4 1
2
1 1 (s,w) 1 3
4 t (u,x) 1 1
v
s
4 (u,v) 0 1
3 5 (v,y) 4 2
2
(w,y) 1 3
w 3 y
(w,s) 0 0
(x,v) 0 0
El valor del flujo f1 y f2 para N es 6
igual al flujo neto en t. (x,t) 1 1
f(x,t) +f(y,t) = 1 + 5 (y,t) 5 5
Ningn flujo puede exceder a 6.
f ( N ) min { c( P, P ) }
El valor del mximo flujo no puede exceder de la capacidad de un
corte mnimo.
Para demostrar la igualdad, la estrategia es comprobar que el valor
de algn flujo mximo en N tiene al menos la capacidad de algn
corte mnimo en N
Vamos a considerar algunas definiciones y procedimientos (que se
utilizan en la demostracin del teorema) para establecer
posteriormente el algoritmo.
w
u, (y,u), y, (y,z), z, (z,t), t es un u t semicamino
14
Si Q es un s-t semicamino f -insaturado , donde s y t son los vrtices
fuente y sumidero de N, entonces Q es llamado un f-semicamino
aumentante
x y
3,3 3,2 z
5,3 1,1 6,2
s 4,2 v 4,4
u t
5,3
4,1 3,1
3,2
w
Q : s,(s,u),(y,u),y,(y,z),z,(z,t),t es un f-semicamino aumentante
= min { i , 1 i 4 } = 1
15
Definicin: Sean s y t los vrtices fuente y sumidero de N . Si D
contiene un f-semicamino aumentante , se define el flujo f * sobre el
conjunto de arcos de D del siguiente modo:
x y
Resulta 3,3 3,3 z
5,3 1,0 6,3
s 4,3 v 4,4
u t
5,3
4,1 3,1
3,2
17
Algoritmo para calcular el mximo flujo y
determinar un corte mnimo en una red. (Edmonds)
Teorema 3:
Sea N una red con digrafo subyacente D, fuente s, sumidero t,
capacidad c y flujo f. Sea D el digrafo con V(D) =V(D) y conjunto
de arcos
E(D) = {(x,y) / (x,y) E(D) c(x,y)>f(x,y) o (y,x) E(D) f(y,x)>0}
Entonces, D contiene un s-t camino dirigido si y solo si D contiene
un semicamino aumentante.
Adems, un s-t camino ms corto en D tiene la misma longitud que
un f-semicamino aumentante mas corto en D.
18
Sea N una red con digrafo subyacente D, capacidad c y flujo f.
Incrementar el flujo f f *
20
P3.- ( Se realiza un incremento del flujo por el semicamino aumentante)
Sea Q : s=u0 , a1 , u1 , a2 , u2 , . . . , un-1 , an , un=t
donde ai E(D) tal que ai = (ui-1 , ui) y f(ai) < c(ai) , o
ai = (ui , ui-1) y f(ai) > 0
Para i=1,2,,n
c(ai) - f(ai) si ai = (ui-1 , ui)
i =
f(ai) si ai = (ui , ui-1)
= min {(ai) : 1 i n}
Para i=1,2,,n ,
si ai = (ui-1 , ui) , entonces f (ai) f (ai) +
si ai = (ui , ui-1) , entonces f (ai) f (ai) -
P4.- Ir al paso P1
21
P5.- (Devuelve un mximo flujo y determina un mnimo corte para N)
Retorna f(a) para todos los arcos a de D.
Retorna P (conjunto de vrtices de D con etiqueta finita
obtenida en el paso P2 despus de aplicar el algoritmo
de moore a D)
(P,P) es un corte mnimo.
22
Ejemplo:
Hay tres proveedores A,B,C de un determinado producto, y un
agente D que acta de intermediario para los minoristas L y M.
El intermediario tiene limitado el nmero de pedidos que puede servir
por da a 70.
L consigue que el proveedor A le sirva directamente hasta un
mximo de 30 unidades, y M lo consigue del proveedor C, que le
sirva directamente hasta un mximo de 20 unidades.
Calcular el mximo nmero de pedidos que llegan a L y M, si para el
agente D, la oferta de A es de 40 unidades, la de C es de 80 y la de
B es de 30; y si las demandas son, en L de 60 unidades y en M de
50 unidades.
3
Solucin: A L
4 6
Lo planteamos como un
B 3 D
problema de flujo mximo
8 5
con el siguiente digrafo
C 2
M
23
Como el agente intermediario tiene limitado el nmero de pedidos
por da, para limitar el paso de pedidos debemos crear un arco de la
forma ( D1, D2) con capacidad mxima 70.
3
A L
4 4 6
6
3 3
S B D1 7 D2 T
8 5 5
8
C 2
M
3, 3
A L
4,4 4, 1 6,6
Al aplicar el algoritmo 6, 3
3,3 3, 3 D1 7, D2
el resultado es : S B T
6 5, 3
8, 2 5,5
8, 4
C 2, 2
M
24