algoritmo de dijkstra final

10
Algoritmo De Dijkstra Salomon Karr Escobedo

Upload: salomon

Post on 18-Jun-2015

4.493 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmo de dijkstra final

Algoritmo De DijkstraSalomon Karr Escobedo

Page 2: Algoritmo de dijkstra final

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.

Page 3: Algoritmo de dijkstra final

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”.

Page 4: Algoritmo de dijkstra final

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.

Page 5: Algoritmo de dijkstra final

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

Page 6: Algoritmo de dijkstra final

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

Page 7: Algoritmo de dijkstra final

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.

Page 8: Algoritmo de dijkstra final

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

Page 9: Algoritmo de dijkstra final

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

Page 10: Algoritmo de dijkstra final

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