tema 4: redes y flujos - ma1.eii.us.esma1.eii.us.es/material/ftg_itis_tema4.pdf · 3 redes una red...

24
1 Tema 4: Redes y flujos Redes y flujos • Redes. Flujos y cortes. Teorema del flujo máximo – corte mínimo. Algoritmo para calcular el máximo flujo y determinar un corte mínimo en una red. Complejidad del algoritmo. Fundamentos de la teoría de grafos. 3º I.T.I. de Sistemas Mª Teresa Cáceres Sansaloni

Upload: trinhthuy

Post on 06-Feb-2018

226 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

1

Tema 4: Redes y flujosRedes y flujos

• Redes.

• Flujos y cortes.

• Teorema del flujo máximo – corte mínimo.

• Algoritmo para calcular el máximo flujo y determinar un corte mínimo en una red.

• Complejidad del algoritmo.

Fundamentos de la teoría de grafos.3º I.T.I. de Sistemas

Mª Teresa Cáceres Sansaloni

Page 2: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

2

∏ Un partido de futbol de gran interés tendrá lugar en una isla canaria. Los aficionados del equipo visitante quieren ver el partido y animar a su equipo. Hay varias rutas y vuelos para llegar a la isla, y el número máximo de plazas de las mismas es conocido.

¿Cómo determinar el máximo número de aficionados que pueden ir y las rutas que deben tomar?

∏ Un producto se fabrica en A y se distribuye a varios destinos para la venta D1,D2,…,Dn . Suponiendo demanda ilimitada, conocidas las rutas desde A a cada destino y el máximo número de unidades del producto que pueden ser transportadas. ¿Cuál es el máximo número de unidades que pueden servirse?

∏ Las redes son buenos modelos para sistemas de distribución de oleoductos, tuberias , tráfico, etc.En las conducciones hay estaciones de bombeo. ¿Cuál es el máximo flujo de una estación a otra, dado que las tuberías tienen capacidad finita?. ¿Cuál es el flujo máximo de vehículos por una carretera?

EjemplosEjemplos::

Page 3: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

3

RedesUna red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con una función capacidad c, asociada a los arcos, que toma valores enteros no negativos, o el valor •

D es el digrafo subyacente de la red N

Si a = (u,v) œ E(D) , entonces c(a)=c(u,v) es la capacidad de a

s tiene grado de entrada d+(s) = 0 t tiene grado de salida d-(s) = 0

Para determinar el máximo número de personas que pueden volar de s hasta t usando distintas rutas y aeropuertos.El modelo de red considera:Vértices: Fuente = origen s; Sumidero = destino t;

los demás vértices son los aeropuertos intermedios.Arcos: (x,y) representa un vuelo directo de x hasta yc(x,y) = máximo número de asientos disponibles en un vuelo de x a y

Page 4: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

4

¿Cuál es el máximo número de unidades que pueden servirse?

Vértices: Fuente = A; Introducimos el sumidero = t; cada vértice Di es adyacente a t.

Arcos: (Di , t) con capacidad ilimitada (¶) para 1 § i § n.a los otros arcos (x,y) se les asigna la capacidad igual al máximo número de unidades de producto que pueden transportarse directamente desde x hasta y en un día.

Page 5: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

5

Sea N una red con digrafo asociado D, vértices fuente s y sumidero t , y sea c la función 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) }

{ }tsDVxxyfyxfxNyxNy

