Académique Documents
Professionnel Documents
Culture Documents
Introduccion a la teoria de
Grafos y Caminos de Menor
Costo
High-Speed Networks and Internets, Second Edition
William Stallings
Traduccin Libre y comentarios de WYF
En lugar de Costo, el profesor prefiere mtrica.
1
Chapter 14 Overview of Graph Theory and Least-Cost Paths
Grafos
Vertices
Aristas
Cual es el grafo que realmente sirve?
Arboles
Pesos | Metricas | Longitud | Distancia
Elija un orden
El mas sencillo es V1,V2,V3,V4,V5,V6
Seleccionar la raiz
De nuevo, la mas sencilla es V1
Ejemplo de BFS
El Algoritmo de Bellman-Ford
(2) Pasos (Vers. Matematica)
1.
Inicializacion
a.
b.
2.
Cambio
a.
10
El Algoritmo de Bellman-Ford
(Version Programatica)
// and fills two arrays (distance and predecessor) with shortest-path information
// Step 1: initialize graph
predecessor[v] := null
distance[v] := distance[u] + w
predecessor[v] := u
11
El Algoritmo de Bellman-Ford
(Version Programatica)
predecessor[v] := null
Chapter 14 Overview of Graph Theory and Least-C
12
El Algoritmo de Bellman-Ford
(Version Programatica)
13
El algoritmo de Bellman-Ford
(3) en nuestro grafo de ejemplo
14
El Algoritmo de Bellman-Ford
(4) Paso a Paso
15
El Algoritmo de Bellman-Ford
(5) Notas
16
17
18
dist[v]
:= infinity ;
previous[v]
:= undefined ;
end for
dist[source]
:= 0 ;
// Initializations
// Unknown distance function from source to v
// Previous node in optimal path from source
remove u from Q ;
if dist[u] = infinity:
break ;
end if
dist[v]
previous[v]
decrease-key v in Q;
// Relax (u,v,a)
:= u ;
// Reorder v in the Queue
end if
end for
end while
:= alt ;
end function
Tomado de https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm el 01 de Feb de 2014, con ligeras adaptaciones.
19
dist[v]
:= infinity ;
previous[v]
// Initializations
// Unknown distance function from source to v
end for
dist[source]
Q := the set of all nodes in Graph ; // All nodes in the graph are
:= 0 ;
20
while Q is not empty: // The main loop Source node is first case
remove u from Q ;
if dist[u] = infinity:
break ;
end if
for each neighbor v of u: // where v has not yet been removed from Q.
// Relax (u,v,a)
dist[v]
previous[v]
:= alt ;
end if
end for
end while
:= u ;
end function
21
22
23
24
25
26
Comparacion de la informacion
requerida (en redes) B-F
Comparacion de la informacion
requerida (en redes) Dijkstra
Requiere que todos los pesos sean
positivos
El paso 3 requiere que cada vertice tenga la
informacion completa de la topologia
30
Otras notas
Ambos algoritmos convergen bajo
condiciones estaticas de topologia y peso.
Producen la misma solucion
Si los costos de los enlaces cambian, los
algoritmos se adaptaran, pero el B-F
distribuido tiene el problema de la cuenta
al infinito.
Si el costo de los enlaces dependen del
trafico, el cual a su vez depende de la ruta
seleccionada:
31
PCCS
32
33
Capitulo 14 (Continuacion)
Introduccion a la teoria de
Grafos y Caminos de Menor
Costo
High-Speed Networks and Internets, Second Edition
William Stallings
Traduccin Libre y comentarios de WYF
En lugar de Costo, el profesor prefiere mtrica.
1
Chapter 14 Overview of Graph Theory and Least-Cost Paths
Chapter 13
Grafos
Vertices
Aristas
Cual es el grafo que realmente sirve?
Arboles
Pesos | Metricas | Longitud | Distancia
1,2,3,,i, (i+1)
Asigen estos tambien al nivel (i+1)
Hasta que todos los vertices hayan sido procesados
Elija un orden
El mas sencillo es V1,V2,V3,V4,V5,V6
Seleccionar la raiz
De nuevo, la mas sencilla es V1
Ejemplo de BFS
El Algoritmo de Bellman-Ford
(2) Pasos (Vers. Matematica)
1.
Inicializacion
a.
b.
2.
Cambio
a.
10
El Algoritmo de Bellman-Ford
(Version Programatica)
// and fills two arrays (distance and predecessor) with shortest-path information
// Step 1: initialize graph
predecessor[v] := null
distance[v] := distance[u] + w
predecessor[v] := u
11
El Algoritmo de Bellman-Ford
(Version Programatica)
predecessor[v] := null
Chapter 14 Overview of Graph Theory and Least-C
ost Paths
12
El Algoritmo de Bellman-Ford
(Version Programatica)
13
El algoritmo de Bellman-Ford
(3) en nuestro grafo de ejemplo
14
El Algoritmo de Bellman-Ford
(4) Paso a Paso
15
El Algoritmo de Bellman-Ford
(5) Notas
16
17
18
:= infinity ;
previous[v]
:= undefined ;
end for
dist[source]
:= 0 ;
// Initializations
// Unknown distance function from source to v
// Previous node in optimal path from source
remove u from Q ;
if dist[u] = infinity:
break ;
end if
dist[v]
previous[v]
decrease-key v in Q;
end for
end while
// Relax (u,v,a)
:= alt ;
:= u ;
// Reorder v in the Queue
end if
19
dist[v]
:= infinity ;
previous[v]
// Initializations
// Unknown distance function from source to v
end for
dist[source]
Q := the set of all nodes in Graph ; // All nodes in the graph are
:= 0 ;
20
while Q is not empty: // The main loop Source node is first case
remove u from Q ;
if dist[u] = infinity:
break ;
end if
for each neighbor v of u: // where v has not yet been removed from Q.
// Relax (u,v,a)
dist[v]
previous[v]
end for
end while
:= u ;
end if
:= alt ;
21
22
23
24
25
26
Comparacion de la informacion
requerida (en redes) B-F
Comparacion de la informacion
requerida (en redes) Dijkstra
Requiere que todos los pesos sean
positivos
El paso 3 requiere que cada vertice tenga la
informacion completa de la topologia
30
Otras notas
Ambos algoritmos convergen bajo
condiciones estaticas de topologia y peso.
Producen la misma solucion
Si los costos de los enlaces cambian, los
algoritmos se adaptaran, pero el B-F
distribuido tiene el problema de la cuenta
al infinito.
Si el costo de los enlaces dependen del
trafico, el cual a su vez depende de la ruta
seleccionada:
31
PCCS
32
33