Sei sulla pagina 1di 14

Algoritmo de

Dijkstra

El algoritmo de caminos mnimos, es un


algoritmo para la determinacin del camino mas
corto dado un vrtice origen al resto de vrtices en
un grafo con pesos en cada arista. Su nombre se
refiere a Edsger Dijkstra, quien lo describi por
primera vez en 1959.

Definicin

El algoritmo termina cuando no quedan vrtices fuera


de la nube; en ese punto tendremos un camino
mnimo desde s a cada uno de los restantes vrtices
del grafo.

Descripcin

Este algoritmo obtiene los caminos de longitud mnima


desde un vrtice s a los restantes vrtices del grafo G.

Pasos del
algoritmo

Inicializar todas las distancias en D con un valor infinito relativo


ya que son desconocidas al principio, exceptuando la de x que
se debe colocar en 0 debido a que la distancia de x a x sera 0.

Sea a = x (tomamos a como nodo actual).

Recorremos todos los nodos adyacentes de a, excepto los


nodos marcados, llamaremos a estos vi.

Si la distancia desde x hasta vi guardada en D es mayor que la


distancia desde x hasta a sumada a la distancia desde a hasta
vi; esta se sustituye con la segunda nombrada, esto es:
si (Di > Da + d(a, vi)) entonces Di = Da + d(a, vi)

Marcamos como completo el nodo a.

Tomamos como prximo nodo actual el de menor valor en D


(puede hacerse almacenando los valores en una cola de
prioridad) y volvemos al paso 3 mientras existan nodos no
marcados.

Aplicacione
s

En mltiples aplicaciones donde se aplican los


grafos, es necesario conocer el camino de menor
costo entre dos vrtices dados:
Distribucin de productos
establecimientos comerciales.

Distribucin de correos postales.

una

red

de

Encaminamiento de paquetes por los routers: En


un momento dado, un mensaje puede tardar cierta
cantidad de tiempo en atravesar cada lnea (por
ejemplo, por efectos de congestin).

Aplicacione
s

Enrutamiento de aviones y trfico areo: Consiste


en un agente de solicitudes de viaje software para
hacer un programa de vuelos para los clientes. Se
usa para determinar la hora de llegada ms
temprana para el destino.
Tratamiento de imgenes mdicas.

Llegar a desde un punto de una ciudad hasta otro


por el camino ms rpido.

Problemas
reales

Cmo rodear una montaa por el camino ms


corto.
Conocer el camino ms rpido que sigue la
informacin a travs de las neuronas.

Es un algoritmo greedy. (Voraz).

Caractersti
cas del
algoritmo

Un algoritmo voraz (tambin conocido como vido,


devorador o goloso) es aquel que, para resolver un
determinado problema, sigue una heurstica
consistente en elegir la opcin ptima en cada
paso local con la esperanza de llegar a una
solucin general ptima.

Caractersti
cas del
algoritmo

Trabaja por etapas, y toma en cada etapa la mejor


solucin sin considerar consecuencias futuras.
El ptimo encontrado en una etapa puede
modificarse posteriormente si surge una solucin
mejor.

El siguiente ejemplo se mostrara como se desarrollar


con el fin de encontrar el camino ms corto desde a
hasta z:

Ejemplo

Leyenda:
Rojo: Aristas y vrtices pertenecientes
momentnea.
Azul: Aristas y vrtices candidatos.

la

solucin

Paso 1
Se escoge de los
nodos adyacentes
aquel que tiene un
menor peso en la
arista, en este caso,
el nodo d. En d

Ejemplo

Paso 2
Ahora, vemos que se
aade
un
nuevo
candidato, el vrtice e, y
el vrtice c, pero esta vez
a travs del d. Pero el
camino mnimo surge al
aadir el vrtice c.
Solucin momentnea:
Camino: ADC
Distancia:9

Paso 3
Solucin
momentnea:
Camino: ADCB
Distancia:11

Ejemplo

Paso 4
Como podemos

comprobar, se han
aadido un candidato
nuevo, el vrtice g, a
travs del vrtice b. El
mnimo camino hallado
en todo el grafo hasta
ahora es el siguiente:

Solucin momentnea:
Camino: ADCBF
Distancia:15

Paso 5
En

este antepenltimo paso,


se aaden tres vrtices
candidatos, los vrtices g, z y
e. Este ltimo ya estaba pero
en esta ocasin aparece a
travs del vrtice f.

Solucin momentnea:
Camino: ADCBG
Distancia:17

Ejemplo

Paso 6
En el penltimo paso,
vuelve a aparecer otro
candidato: el vrtice e,
pero esta vez a travs del
vrtice
f.
Solucin
momentnea:
Camino: ADCBFE
Distancia:18

Paso 7

Ejemplo

Por fin, llegamos al ltimo


paso, en el que slo se
aade un candidato, el
vrtice z a travs del
vrtice e. El camino
mnimo y final obtenido es:
Solucin Final:
Camino: ADCBFEZ
Distancia:23

Potrebbero piacerti anche