grafosiii

46
  Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte  Andrés Arcia Universidad de Los Andes Facultad de Ingeniería Postgrado en Computación

Upload: efrain-miranda-cortez

Post on 14-Jul-2015

337 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 1/46

 

 Analisis y Diseño de AlgoritmosTema: Grafos

3ra Parte

 Andrés Arcia

Universidad de Los Andes

Facultad de Ingeniería

Postgrado en Computación

Page 2: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 2/46

 

Caminos Cortos en Todos los

Pares de Arcos Dado un grafo dirigido G=(V,E) con una

función de peso w:EpR. Se desea

encontrar todos los caminos más cortos(de menor peso) entre todos los pares

(u,v) V.

Page 3: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 3/46

 

¿Cómo resolver el problema?

En una primera instancia utilizando algún algoritmo decaminos cortos desde un solo vértice, |V| veces, una vezpara cada vértice.

Si todos los arcos son positivos Dijkstra. Luego: Utilizando arreglos para las colas de prioridad

O(V3+VE) = O(V3)

Utilizando heaps binarios O(VElgV)

Utilizando heaps fibonacci O(V2lgV+VE)

Si hay arcos negativos

Bellman-Ford, una vez por vértice.

O(V2E) y para grafos densos O(V4)

Page 4: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 4/46

 

Representación

Se dispone de una matriz de entrada W

de tamaño nxn, que representa los pesos

de un grafo dirigido G=(V,E) de n arcos.Luego, para W=(wij)

wij

0 si i=j

peso de (i,j) si ij y (i,j) Eg si ij y (i,j) E

Page 5: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 5/46

 

Salida

Una matriz D=(dij) con las distancias mínimasentre el par (i,j).

Una matriz 4=(Tij), donde Tij=NULL si i=j ó no

hay camino de i a  j , de otra forma contiene alpredecesor de  j en el camino mínimo.

El grafo resultante se define como:

GT,i= (VT,i, ET,i) dondeVT,i={ jV : Tij NULL } U { i }

