Está en la página 1de 16

b

t
c

45

1
3

10

25

40

55

20

30

25
50

15

Flujo en Redes. Flujo mximo

Flujo en Redes

Indice

Introduccin.
Flujo en redes.
El mtodo de Ford Fulkerson. Flujo mximo.
Redes residuales.
Caminos aumentantes.
Cortes en redes de flujos.
Teorema de flujo-mximo mnimo-corte.
El algoritmo de Ford Fulkerson.

Flujo en Redes

Introduccin

Los digrafos se pueden usar para representar


flujo en redes.
Permiten modelar todo tipo de red, en
particular las de transporte y distribucin:
flujo de fludos en tuberas, piezas en una lnea de
ensamblaje, corriente en circuitos elctricos,
informacin en redes de comunicacin, etc.

Problema: Maximizar la cantidad de flujo


desde un vrtice fuente a otro sumidero, sin
superar las restricciones de capacidad.
Mtodo de Ford-Fulkerson para resolver el
problema de mximo flujo.

Flujo en Redes

Redes de flujo

Digrafo G=(V, E)
Los pesos de las aristas representan capacidad
(c(u, v)> 0). Si no hay aristas la capacidad es
cero.
Vrtices especiales:
fuente s, vrtice sin aristas de entrada.
sumidero t, vrtice sin aristas de salida.
El grafo es conectado: Hay un camino entre s y t
por algn vrtice intermedio del grafo.

Flujo en Redes

Redes de flujo

Un flujo en G es una funcin real f : VxV que


satisface las siguientes propiedades:
Restriccin de capacidad: Para todo u, v V, f (u, v) < c (u, v)
Antisimetra: Para todo u, v V, f (u, v) = f (v, u)
Conservacin de flujo: Para todo u V {s, t },

11

10

s
8

/9

f (v, t )

11 / 16

vV

vV

v3

/1
3

v2
Flujo en Redes

vV

12 / 12

v1

6
/1

f ( s, v )

15

/2
0

7/7

Valor del flujo: | f | =

1/4

f (u, v) = 0

v4

t
4

/4

Mtodo de Ford-Fulkerson

Mtodo iterativo para resolver el problema de flujo


mximo.
Seudocdigo:
Mtodo de Ford-Fulkerson (G, s, t)
Inicializar flujo f a 0
while exista un camino aumentante p {
aumentar flujo f a travs de p
}
return f

El mtodo depende de tres conceptos bsicos:


Redes residuales.
Camino aumentante.
Cortes en redes de flujo.

Flujo en Redes

Redes residuales

Para una red de flujo y un flujo, la red residual es el conjunto


de aristas que pueden admitir ms flujo.
Sea una red de flujo G=(V, E) con fuente s y sumidero t. Sea
f un flujo en G y un par de vrtices u, v V. El flujo neto
adicional desde u a v sin exceder la capacidad c(u, v) es la
capacidad residual de (u, v), definida por:
cf(u,v) = c(u,v) f(u,v)
La red residual de G inducida por f es Gf = (V, Ef) donde
Ef = {(u,v) VxV: cf(u, v) > 0}

Flujo en Redes

/1

v2

11 / 14

11

15

v4

/4

v3

/9

/2

12

v1

Gf

10

15

11

16

v3
7/7

/
11

12 / 12

v1
1/4

v2

3
11

v4
7

Caminos aumentantes

Un camino aumentante p en una red de flujo G=(V, E) y flujo


f, es un camino simple de s a t en la red residual Gf.

Cada arista (u, v) del camino aumentante admite un flujo neto


positivo adicional de u a v sin violar la restriccin de
capacidad de la arista.
Capacidad residual: es la mxima cantidad de flujo neto que
se puede enviar por las aristas de un camino aumentante. Se
calcula por:
cf(p) = min{cf(u,v) (u,v) p}

Cf= min{5, 4, 5} = 4

Flujo en Redes

/1

v2

11 / 14

11

15

v4

/4

