algoritmo de dijkstra final
Post on 18-Jun-2015
4.493 Views
Preview:
TRANSCRIPT
Algoritmo De DijkstraSalomon Karr Escobedo
2
Definición:
El algoritmo de Dijkstra es también llamado el algoritmo de caminos cortos, es un algoritmo para la determinación del camino mas corto dado un vértice origen.
3
¿Funcionalidad del Algoritmo?
1) Seleccionamos el nodo no visitado con menor distancia acumulada.
2) Sumamos la distancia acumulada en dicho nodo con la distancia de las aristas a los nodos a los que podemos acceder. Comparamos la nueva distancia con la que teníamos acumulada en el nodo destino (en caso de tener ya alguna) y nos quedamos con la menor.
3) Marcamos el nodo actual como visitado y volvemos al paso 1. *”Así obtendremos las distancias mínimas a un nodo dado”.
4
Complejidad Computacional
La complejidad es O(n^2), ya que recorremos cada nodo una vez y comparamos cada uno de ellos con el resto para ver si ya estaba visitado o para calcular distancias.
5
Ejemplo:
0
s
b c
da
71
5
3 2 548
Vértice Inicial Costos
Asignamos ∞ a todos los vértices menos al de partida
6
Paso 1
0
2 ~
~7
s
b c
da
71
5
3 2 548
2
Tenemos 2 nodos
Adyacentes a 0, el 7 y el 2.
Al comparar sus costos nos damos cuenta que ir a 2 tiene un menor coste
(2)
Nodo Escogido
Automáticamente los nodos
adyacentes son rotulados con el
coste de sus aristas
7
Paso 2
0
2 7
105
s
b c
da
71
5
3 2 548
2
Entre las posibilidades del
nodo “a” tenemos el costo
8 hacia “c”, 5 hacia d y 3 hacia b. Escogemos 3 a
b por tener menos costo
Y c que tenia asignado ∞ ahora se le
asigna 10, que es el costo
desde a -> c (8) + el rotulo de a (2). Igualmente
el nodo d.
8
Paso 3
0
2 7
65
s
c
da
71
5
3 2 548
2
De los nodos que tenemos
pendientes podemos ver que el de menor coste es el que va de b a c con costo (1)
b
9
Paso 4
0
2 7
65
s
b c
da
71
5
3 2 548
2
Finalmente tenemos todos los nodos visitados
con Coste mínimo
10
Muestra Final
0
2 7
65
s
b c
da
1
5
3
2
Finalmente tenemos todos los nodos visitados con Coste mínimo después de haber realizado todas las iteraciones
top related