Вы находитесь на странице: 1из 8

Red de transporte N = (D,c)

a 5 e 5 3 s 5 2 4 2 3 2 b d t

Flujos
Gregorio Hernndez Pealver UPM
Teora de Grafos

c: A Z+ CAPACIDAD
2

a 32 s 53 20

52

e 54 32 t 31 s 53

52

e 54

41

2 1

20

41

2 1 31

22 b

22 b

FLUJO en una red N 1. 2. f(x,y) c(x,y)


xvA

f : A Z+ VIABILIDAD Para todo v s, t CONSERVACIN


3

VALOR DEL FLUJO f OBJETIVO

val(f) = f+(s) = f-(t)

f ( x, v ) = f ( v, z )
vzA

Dada una red N, hallar el valor mximo del flujo y un flujo de valor mximo

a 32 s 53 20

52

e 54 32 t 31 s 53

52

e 54

41

2 1

20

41

2 1 31

22 b

22 b

CORTE en N es una particin de V =ST, con sS, tT Capacidad de un corte cap(S,T) =


cap(azul)=11 cap(verde)=12
5

Flujo neto de S a T

xS , yT

c( x , y )

xS , yT

f ( x, y) f ( v, u) = val(f )
vT , uS
xS , yT

val(f )

xS , yT

f ( x, y) c( x, y) = cap(S, T )
6

Corolario max val(f) min cap(S,T)

Cmo aumentar un flujo de s a t? Caminos dirigidos de s a t


32 52 b =min i e 54 t

Teorema de Ford-Fulkerson (1955) max val(f) = min


f flujo

cap(S,T)

residuo i = c(xi,xi+1) f(xi,xi+1)

(S,T) corte

P es camino de f-aumento si >0


33 s
7

53 a e

55 t
8

Y si en el camino de s a t hay arcos hacia atrs?


53 s residuo b 41 e 21 d 31 33 t s 54

53

e 55

20

42

2 0 32

i = c(xi,xi+1) f(xi,xi+1) i = f(xi+1,xi)

=min i

22 b

P es camino de f-aumento si >0


54 s b 42 e 20 d 32 t
9

Si un flujo f es mximo, entonces la red NO puede tener caminos de f-aumento


10

Mtodo de Ford-Fulkerson 1. Partir de f0 2. Mientras exista P camino de f-aumento en la red N, aumentar f a lo largo de P 3. Devolver f

Teorema de Ford-Fulkerson El valor mximo de un flujo en una red N es igual a la mnima capacidad de los cortes de N
Dem. Si f es un flujo de valor mximo, no hay caminos de f-aumento de s a t. Construiremos un corte de capacidad val(f)

Este proceso acaba? Al final, se obtiene un flujo mximo?

S={xV/ existe un camino de f-aumento de s a x}

T=V-S

val(f ) =
11

xS , yT

f ( x, y)

f ( v, u ) =

uS , vT

xS , yT

c(x, y) 0 = cap(S, T)
12

a 33 s 54 20

53

e 55

1. Se supone que existe un flujo de valor mximo 2. Si las capacidades son enteras el mtodo de Ford-Fulkerson puede necesitar analizar val(f) caminos. Como el anlisis de cada camino tiene un coste O(q), la complejidad es O(val(f)q)

42

2 0 32

a 22 b d s 1000 b
13 14

1000 1

1000 t 1000 max flujo=2000

val(f)=7 El corte S={s,a,b,e} T=V-S tiene capacidad cap(S,T)=7

a 1 s b 1 1 s t 1

a 1 0 t

ALGORITMO DE ETIQUETADO (Edmonds, Karp)


Estrategia Partir de un flujo cualquiera, f0 Usar bsqueda en anchura para construir un rbol de caminos de f-aumento con raz en s Si el rbol alcanza t, aumentar f a lo largo del camino correspondiente y volver al paso 2) con el nuevo flujo f Si el rbol no alcanza t, FIN del algoritmo, el flujo considerado es mximo. Un corte de capacidad mnima es (S,T) donde S={vrtices que se alcanzan en el rbol con caminos de f- aumento}, T=V-S

Tras 2000 caminos como los anteriores alcanzamos el flujo mximo a 1000 s 1000 b
15

1000 0 1000 t

16

f0

f1

s
f2

a+3

b+5

a+0

b+5

e+3

