La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Jorge Mondragón Leonardo Herrera Cristian Fernández

Presentaciones similares


Presentación del tema: "Jorge Mondragón Leonardo Herrera Cristian Fernández"— Transcripción de la presentación:

1 Jorge Mondragón Leonardo Herrera Cristian Fernández
BELLMAN-FORD Jorge Mondragón Leonardo Herrera Cristian Fernández

2 DESCRIPCIÓN DEL PROBLEMA
El algoritmo de Bellman-Ford genera el camino más corto en un grafo dirigido ponderado (en el que el peso de alguna de las aristas puede ser negativo). El algoritmo de Dijkstra resuelve este mismo problema en un tiempo menor, pero requiere que los pesos de las aristas no sean negativos. Por lo que el algoritmo Bellman-Ford normalmente se utiliza cuando hay aristas con peso negativo Si el grafo contiene un ciclo de coste negativo, el algoritmo lo detectará pero no encontrará el camino más corto que no repite ningún vértice, la complejidad de este problema es NP-completo.

3 DEFINICIÓN DEL ALGORITMO
El algoritmo de Bellman-Ford genera el camino más corto en un Grafo dirigido ponderado ( en el que el peso de alguna de las aristas puede ser negativo). Este Algoritmo fue desarrollado por Richard Bellman, Samuel End y Lester Ford.

4 CARACTERISTICAS Y COMPLEJIDAD COMPUTACIONAL
El algoritmo de Dijkstra resuelve este mismo problema en un tiempo menor, pero requiere que los pesos de las aristas no sean negativos. Por lo que el Algoritmo Bellman-Ford normalmente se utiliza cuando hay aristas con peso negativo. La complejidad computacional de este problema es complejidad NP-Completo.

5 EXPLICACIÓN DEL ALGORITMO
En el paso 0, inicializamos todas las distancias o costos mínimos a infinito. En el paso 1, actualizamos el paso anterior, aplicando las fórmulas. En este caso ponemos la distancia de los nodos que tienen accesos directos al vértice 1, y se la sumamos a la distancia mínima acumulada que hay hasta el vértice oportuno. Aquí esta distancia acumulada sería 0 para 1, debido que sería la distancia a él mismo, e infinito para el resto porque no han sido analizados todavía

6 EXPLICACIÓN DEL ALGORITMO
En el paso 2, al saber ya una distancia mínima acumulada desde los nodos 2 y 3 hasta 1, podemos actualizar las distancias mínimas de los nodos 4 y 5. En los pasos sucesivos, se van actualizando las distancias mínimas acumuladas (D) de los distintos vértices hasta 1, y se van utilizando en los pasos siguientes para optimizar el camino mínimo. El final del algoritmo se da cuando no hay ningún cambio de un paso a otro, cuando ya no se puede encontrar un camino más corto.

7 ANALISIS DEL ALGORITMO
Grafo Inicial. El objetivo del Algoritmo es encontrar el camino mínimo desde todos los nodos al vértice 1.

8 ANALISIS DEL ALGORITMO

9 EJEMPLO ( REALIZACIÓN DEL ALGORITMO)

10 EJEMPLO (GRAFO FINAL) * Resultado del camino mínimo desde todos los nodos al vértice 1.

11 APLICACIONES DEL ALGORITMO
Una variante distribuida del Algoritmo del Bellman-Ford se usa en protocolos de encaminamiento basados en vector de distancias. En el mundo de las redes (comunicaciones) el protocolo de encaminamiento de información (RIP).

12 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) Paso 0.0 u
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 0.0 V [ ] = { u v x y z } d _ P Encontrar el camino más corto del Vértice z a cada uno de los otros Vértices.

13 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 0.1 V [ ] = { u v x y z } d P Inicializar los vectores d y P.

14 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: NO Proceso: No se hace nada.

15 ¥ ¥ ¥ ¥ (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.2 Aplicar Relax al Arco (u,x) V [ ] = { u v x y z } d P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

16 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: NO Proceso: No se hace nada.

17 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.4 Aplicar Relax al Arco (v,u) V [ ] = { u v x y z } d P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: NO Proceso: No se hace nada.

18 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.5 Aplicar Relax al Arco (x,v) V [ ] = { u v x y z } d P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: NO Proceso: No se hace nada.

19 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.6 Aplicar Relax al Arco (x,y) V [ ] = { u v x y z } d P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

20 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.7 Aplicar Relax al Arco (y,v) V [ ] = { u v x y z } d P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

21 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.8 Aplicar Relax al Arco (y,v) V [ ] = { u v x y z } d P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

22 ¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x)
5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.9 Aplicar Relax al Arco (z,u) V [ ] = { u v x y z } d P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: SI Proceso: d[u] = d[z] + w( z, u ) y P[u] = z

