PRESENTACION DIJKSTRA

Post on 13-Aug-2015

155 views 24 download

Transcript of PRESENTACION DIJKSTRA

ALGORITMO DIJKSTRA

SIMON ALBERTO LOPEZ HIGUERAMAURO CARRERO

FREDDY JAIMES

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.

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

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

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.

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

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

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

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

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

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

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

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.