d+2
Camino: s, a, e, t Camino: s, b, d, t Residuo 2
17

a-0

d+2

e+4

t+3

Residuo 3

t+2
18

s s
f3

f3
NO hay camino de aumento para f3

a+0 a+0 b+3 a-0 a-0


Camino: s, b, e, t Residuo 2

b+1

d+0

e+1

d+0

e+2
t+0 t+2
19 20

a-1

a 33 s 54 20

53

e 55

Teorema (1972)
t

42

2 0 32

El algoritmo de etiquetado de Edmonds y Karp calcula un flujo maximal en O(nq2)


Dem. El algoritmo construye una sucesin de flujos f0, f1, ..., fM , cuntos flujos se construyen? y cul es el coste de cada uno? Se puede demostrar que: M n de aristas crticas (aquellas que se saturan en el camino de aumento) q (mximo n de veces que una arista es crtica) qn Como el coste de cada flujo es, bsicamente, el coste de una bsqueda en anchura, es decir O(q), resulta que la complejidad del algoritmo es O(nq2)
21 22

22 b

S={s,a,b,e} T={d,t} es el corte formado por los vrtices que se alcanzan desde s con caminos de f-aumento

Otros algoritmos:
Algoritmo de Dinic Encuentra todos los caminos de f-aumento con slo una bsqueda en anchura. Complejidad O(n2q) Algoritmos de PREFLUJO (Karzanov-Goldberg-Tarjan) Parten de un preflujo f (cumple viabilidad pero no conservacin) que no admite caminos de f-aumento y lo modifican hasta conseguir que se cumpla la ley de conservacin f+(v) = f-(v) Complejidad O(n3)
23

REDES NO DIRIGIDAS O MIXTAS


a 5 e 5 3 s 5 2 b d 2 4 2 2 3 t

Precaucin: Por los nuevos arcos NO puede haber flujo simultneamente en los dos sentidos
24

REDES CON RESTRICCIN DE CAPACIDAD EN LOS VRTICES N


4 v v-

REDES CON RESTRICCIN DE CAPACIDAD EN LOS VRTICES

N
4 4 vv+ Un corte de capacidad finita en N corresponde a un conjunto Z de V-{s,t} cuya supresin impida el flujo positivo de s a t. Esto es lo que se llama un corte en N
25 26

Las aristas de capacidad finita son v - v + v+

xvA

f ( x , v ) = f ( v , z ) c( v )
vzA

Para todo v s, t

REDES CON RESTRICCIN DE CAPACIDAD EN LOS VRTICES Teorema Sea N una red con capacidad acotada en los vrtices, entonces

REDES CON VARIAS FUENTES Y/O SUMIDEROS


s1 s t2 sk tm s2 t

t1

max val(f) = min


f flujo Z corte

cap(Z)

27

28

REDES CON ACOTACIN SUPERIOR E INFERIOR


a 2,5 e 1,5 0,2 3,5 2,7 b d 1,4 0,2 3,6 Petrleo en Alaska t

REDES CON ACOTACIN SUPERIOR E INFERIOR


a 1,3 2 s 3,5 4 2,7 3 b d 0,2 0 1,4 1 0,2 0 3,6 3 2,5 2 e 1,5 3 t

1,3 s

N= (D, m, u)

m, u: A Z+ 0 m(e) u(e) para todo arco e


29

FLUJO en una red N

f : A Z+ VIABILIDAD
30

1. m(x,y) f(x,y) u(x,y) 2. LEY de CONSERVACIN

ATENCIN Hay redes NO factibles


1,3 4,6

Transformacin de N en N* (RED BSICA)


N s* N*

PROBLEMAS 1. Dada N determinar si es factible 2. Si N es factible, hallar un flujo en N 3. Adaptar el mtodo de Ford-Fulkerson a N
31

s s* m u-m x m

t*

m,u x y

y t*
32

Transformacin de N en N* (RED BSICA) Teorema N es factible el mximo flujo en N* es


x , yV

N 1,4

a 3,6 s* t

N* 11

a 33 30 32 11 t 3 s t*

m( x , y )
4

33

N 1,3 s

a 4,6 s* t 4

N* 1 2 t

a 2 1 s t*

m(x,y) = 1 + 3 = 4

mx val(f*) = 4

Adems, si f* es flujo maximal en N* entonces f(x,y) = f*(x,y) + m(x,y) N 1,4 3 s


