presentacion dijkstra

14
ALGORITMO DIJKSTRA SIMON ALBERTO LOPEZ HIGUERA MAURO CARRERO FREDDY JAIMES

Upload: simon-alberto-lopez-higuera

Post on 13-Aug-2015

169 views

Category:

Documents


24 download

TRANSCRIPT

Page 1: PRESENTACION DIJKSTRA

ALGORITMO DIJKSTRA

SIMON ALBERTO LOPEZ HIGUERAMAURO CARRERO

FREDDY JAIMES

Page 2: PRESENTACION DIJKSTRA

El algoritmo de Dijkstra, también llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de vértices en un grafo con pesos en cada arista. Su nombre se refiere a Edsger Dijkstra, quien lo describió por primera vez en 1959.

Page 3: PRESENTACION DIJKSTRA

-Es un algoritmo greddy.

Trabaja por etapas, y toma en cada etapa la mejor solución sin considerar consecuencias futuras.

El óptimo encontrado en una etapa puede modificarse posteriormente si surge una solución mejor.

Un algoritmo voraz(greedy) (también conocido como ávido, devorador o goloso) es aquel que, para resolver un determinado problema, sigue una heurística consistente en elegir la opción óptima en cada paso local con la esperanza de llegar a una solución general óptima.

Page 4: PRESENTACION DIJKSTRA

La idea subyacente en este algoritmo consiste en ir explorando todos los caminos más cortos que parten del vértice origen y que llevan a todos los demás vértices; cuando se obtiene el camino más corto desde el vértice origen, al resto de vértices que componen el grafo, el algoritmo se detiene. El algoritmo es una especialización de la búsqueda de costo uniforme, y como tal, no funciona en grafos con aristas de costo negativo (al elegir siempre el nodo con distancia menor, pueden quedar excluidos de la búsqueda nodos que en próximas iteraciones bajarían el costo general del camino al pasar por una arista con costo negativo).

Page 5: PRESENTACION DIJKSTRA

El siguiente ejemplo se desarrollará con el fin de encontrar el camino más corto desde a hasta z:

Leyenda:Rojo: Aristas y vértices pertenecientes a la solución momentánea.Azul: Aristas y vértices candidatos.

Page 6: PRESENTACION DIJKSTRA

PASO 1.

En este primer paso, podemos apreciar que hay tres candidatos: Los vértices b, c y d. En este caso, hacemos el camino desde el vértice a, hasta el vértice d, ya que es el camino más corto de los tres.Solución momentánea:Camino: ADDistancia:5

Page 7: PRESENTACION DIJKSTRA

PASO 2.

Ahora, vemos que se añade un nuevo candidato, el vértice e, y el vértice c, pero esta vez a través del d. Pero el camino mínimo surge al añadir el vértice c.Solución momentánea:Camino: ADCDistancia:9

Page 8: PRESENTACION DIJKSTRA

PASO 3.

En este paso no se añade ningún candidato más puesto que el último vértice es el mismo que en el paso anterior. En este caso el camino mínimo hallado es el siguiente:Solución momentánea:Camino: ADCBDistancia:11

Page 9: PRESENTACION DIJKSTRA

PASO 4.

Como podemos comprobar, se han añadido dos candidatos nuevos, los vértices f y g, ambos a través del vértice b. El mínimo camino hallado en todo el grafo hasta ahora es el siguiente:Solución momentánea:Camino: ADCBFDistancia:15

Page 10: PRESENTACION DIJKSTRA

PASO 5.

En este antepenúltimo paso, se añaden tres vértices candidatos, los vértices g, z y e. Este último ya estaba pero en esta ocasión aparece a través del vértice f. En este caso el camino mínimo, que cambia un poco con respecto al anterior, es:Solución momentánea:Camino: ADCBFDistancia:17

Page 11: PRESENTACION DIJKSTRA

PASO 6.

En el penúltimo paso, vuelve a aparecer otro candidato: el vértice e, pero esta vez a través del vértice f. De todas formas, el camino mínimo vuelve a cambiar para retomar el camino que venía siguiendo en los pasos anteriores:Solución momentánea:Camino: ADCBFEDistancia:18

Page 12: PRESENTACION DIJKSTRA

PASO 7.

Por fin, llegamos al último paso, en el que sólo se añade un candidato, el vértice z a través del e. El camino mínimo y final obtenido es nada mas y nada menos k:Solución Final:Camino: ADCBFEZDistancia:23

Page 13: PRESENTACION DIJKSTRA

El algoritmo de recorrido mínimo Dijkstra se puede aplicar en campos como:

-La robótica.

-Manejo de redes y sistemas distribuidos.

-Simulador de conexión de satélites.

Page 14: PRESENTACION DIJKSTRA