Bellman Ford EXP FINAL
Bellman Ford EXP FINAL
Bellman Ford EXP FINAL
Grafo Inicial.
El objetivo del
Algoritmo es
encontrar el camino
mnimo desde todos
los nodos al vrtice 1.
ANALISIS DEL ALGORITMO
EJEMPLO ( REALIZACIN DEL
ALGORITMO)
EJEMPLO (GRAFO FINAL)
* Resultado del
camino mnimo
desde todos los
nodos al vrtice 1.
APLICACIONES DEL
ALGORITMO
Una variante distribuida del Algoritmo del Bellman-
Ford se usa en protocolos de encaminamiento
basados en vector de distancias.
6 11 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
(z,u)
9 (z,x)
Paso 2.1 Aplicar Relax al Arco (u,v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[u] + w( u , v ) ?
d [ ] = { 6 11 7 0 }
P [ ] = { z u z } Respuesta: SI
6 11 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
(z,u)
9 (z,x)
Paso 2.2 Aplicar Relax al Arco (u,x)
V [ ] = { u v x y z }
Pregunta: d[x] > d[u] + w( u , x ) ?
d [ ] = { 6 11 7 0 }
P [ ] = { z u z } Respuesta: NO
6 11 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
(z,u)
9 (z,x)
Paso 2.3 Aplicar Relax al Arco (u,y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[u] + w( u , y ) ?
d [ ] = { 6 11 7 0 }
P [ ] = { z u z } Respuesta: SI
6 11 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.3 Aplicar Relax al Arco (u,y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[u] + w( u , y ) ?
d [ ] = { 6 11 7 2 0 }
P [ ] = { z u z u } Respuesta: SI
6 11 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.4 Aplicar Relax al Arco (v,u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[v] + w( v , u ) ?
d [ ] = { 6 11 7 2 0 }
P [ ] = { z u z u } Respuesta: NO
6 11 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.5 Aplicar Relax al Arco (x,v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[x] + w( x , v ) ?
d [ ] = { 6 11 7 2 0 }
P [ ] = { z u z u } Respuesta: SI
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.5 Aplicar Relax al Arco (x,v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[x] + w( x , v ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: SI
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.6 Aplicar Relax al Arco (x,y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[x] + w( x , y ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.7 Aplicar Relax al Arco (y,v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[y] + w( y , v ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.8 Aplicar Relax al Arco (y,z)
V [ ] = { u v x y z }
Pregunta: d[z] > d[y] + w( y , z ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.9 Aplicar Relax al Arco (z,u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[z] + w( z , u ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 2.10 Aplicar Relax al Arco (z,x)
V [ ] = { u v x y z }
Pregunta: d[x] > d[z] + w( z , x ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.1 Aplicar Relax al Arco (u,v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[u] + w( u , v ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.2 Aplicar Relax al Arco (u,x)
V [ ] = { u v x y z }
Pregunta: d[x] > d[u] + w( u , x ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.3 Aplicar Relax al Arco (u,y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[u] + w( u , y ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: NO
6 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.4 Aplicar Relax al Arco (v, u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[v] + w( v , u ) ?
d [ ] = { 6 4 7 2 0 }
P [ ] = { z x z u } Respuesta: SI
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.4 Aplicar Relax al Arco (v, u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[v] + w( v , u ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: SI
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.5 Aplicar Relax al Arco (x, v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[x] + w( x , v ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.6 Aplicar Relax al Arco (x, y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[x] + w( x , y ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.7 Aplicar Relax al Arco (y, v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[y] + w( y , v ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.8 Aplicar Relax al Arco (y, z)
V [ ] = { u v x y z }
Pregunta: d[z] > d[y] + w( y , z ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.9 Aplicar Relax al Arco (z, u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[z] + w( z , u ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 3.10 Aplicar Relax al Arco (z, x)
V [ ] = { u v x y z }
Pregunta: d[x] > d[z] + w( z , x ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 4.1 Aplicar Relax al Arco (u, v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[u] + w( u , v ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 4.2 Aplicar Relax al Arco (u, x)
V [ ] = { u v x y z }
Pregunta: d[x] > d[u] + w( u , x ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
2 (z,u)
9 (z,x)
Paso 4.3 Aplicar Relax al Arco (u, y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[u] + w( u , y ) ?
d [ ] = { 2 4 7 2 0 }
P [ ] = { v x z u } Respuesta: SI
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.3 Aplicar Relax al Arco (u, y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[u] + w( u , y ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: SI
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.4 Aplicar Relax al Arco (v, u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[v] + w( v , u ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.5 Aplicar Relax al Arco (x, v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[x] + w( x , v ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.6 Aplicar Relax al Arco (x, y)
V [ ] = { u v x y z }
Pregunta: d[y] > d[x] + w( x , y ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.7 Aplicar Relax al Arco (y, v)
V [ ] = { u v x y z }
Pregunta: d[v] > d[y] + w( y , v ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.8 Aplicar Relax al Arco (y, z)
V [ ] = { u v x y z }
Pregunta: d[z] > d[y] + w( y , z ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.9 Aplicar Relax al Arco (z, u)
V [ ] = { u v x y z }
Pregunta: d[u] > d[z] + w( z , u ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 4.10 Aplicar Relax al Arco (z, x)
V [ ] = { u v x y z }
Pregunta: d[x] > d[z] + w( z , x ) ?
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u } Respuesta: NO
2 4 (u,v)
-2 (u,x)
6
(u,y)
z -4 (v,u)
0 8
7 (x,v)
-3 (x,y)
(y,v)
7 2 (y,z)
x
7 y
-2 (z,u)
9 (z,x)
Paso 5.0
V [ ] = { u v x y z }
Verificar en cada arco que se
d [ ] = { 2 4 7 -2 0 } cumple la condicin:
P [ ] = { v x z u } d[Vf] <= d[Vi] + w( Vi , Vf )
Si no se cumple:
=> NO EXISTE SOLUCIN.
u v Lista de Arcos
2 4 (u,v)
-2 (u,x)
(u,y)
z -4 (v,u)
0 (x,v)
-3 (x,y)
(y,v)
7 (y,z)
x
7 y
-2 (z,u)
(z,x)
SOLUCIN
V [ ] = { u v x y z }
d [ ] = { 2 4 7 -2 0 }
P [ ] = { v x z u }