ET,i={(Tij,j) : j V

T,i y TijNULL

Page 6: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 6/46

 

Impresión del Camino

PRINT-ALL-PAIRS-SP(4,i,j)

1 if i=j

2 then print i3 else if (Tij=NULL)

4 then print ³no path from´ i ³to´ j

5 else

6 PRINT-ALL-PAIRS-SP(4,i,Tij)

7 print j

Page 7: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 7/46

Multiplicación de Matrices y

Caminos Cortos Se presenta un algoritmo basado enprogramación dinámica para resolver todos loscaminos más cortos en todos los pares denodos del grafo G=(V,E).

El método es similar a la multiplicación dematrices.

Recapitulando la programación dinámica:1. Caracterizar la estructura de la solución óptima.

2. Definir recursivamente el valor de la soluciónóptima.

3. Computar el valor de la solución óptima de abajohacia arriba.

 

Page 8: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 8/46

Estructura del Camino más Corto

Sabemos que todos los subcaminos de los

caminos más cortos son también caminos más

cortos. Supongamos W=(wij), asumamos que no

hay ciclos negativos y que el camino p tiene marcos que van de i a  j y, p es un camino corto.

si i=j p

0si ij pi ~p¶> kp j tiene m-1 nodos

H(i,j) = H(i,k) + w(k,j)

 

Page 9: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 9/46

Solución Recursiva

Sea dij(m) el peso mínimo para algún

camino de i a  j con m arcos:

si m=0

no hay arcosdij

(0) = 0 si i=j

g si ij

Si mu1 dij(m) = min (1eken, dik

(m-1) + wkj)

¿Cuál es el límite de m?

H(i,j) = dij(n-1)=dij

(n)=dij(n+1)=«

 

Page 10: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 10/46

Cálculo de la Solución de

 Abajo hacia Arriba Entrada:

W=(wij), luego se calcula una serie de matrices

D(1), D(2), «, D(n-1) | D(m)=(dij

(m)).

D(n-1) contiene los caminos más cortos.

 

Page 11: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 11/46

Cálculo de la Solución de

 Abajo hacia Arriba En esencia el siguiente algoritmo extiende la solucióndel camino más corto, un arco a la vez.

EXTEND-SHORTEST-PATHS (D,W)

1 n n rows[D]

2 let D¶=(d¶ij) be a nxn matrix.3 for i n 1 to n

4 do for j n 1 to n

5 do d¶ijn g6 for k n 1 to n

7 do d¶ij = min(d¶ij, dik + wkj)

8 return D¶

Este algoritmo es O(n3). Observe los tres for anidados.

 

Page 12: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 12/46

Relación con la

Multiplicación de Matrices. Suponga C=A.B; donde A,B y C son matrices nxn.

La multiplicación de matrices se define:

cij = 7(k=1, n, aik.bkj) p dij(m)=min(1eken, dik

(m-1) + wkj)

d(m-1)pa

wpb

d(m)pc

minp+

+ p .

 

Page 13: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 13/46

 Algoritmo

Sea AB un producto matricial retornado por EXTEND-SHORTEST-PATHS(A,B)

D(1) = D(0).W = W

D(2) = D(1).W = W2

D(3) = D(2).W = W3

«

D(n-1) = D(n-2).W = Wn-1

SLOW-ALL-PAIRS-SHORTEST-PATHS(W)

1 nn rows[w]

2 D(1) nW

3 for mn2 to n-1

4 do D(m) n EXTEND-SHORTEST-PATHS(D(m-1),w)

5 return D(n-1)

O(n4)

 

Page 14: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 14/46

Mejora del Tiempo de Ejecución

¿Cuál es el objetivo? R: D(n-1)

Recordemos que si no hay ciclos negativos, D(m)=D(n-1)

m u n-1

 Así, podemos computar D(n-1) en solo «lg(n-1)», haciendo

D(1) = WD(2) = W2 = W.W

D(4) = W4 = W2. W2

D(8) = W8 = W4. W4

«

D(2^«ln(n-1)») = W(2^«ln(n-1)») = W(2^(«ln(n-1)»-1)) . W(2^(«ln(n-1)»-1))

La técnica se denomina ³repetición cuadrática´.

 

Page 15: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 15/46

 Algoritmo

FASTER-ALL-PAIRS-SHORTEST-PATHS(W)

1 nnrows[w]

2 D(1)nW

3 m n 14 while n-1 > m

5 do D(2m)nEXTEND-SHORTEST-PATH(D(m), D(m))

6 m n2m

7 return D(m)

n-1e2me2n-2

O(n3lgn)

 

Page 16: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 16/46

 Algoritmo Floyd-Warshall

Estructura del camino más corto ± Se consideran los vértices intermedios (v.i.) de un camino

simple p=<v1, v2,«, vl>, es decir, cualquier vertice que no sea v1

y vl.

 ± El algoritmo se basa en la siguiente observación: Sean losnodos de G, V={1,2,«n} y considere el subconjunto {1,2,«,k}para algún k. Para cualquier par de vertices i , j V consideretodos los caminos de i a  j cuyos vertices son todos obtenidos de{1,2,«,k} y sea p el camino de minimo peso entre ellos.

 ± El algoritmo explota la relación entre el camino p y los caminos

cortos de i a  j con vértices intermedios en el conjunto {1,2, «, k-1}.

 ± Si tenemos que p se divide en i~p1~>k~p2~>j. p1 y p2 soncaminos cortos con vértices intermedios en {1,2,...,k}.

 

Page 17: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 17/46

Solución Recursiva

Sea dij(k) el peso del camino más corto de i

a j con v.i. en {1,2,«,k}. Cuando k=0 el

camino de i a j no tiene un v.i. numerado

más alto que 0 y de hecho no tiene v.i.

dij

(k) =Wij si k=0

min(dij(k-1)

, dik(k-1)

+ dkj(k-1)

) si ku1

 

Page 18: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 18/46

Computo de Abajo hacia Arriba

FLOYD-WARSHALL(W)

1 nnrows[n]

2 D(0)n w

3 for k n 1 to n

4 do for i n1 to n

5 do for j n1 to n

6 dij

(k)nmin(dij

(k-1)

, dik

(k-1)

+ dkj

(k-1)

)7 return D(n)

5(n3)

 

Page 19: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 19/46

EjemploNIL 1 1 NIL 1

NIL NIL NIL 2 2

NIL 3 NIL NIL NIL

4 NIL 4 NIL NIL

NIL NIL NIL 5 NIL

0 3 8 g -4

g 0 g 1 7

g 4 0 g g

2 5 -5 0 -2

g g g 6 0

NIL 1 1 NIL 1

NIL NIL NIL 2 2

NIL 3 NIL NIL NIL

4 1 4 NIL 1

NIL NIL NIL 5 NIL

0 3 8 g -4

g 0 g 1 7

g 4 0 g g

2 g -5 0 g

g g g 6 0

0 3 8 4 -4

g 0 g 1 7

g 4 0 5 11

2 5 -5 0 -2

g g g 6 0

NIL 1 1 2 1

NIL NIL NIL 2 2

NIL 3 NIL 2 2

4 1 4 NIL 1

NIL NIL NIL 5 NIL

D(0) =

D(1) =

D(2) =

(0) =

(1) =

(2) =

Valores iniciales

 

Page 20: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 20/46

Construcción del camino más corto

Se selecciona el mismo predecesor que en

camino más corto, pero queda atado por 

apuntadores a los padres en una cadena.

Tij(k) Tij

(k-1) si dij(k-1) e dik

(k-1)+ dkj(k-1)

Tkj(k-1)

si dij(k-1)

> dik(k-1)

+ dkj(k-1)

 

Page 21: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 21/46

Clausura transitiva de un grafo

dirigido

Dado un grafo dirigido G=(V,E) con un

conjunto de nodos V = {1,2,«,n} se quiere

averiguar si hay un camino de i a  j  i,j V.

La clausura transitiva se define:

G*=(V,E*) donde

E*={(i,j): hay camino de i a j en G}.

 

Page 22: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 22/46

¿Cómo se calcula?

Asignar peso 1 a todos los arcos en E y ejecutar Floyd-Warshall O(n3). ± Si hay camino dij<n

 ± Si no hay camino dij=g Otra manera es utilizando los operadores

lógicos y en vez de los operadores min y +en FLOYD-WARSHALL.

 ± tij(0)

= 0 si ij y (i,j) E.= 1 si i=j o (i,j) E.

 ± Para ku1: tij(k) = tij

(k-1) (tik(k-1) tkj

(k-1)).5(n3).

 

Page 23: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 23/46

 Algoritmo de Jhonson

para grafos esparcidos

Encuentra los caminos más cortos en O(V2lgV +

VE), que es asintóticamente mejor que los otros

dos métodos.

Usa Dijkstra y Bellman-Ford.

Usa la técnica de reasignación de pesos.

 ± Si todos los pesos son positivos, entonces se utiliza

Dijkstra en c/u de los nodos y con heap fibonacci se

tiene O(V2lgV + VE), de lo contrario se recalculan los

pesos para que queden todos positivos y se aplica la

misma técnica.

 

Page 24: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 24/46

Reasignación de Pesos

Sea Z el nuevo peso asignado. Z debe

cumplir con:

1.

(u,v) E,H(u,v) con w:EpR estambién H(u,v) con Z :EpR.

2. (u,v) E, Z(u,v)u0.

Z se determina en O(VE).

 

Page 25: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 25/46

Reasignación de Pesos

Lema:

La reasignación de pesos no cambia los

caminos más cortos.

Sea G=(V,F) con w:EpR y h:VpR cualquier 

función que mapea VpR. Luego (u,v)E:

Z(u,v) = w(u,v) + h(u) ± h(v).

Sea p = <v0, v1, « vk> un camino de v0 a vk.w(p)=H(v0,vk) Z(p)=H(v0,vk)

G tiene ciclo negativo G´ tiene ciclo negativo

 

Page 26: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 26/46

Reasignación de Pesos

Prueba:

Z(p) = w(p) + h(v0) ± h(vk)

Se tiene

Z(p) = 7(i=1, k, Z(vi-1, vi))

= 7(i=1, k, w(vi-1, vi) + h(vi-1) - h(vi))

= 7(i=1, k, w(vi-1, vi)) + h(v0) ± h(vk)= w(p) + h(v0) ± h(vk)

Suponga que hay un camino más corto p¶ desde v0 a vk usando Z. EntoncesZ(p¶)< Z(p).

w(p¶) + h(v0) ± h(vk) = Z(p¶)

< w(p)

= w(p)+h(v0)+h(v

k)

Que implica que w(p¶) < w(p) que contradice que p es el camino más corto.

Suponga que hay un ciclo negativo c = <v0, v1, «, vk>

Luego, Z(c)=w(c) + h(v0) ± h(vk)

=w(c) si hay ciclo negativo en Z(c) tambien lo hay en w(c).

 

Page 27: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 27/46

 Algoritmo

JHONSON

1 compute G¶, V[G¶]=V[G] U {s}, E[G¶]=E[G]U{(s,v) : v V[G]}

2 if BELLM AN-FORD(G¶,w,s) = false

3 then print ³there is a negative weight cycle´

4 else for each vertex v V[G]

5 do set h(v) to the value computed by the BELLM AN-FORD algorithm.

6 for each edge (u,v) E[G¶]

7 do Z(u,v)nw(u,v) + h(u) ± h(v)

8 for each vertex u V[G]

9 do run Dijkstra(G,Z

, u) to computeH¶(u,v)

u V[G]10 for each vertex v V[G]

11 do duvn H¶(u,v) + h(v) ± h(u)

12 return D

 

Page 28: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 28/46

Ejemplo

-1

0 -5

-4 0

4

-5

6

8

2

17

3

-4

0

0

0

0

0

0

-1

0 -5

-4 0

0

0

2

13

2

010

4

0

0

0

4

0

0

5

 

Page 29: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 29/46

Ejemplo

2/1

0/0 2/-3

0/-4 2/2

0

0

2

13

2

010

4

0

0/0

2/3 0/-4

2/-1 0/1

0

0

2

13

2

010

4

0

 

Page 30: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 30/46

Flujo Máximo

Imaginemos algún flujo que va desde un sitio s,

donde es producido, hasta un sitio t donde es

consumido a la misma tasa de producción.

Intuitivamente, el flujo en cualquier punto de lared es la tasa a la que se mueve el material.

Usos: modelado de flujo en tuberías, líneas de

ensamblado, corrientes eléctricas, información

en redes de comunicación, etc.

 

Page 31: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 31/46

Flujo Máximo

Cada arco dirigido puede ser visto como un

conducto por donde pasa el material, según las

siguientes restricciones:

 ± Cada conducto tiene una capacidad máxima finita.

 ± Se cumple la conservación de flujo. 7f i = 7f o (por 

nodo).

Problema del Flujo Máximo:

¿Cuál es la mayor tasa a la que se puede llevar 

material sin violar ninguna restricción?

 

Page 32: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 32/46

Redes de Flujo

Una red de flujo G=(V,E) es un grafo

dirigido tal que cada arco (u,v)E posee

una capacidad c(u,v)u0. Si (u,v)E,

c(u,v)=0.

 ± Se distinguen 2 vertices, el fuente ³s´ y el

destino ³t´. Cada vertice vV esta en algun

s~>v~>t. ± El grafo es conexo |E|u|V|-1

 

Page 33: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 33/46

Flujo

El flujo está dado por una función con imagen

en los reales. f:VxVpR que satisface:

 ± Restricción de capacidad: u,v V, f(u,v)ec(u,v).

 ± Simetría distorsionada: u,v V, f(u,v)=-f(v,u).

 ± Conservación de flujo: u,v V-{s,t} se requiere que

vV 7f(u,v) = 0

Sea f(u,v) el flujo desde u hasta v, el valor de ese

flujo se define como |f|= 7f(s,v) vV

 

Page 34: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 34/46

Relación entre 2 nodos

v1

v2

   5   /   1   0

4

v1

v2

10 4

v1

v2

   8   /   1   0

4

v1

v2

   8   /   1   0

   3   /   4

v1

v2

10   2   /   4

8 de v1 a v2 3 de v2 a v1 cancelación 7 más de v2 a v1

 

Page 35: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 35/46

Redes de múltiples entradas y

múltiples salidas

s1

s2

s3

s4

s5

t2

t1

gg

g

g

g

g

g

 

Page 36: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 36/46

Metodo Ford-Fulkerson

El método iterativo depende de tres ideas

importantes:

 ± Red residual

 ± Aumento de camino

 ± Cortes

Para ello usaremos el teorema max-flow

min-cut que caracteriza el flujo máximo en

terminos de cortes de la red de flujo.

 

Page 37: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 37/46

Iteración

En cada iteración se va consiguiendo un valor de flujo que aumenta el camino, es decir,podemos aumentar el flujo en un camino de s at 

. Este proceso se repite hasta que no hayamás posibilidad de aumentar.

FORD-FULKERSON-METHOD(G,s,t)

1 initialize flow f to 0

2 while there exists an augmenting path p.3 do augment flow f along p

4 return f.

 

Page 38: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 38/46

Red Residual

La red residual consiste en arcos que admiten más flujo.

Dada una red de flujo G=(V,E) con fuente s y destino t.Sea f el flujo en G, y considere un par de vertices u,vV. La cantidad de flujo adicional que se puede verter 

sobre u,v es lacapa

cidad r 

esidu

al.cf (u,v) = c(u,v) ± f(u,v)

Ejemplo:

c(u,v)=16, f(u,v)=-4 cf (u,v)=20

c(u,v)=16, f(u,v)=10 cf (u,v)=6

La red residual se define como:

Ef  ± {(u,v) VxV: cf (u,v) > 0}

 

Page 39: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 39/46

 Aumento de Caminos

Dada una red de flujo G=(V,E), un camino

aumentado p es un camino simple de s a t en la

red residual Gf . Este camino solo admite flujo

positivo.

La cantidad máxima de flujo que puede llevarse

por los arcos en un aumento de p se denomina

capacidad r esidual de p, y está dado por:

cf (p) = min {cf (u,v): (u,v) p}

 

Page 40: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 40/46

Corte de la red de flujo

El método aumenta repetidamente el flujo a

través de los caminos de aumento hasta

alcanzar el máximo.

Un corte (S,T) de la red de flujo G=(V,E) esuna

partición de V en S y T=V-S tal que sS y tT.

Si f es el flujo, entonces el flujo de red a través

del corte (S,T) se define f(S,T). La capacidad del

corte (S,T) es C(S,T).

 

Page 41: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 41/46

Teorema max-flow min-cut

Teor ema: El máximo valor de entre todos los

flujos en una red es igual a la capacidad mínima

de entre todos los cortes.

Prueba: Es suficiente con mostrar un flujo y uncorte tal que sean iguales en valor. Luego, el

flujo ha de ser máximo pues no puede rebasar 

la capacidad del corte y el corte ha de ser 

mínimo porque ninguna otra capacidad puedeser menor que el valor actual del flujo.

 

Page 42: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 42/46

 Algoritmo de Ford-Fulkerson

FORD-FULKERSON(G,s,t)

1 for each edge (u,v) E[G]

2 do f[u,v]n0

3 f[v,u]n04 while there exists a path p from s to t in the

residual network Gf 

5 do cf (p)=min {cf (u,v) : (u,v) p}

6 for each edge (u,v) in p7 do f[u,v] n f[u,v] + cf (p)

8 f[v,u] n -f[u,v]

 

Page 43: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 43/46

Ejemplo

0

1

3

2

5

4

2

2

3

1 1

3

1

3

0

1

3

2

5

4

2

2

1

1 1

3

1

3

Cmin = 2

2

Cmin = 1

0

1

3

2

5

4

2

2

1

1 1

2

1

2

2

1

1

Cmin = 1

s

t t t

s s

 

Page 44: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 44/46

Ejemplo

0

1

3

2

5

4

2

2

1 1

1

1

1

1

2

2

2

1 2

FlujoMáximo

   D   i  r  e  c  c   i   ó  n   d  e   l    F

   l  u   j  o

S

Tt

s

 

Page 45: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 45/46

 Análisis

El algoritmo está acotado por O(|f*|) donde

f* es el flujo máximo.

s

u

v

t1s

u

v

t11

1

s

u

v

t11

1

 

Page 46: grafosIII

5/13/2018 grafosIII - slidepdf.com

http://slidepdf.com/reader/full/grafosiii 46/46

Mejora

Si hallamos el camino mínimo de s a t en

la red residual donde cada arco tiene peso

1, se puede mejorar Ford-Fulkerson. Este

método es llamado Edmonds-Karp y esta

acotado por O(VE).