,)(),(),()()(

−∈∀= ∑∑−+ ∈∈

Flujos y cortes

Un flujo f en N es una función entera f : E(D) ö Z+ que verifica:

Restricción de capacidad: (el flujo nunca excede a la capacidad)

0 § f(a) § c(a) para todo a e E(D)

Principio de conservación:

Page 6: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

6

Flujo neto de salida de un vértice x es :

∑∑−+ ∈∈

−)()(

),(),(xNyxNy

xyfyxf

∑∑+− ∈∈

−)()(

),(),(xNyxNy

yxfxyf

Flujo neto de entrada de un vértice x es :

Flujo en un arco a = (x,y) es denotado por f (a) = f (x,y) y puede ser interpretado como la cantidad de material (o personas, coches, etc...) transportado a lo largo del arco (x,y)

El principio de conservación establece que si x ∫s y x ∫t entonces su flujo neto de entrada y su flujo neto de salida son ambos igual a 0

Page 7: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

7

El valor f (N) del flujo en la red N , es el flujo neto de salida del vértice fuente s

∑∑−+ ∈∈

−=)()(

),(),()(sNxsNx

sxfxsfNf

Ejemplo x yz

s tuv

w

5,3

3,3 3,2

6,2

4,1

1,14,2

5,34,4

3,1 3,2

En cada arco figura( capacidad, flujo)

f(N) = ?3+2-1

f(y,z) =

c(y,z) =

2

3

Page 8: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

8

Definición: Sean D un digrafo, X e Y subconjuntos no vacíos de vértices. (X,Y) es el conjunto de todos los arcos dirigidos desde algún vértice de X a algún vértice de Y

(X,Y) = {(x,y) e E(D) / x e X, y e Y}

su flujo y capacidad correspondientes son:

;

En el ejemplo anterior, si X = {x,y,u} e Y = {u,v,z,y}

(X,Y) =

∑∈

=),(),(

),(),(YXyx

yxfYXf ∑∈

=),(),(

),(),(YXyx

yxcYXc

φ=== ),(0),(),( YX siYXcYXfdonde

{(x,y), (y,u), (y,z),(u,v)}x y

z

s tuv

w

5,33,3 3,2

6,2

4,1

1,14,2

5,34,4

3,1 3,2

Page 9: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

9

Definición: 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

c(P, P) es la capacidad del corte.

f(P, P) es flujo desde P hasta P

f(P, P) es flujo desde P hasta P

En el ejemplo: Calcularlo para P = {s, y, w}

Teorema 1: Sea la red N, y f un flujo en N. Si (P, P) es un corte de N, entonces el flujo en N es

),(),(),(),()(),(),(),(),(

PPfPPfxyfyxfNfPPxyPPyx

−=−= ∑∑∈∈

Page 10: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

10

Corolario 1Corolario 1: Sea N un red y f un flujo en N , entonces

}),({min)( PPcNf ≤

donde el mínimo se toma para todos los cortes en N

Corolario 2Corolario 2: Sea N un red y f un flujo en N , entonces el valor del flujo en N es igual al flujo neto en el sumidero t.

∑∑+− ∈∈

−=)()(

),(),()(tNxtNx

xtftxfNf

Page 11: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

11

Teorema del flujo máximo y corte mínimo

Un flujo f en una red N es un flujo máximo si

NfNfNf en o flujo para tod ')(')( ≥

Un corte (P,P) es un corte mínimo de N si

NXXXXcPPc en do corte para to ),(),(),( ≤

Teorema (Ford y Fulkerson)En cualquier red, el valor de un flujo máximo es igual a la capacidad de un corte mínimo.

Page 12: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

12

Ejemplo: En la figura, el dato de cada arco es su capacidad

f1 y f2 son flujos máximos

55(y,t)11(x,t)00(x,v)00(w,s)31(w,y)24(v,y)10(u,v)11(u,x)31(s,w)14(s,v)21(s,u)

f2(a)f1(a)arco a

El valor del flujo f1 y f2 para N es 6 igual al flujo neto en t.

f(x,t) +f(y,t) = 1 + 5Ningún flujo puede exceder a 6.

Sea P={s,u,v,w,y}, entonces c(P, P) = c(u,x) + c(y,t)= 1 + 5 = 6Por tanto, es un corte mínimo

u

s

w y

t

x

v

2

2

1

11

1

3

3

4

4 5

Page 13: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

13

Demostración del Teorema :

Sea N un red y f un flujo en N , por el Corolario 1

}),({min)( PPcNf ≤

• El valor del máximo flujo no puede exceder de la capacidad de un corte mínimo.

• Para demostrar la igualdad, la estrategia es comprobar que el valor de algún flujo máximo en N tiene al menos la capacidad de algún corte mínimo en NVamos a considerar algunas definiciones y procedimientos (que seutilizan en la demostración del teorema) para establecer posteriormente el algoritmo.

Un u0 – un semicamino en un digrafo D es una secuencia Q alternada finita de vértices y arcos,

Q : u0 , a1 , u1 , a2 , u2 , . . . , un-1 , an , unde modo que no se repiten vértices y ai = (ui , ui-1) o ai = (ui-1 , ui)

Page 14: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

14

x yz

s tuv

w

5,3

3,3 3,2

6,2

4,1

1,14,2

5,34,4

3,1 3,2

u, (y,u), y, (y,z), z, (z,t), t es un u – t semicamino

Sea f un flujo en la red N , con digrafo subyacente D y capacidad c, un semicamino u0 , a1 , u1 , a2 , u2 ,. . ., un-1 , an , unen D se dice que es f-insaturado si, para cada i, 1§ i § n

(a) ai = (ui-1 , ui) y f(ai) < c(ai) , o

(b) ai = (ui , ui-1) y f(ai) > 0

(a) Establece que se puede aumentar el flujo desde ui-1 hasta ui

(b) Establece que se puede disminuir el flujo de retroceso desde ui hacia ui-1

Page 15: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

15

Si Q es un s-t semicamino f -insaturado , donde s y t son los vértices fuente y sumidero de N, entonces Q es llamado un f-semicaminoaumentante

x yz

s tuv

w

5,3

3,3 3,2

6,2

4,1

1,14,2

5,34,4

3,1 3,2

Q : s,(s,u),(y,u),y,(y,z),z,(z,t),t es un f-semicamino aumentante

a1 = (s,u) f(a1) < c(a1) ∆1 = c(a1) -f(a1) = 4 - 2 =2

a3 = (y,z) f(a3) < c(a3) ∆3 = c(a3) -f(a3) = 3 - 2 =1

a4 = (z,t) f(a4) < c(a4) ∆4 = c(a4) -f(a4) = 6 - 2 =4

Condición (a)

Condición (b) a2 = (y,u) f(a2) > 0 ∆2 = f(a2) = 1

∆ = min { ∆i , 1 § i § 4 } = 1

Page 16: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

16

DefiniciDefinicióón: n: Sean s y t los vértices 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:

,)()(

1,),()(1,),()(

)( 1

1*

⎪⎩

⎪⎨

∉≤≤=∆−≤≤=∆+

= −

QEaafniiuuaafniiuuaaf

af ii

ii

si

para algunsi

para algunsi

x yz

s tuv

w

5,3

3,3 3,3

6,3

4,1

1,04,3

5,34,4

3,1 3,2

Resulta

f * es un flujo para la red N que verificaf * (N) = f (N) + ∆ > f (N)

Page 17: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

17

Teorema 2:Sea N una red con dígrafo subyacente D. Un flujo f en N es un flujo máximo si y solo si no hay ningún f-semicaminoaumentante en D.

Este resultado establecerá la regla de salida y fin del algoritmo.

Page 18: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

18

Algoritmo para calcular el máximo flujo y determinar un corte mínimo en una red. (Edmonds)

Proporciona un método sistemático para encontrar un f-semicamino aumentante en la red N, con flujo dado f.

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. Además, un s-t camino más corto en D’ tiene la misma longitud que un f-semicamino aumentante mas corto en D.

Page 19: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

19

Sea N una red con digrafo subyacente D, capacidad c y flujo f.

Si f no es un flujo máximo de N, entonces D tiene unf-semicamino aumentante.

Q : s=u0 , a1 , u1 , a2 , u2 , . . . , un-1 , an , un=t

Sea ∆ = min {∆(ai) : 1 § i §n}

Incrementar el flujo f Ø f *

f (a) + ∆ si a = (ui-1 , ui) para algún i , 1§ i § nf * (a) = f (a) – ∆ si a = (ui , ui-1) para algún i , 1§ i § n

f (a) si a – E(Q)

c(ai) - f(ai) si ai = (ui-1 , ui) Sea ∆( ai ) =

f(ai) si ai = (ui , ui-1)

Page 20: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

20

Algoritmo(para determinar un flujo máximo y un corte mínimo en una red N con dígrafo subyacente D, fuente s, sumidero t, capacidad c y flujo inicial f(puede ser flujo cero).

P1.- Construir D’ con V(D’) = V(D)E(D’) = {(x,y) / (x,y) œE(D) ⁄ c(x,y)>f(x,y) o

(y,x)œ E(D) ⁄ f(y,x)>0 }

P2.- (Determina si D’ tiene un s-t camino y por tanto si D tiene unf- semicamino aumentante)

Aplicar el algoritmo BFS de Moore a D’ para determinarun s-t camino más corto.

Si D’ no contiene ningún s-t camino, entonces ir al paso P5en otro caso, sea Q’ : s = u0 , u1 , u2 , . . . , un= tun s-t camino más corto en D’ y continuar.

Page 21: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

21

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) , oai = (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

Page 22: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

22

P5.- (Devuelve un máximo flujo y determina un mínimo corte para N)

Retorna f(a) para todos los arcos a de D.

Retorna P (conjunto de vértices de D’ con etiqueta finita obtenida en el paso P2 después de aplicar el algoritmode moore a D’)

(P,P) es un corte mínimo.

Complejidad del algoritmo O(pq2)

Page 23: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

23

Ejemplo:

Hay tres proveedores A,B,C de un determinado producto, y un agente D que actúa de intermediario para los minoristas L y M.El intermediario tiene limitado el número de pedidos que puede servir por día a 70.L consigue que el proveedor A le sirva directamente hasta un máximo de 30 unidades, y M lo consigue del proveedor C, que le sirva directamente hasta un máximo de 20 unidades.Calcular el máximo número 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 de50 unidades.

Solución: Lo planteamos como un problema de flujo máximo con el siguiente digrafo

B

A L

M

D

C

3

4

3

8

2

5

6

Page 24: Tema 4: Redes y flujos - ma1.eii.us.esma1.eii.us.es/Material/FTG_itis_Tema4.pdf · 3 Redes Una red N es un digrafo D con dos vértices destacados s (fuente), y t (sumidero) , con

24

Como el agente intermediario tiene limitado el número de pedidos por día, para limitar el paso de pedidos debemos crear un arco de la forma ( D1, D2) con capacidad máxima 70.

Para resolver el problema como flujo máximo, además debemos considerar los vértices ficticios S, T, y los arcos (S,A), (S,B), (S,C), (L,T) y (M,T) con las capacidades correspondientes.

B

A L

M

D1

C

3

4

3

8

2

5

6S TD27

43

8

6

5

Al aplicar el algoritmo el resultado es : B

A L

M

D1

C

3, 34, 1

3, 3

8, 2

2, 2

5, 3

6, 3S TD27,

6

4,43,3

8, 4

6,6

5,5