23 6 ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x)
5 v Lista de Arcos 6 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.9 Aplicar Relax al Arco (z,u) V [ ] = { u v x y z } d 6 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: SI Proceso: d[u] = d[z] + w( z, u ) y P[u] = z

24 6 ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 
5 v Lista de Arcos 6 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 x y 9 Paso 1.10 Aplicar Relax al Arco (z,x) V [ ] = { u v x y z } d 6 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: SI Proceso: d[x] = d[z] + w( z, x ) y P[x] = z

25 6 ¥ 7 ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 
5 v Lista de Arcos 6 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 x y 9 Paso 1.10 Aplicar Relax al Arco (z,x) V [ ] = { u v x y z } d 6 7 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: SI Proceso: d[x] = d[z] + w( z, x ) y P[x] = z

26 6 ¥ 7 ¥ (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 x y 9 Paso 2.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d 6 7 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: SI Proceso: d[v] = d[u] + w( u, v ) y P[v] = u

27 6 11 7 ¥ (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 11 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 x y 9 Paso 2.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d 6 11 7 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: SI Proceso: d[v] = d[u] + w( u, v ) y P[v] = u

28 6 11 7 ¥ (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 11 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 x y 9 Paso 2.2 Aplicar Relax al Arco (u,x) V [ ] = { u v x y z } d 6 11 7 P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

29 6 11 7 ¥ (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 x y 9 Paso 2.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d 6 11 7 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

30 6 11 7 2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d 6 11 7 2 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

31 6 11 7 2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.4 Aplicar Relax al Arco (v,u) V [ ] = { u v x y z } d 6 11 7 2 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: NO Proceso: No se hace nada.

32 6 11 7 2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.5 Aplicar Relax al Arco (x,v) V [ ] = { u v x y z } d 6 11 7 2 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: SI Proceso:d[y] = d[x] + w( x, v ) y P[y] = x

33 6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.5 Aplicar Relax al Arco (x,v) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: SI Proceso: d[y] = d[x] + w( x, v ) y P[y] = x

34 6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.6 Aplicar Relax al Arco (x,y) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

35 6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.7 Aplicar Relax al Arco (y,v) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

36 6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.8 Aplicar Relax al Arco (y,z) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

37 6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.9 Aplicar Relax al Arco (z,u) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: NO Proceso: No se hace nada.

38 6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.10 Aplicar Relax al Arco (z,x) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: NO Proceso: No se hace nada.

39 6 4 7 2 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: NO Proceso: No se hace nada.

40 6 4 7 2 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.2 Aplicar Relax al Arco (u,x) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

41 6 4 7 2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: NO Proceso: No se hace nada.

42 6 4 7 2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.4 Aplicar Relax al Arco (v, u) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: SI Proceso: d[u] = d[v] + w( v, u ) y P[u] = v

43 2 4 7 2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.4 Aplicar Relax al Arco (v, u) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: SI Proceso: d[u] = d[v] + w( v, u ) y P[u] = v

44 2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.5 Aplicar Relax al Arco (x, v) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: NO Proceso: No se hace nada.

45 2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.6 Aplicar Relax al Arco (x, y) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

46 2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.7 Aplicar Relax al Arco (y, v) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

47 2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.8 Aplicar Relax al Arco (y, z) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

48 2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.9 Aplicar Relax al Arco (z, u) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: NO Proceso: No se hace nada.

49 2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.10 Aplicar Relax al Arco (z, x) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: NO Proceso: No se hace nada.

50 2 4 7 2 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 4.1 Aplicar Relax al Arco (u, v) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: NO Proceso: No se hace nada.

51 2 4 7 2 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 4.2 Aplicar Relax al Arco (u, x) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

52 2 4 7 2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 4.3 Aplicar Relax al Arco (u, y) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

53 2 4 7 -2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.3 Aplicar Relax al Arco (u, y) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

54 2 4 7 -2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.4 Aplicar Relax al Arco (v, u) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: NO Proceso: No se hace nada.

55 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.5 Aplicar Relax al Arco (x, v) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: NO Proceso: No se hace nada.

56 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.6 Aplicar Relax al Arco (x, y) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

57 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.7 Aplicar Relax al Arco (y, v) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

58 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.8 Aplicar Relax al Arco (y, z) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

59 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.9 Aplicar Relax al Arco (z, u) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: NO Proceso: No se hace nada.

60 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.10 Aplicar Relax al Arco (z, x) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: NO Proceso: No se hace nada.

61 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 5.0 V [ ] = { u v x y z } d 2 4 7 -2 P Verificar en cada arco que se cumple la condición: d[Vf] <= d[Vi] + w( Vi , Vf ) Si no se cumple: => NO EXISTE SOLUCIÓN.

62 2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)
Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 z -4 -3 7 7 -2 x y SOLUCIÓN V [ ] = { u v x y z } d 2 4 7 -2 P


Descargar ppt "Jorge Mondragón Leonardo Herrera Cristian Fernández"

Presentaciones similares


Anuncios Google