33

es flujo en N a 3,6 3 t
34

m(x,y) = 1 + 4 = 5

mx val(f*) = 4 < 5

REDES CON ACOTACIN SUPERIOR E INFERIOR


Estrategia 1. Dada N construir la red bsica N 2. Hallar f* flujo maximal en N* 3. Si val(f*) m(x,y), FIN. La red no es factible
s

CAMINOS SIN ARISTAS COMUNES

4. Iniciar el algoritmo modificado a partir de f=f*+m para hallar el flujo mximo en N


P modificacin s xi xi+1
35

residuo i = f(xi+1,xi) - m(xi+1,xi)


36

1 1 1 s 1 1 1 1 1 1 Cap(x,y)=1 Flujo 0-1 1 1 1

1 1

1 1 1 1 1 t s 11 11 1

11 1 11 11 11 1 11 1 11 f flujo maximal 11

11 1

11 1 11 1 1 11 t

1 1 1

1 1

1 1

1 1 1

1 11 11

1 11 1 1

conjunto de caminos n mximo de mensajeros


38

f(x,y) {0,1}
37

val(f)

TEOREMA DE MENGER (versin aristas)


Si s y t son vrtices de un grafo G, entonces el mnimo n de aristas separando s de t es igual al mximo n de caminos de s a t sin aristas comunes Dem. Basta aplicar el Teorema de Ford-Fulkerson a la red asociada N con capacidad uno en cada arista. Conjunto de aristas separador en G = Corte en N N de aristas separadoras = capacidad del corte Camino de s a t en G = Unidad de flujo de s a t en N N de caminos sin aristas comunes = valor de un flujo de s a t
39

FLUJOS EN REDES CON COSTE


En cada arco de la red tenemos: CAPACIDAD limitada COSTE por unidad de flujo a 7 12 1 16 s 4 21 9 17 7 30 c 1 15 d 4 16
40

6 19 t

b 3 18 3 18

FLUJOS EN REDES CON COSTE


Problema: Enviar flujo por la red con coste mnimo Cmo enviamos una unidad de flujo a mnimo coste? a 7 12 1 16 s 4 21 9 17 7 30 c 1 15 d 4 16
41

7 12 1 16 s 4 21 9 17 6 19 t 7 30 c 1 15 d 4 16 b 3 18 3 18

6 19 t

b 3 18 3 18

Por el camino de mnimo coste de s a t sbct El residuo en ese camino es 18. Se envan 18 unidades de flujo f
42

18

18

18

a 7 12 1 16 s 4 2118 9 17 7 30 Aristas bc, ct saturadas c 1 15 d s s s b d a t t Residuo 3 Residuo 16 f1


43

a 6 19 s 4 2118 9 17 4 16 7 30 16 c 1 15 d b a t Residuo 3 4 16 16 t 7 12 1 16 b 3 18 18 3 18 18 6 19 t f1

b 3 18 18 3 18 18

Camino de f-aumento con coste mnimo sin usar aristas saturadas

44

a 7 12 1 16 3 s 4 2121 9 17 7 30 16 c 1 15 4 16 16 7 30 29 b 3 18 18 3 18 18 6 19 3 t 9 17 c 1 15 13 f2 s 4 2121 7 12

a 6 19 16 t f3

1 16 16 b 3 18 5

3 18 18 4 16 16

d Aristas saturadas sb, bc, ct, dt Camino mnimo de f2-aumento sdcbat (el coste es 12 pues se resta en la arista cb) Residuo 13
45

d Aristas saturadas sb, ba, ct, dt Camino mnimo de f3-aumento sat Residuo 3
46

a 7 12 3 1 16 16 s 4 2121 9 17 7 30 29 c 1 15 13 4 16 16 b 3 18 5 3 18 18 6 19 19 t f4

Algoritmo: Flujo mximo - Coste mnimo


Estrategia Paso 1. Hallar el camino de mnimo coste de s at y enviar el mayor flujo posible f Paso 2. Hallar el camino de f-aumento ms econmico y aumentar el flujo por ese camino Paso 3. Repetir el paso anterior hasta alcanzar el flujo mximo

d Aristas saturadas sb, ba, ct, dt, at No hay camino de f4-aumento de s a t. Se ha alcanzado el flujo mximo

47

48

Вам также может понравиться