v3

/9

/2

12

v1

Gf

10

15

11

16

v3
7/7

/
11

12 / 12

v1
1/4

v2

3
11

v4
8

Cortes en redes de flujo

Un corte (S, T) de una red de flujo G=(V, E) es una


particin del conjunto de vrtices V en dos subconjuntos
S y T = VS tal que s S y t T.
Si f es un flujo:
f(S, T) es el flujo neto a travs del corte (S,T).
c(S, T) es la capacidad del corte (S,T).

Flujo en una red = flujo neto a travs de cualquier corte


de la red.
S

11

6
/1

10

s
8

Flujo en Redes

/1

12 / 12

v1
1/4

v2

11 / 14

/9

v3

15

/2

7/7

Corte = ( {s, v1, v2}, {s, v1, v2} )

f(s, t) = f(v1, v3) + f(v2, v3) + f(v2, v4) =


12 + (-4) + 11 = 19

v4

/4

c(s, t) = c(v1, v3) + c(v2, v4) = 12 + 14 = 26


9

Teorema flujo-mximo
mnimo-corte

Si f es un flujo en una red de flujo G = (V, E) con


fuente s y sumidero t, entonces las siguientes
condiciones son equivalentes:
f es un flujo mximo en G.
La red residual Gf no contiene caminos
aumentantes.
| f | = c(S, T) para algn corte (S, T) de G.

Flujo en Redes

10

Algoritmo de Ford-Fulkerson
Ford-Fulkerson (G, s, t)
for cada arista (u, v) E[G] {
f [u, v] = 0
f [v, u] = 0
}
while exista un camino p de s a t en el grafo residual Gf {
cf(p) = min{ cf(u, v) / (u, v) p}
for cada arista (u, v) p
f [u, v] = f [u, v] + cf(p)
f [v, u] = f [u, v]
}
Flujo en Redes

11

Ejemplo
Flujo

16

20
4

13

v2

v4

14

16

10

10

4 / 12

v1

v2

10

11

6
/1

13

v2

10
4

Flujo en Redes

4 / 12

20

v4

v4

4 / 14

v1
7 / 10

12

v3

/9

13

v1

v3

v3

/9

13

v2

11 / 14

20

t
4

/4

/2
0

7/7

v3

12

v1

Grafo Residual

v4

t
4

/4

12

Ejemplo
Flujo

8
6
/1
1
1

7
4

11

11

13

v2

/1

12 / 12

v1

v2

v4

6
/1

v2

3
11

v4

12

/1

12 / 12

v1
1/4

11

15

Flujo en Redes

11

11

10

12

v3

v2

v4

11 / 14

11

v1

/9

v3

11 / 14

15

/2

v3

t
4

19

/4

/2

7/7

13

1/ 4

v3

10

v1

7/ 7

Grafo Residual

v4

t
4

/4

13

Ejemplo y complejidad
Flujo
1

19

11

1
12

v2

3
11

11

11

v4

6
/1

s
12

/1

12 / 12

v1
1/4

v3

10

12

v1

v2

11 / 14

v3

19

/2

7/7

Grafo Residual

v4

t
4

/4

Para hallar el camino aumentante se puede usar


cualquier tipo de recorrido (BPA o BPP).
La capacidad de cada arista se puede multiplicar por un
factor de escala para conseguir que sea entera.
Bajo estas condiciones el algoritmo tiene una complejidad
de O(E| f * |), donde f *es el mximo flujo obtenido por el
algoritmo.

Flujo en Redes

14

Animacin del algoritmo


flujo mximo

Aplicacin GRANI para la animacin del


algoritmo de flujo mximo.

Flujo en Redes

Ejecutar GRANI

15

Indice general
1. Introduccin.
2. Definiciones.
3. Recorridos en grafos.
4. Algoritmos de caminos ms cortos.
5. rbol de cubrimiento de costo mnimo.
6. Flujo en redes. Flujo mximo.

Flujo en Redes

16

También podría gustarte