Sunteți pe pagina 1din 3

Algoritmo de Dijkstra

Oscar D. Avilez Olea1, Diosa Pernett Gonzlez2, Hans A. Prez Coronado3

Departamento de Ingeniera de Sistemas, Universidad de Crdoba

Montera, Colombia

olea1512@gmail.com1

diosa1495@hotmail.com2

darkperez15@gmail.com3

Abstract - En este artculo se expone la importancia del algoritmo de II. ALGORITMO DE DIJKSTRA
Dijkstra en la enseanza de la informtica y la bsqueda del camino
ms corto dado un vrtice origen. La idea de este algoritmo es explorar A. Definicin
todos los caminos ms cortos, partiendo de un vrtice origen y que
llevan a todos los dems vrtices; cuando se obtiene el camino ms Teniendo un grafo a cuyas aristas se han asociado una serie de
corto desde el vrtice origen al resto de vrtices que componen el pesos (valores), se define el camino de coste mnimo de un vrtice u a
grafo, el algoritmo se detiene. otro v, como el camino donde la suma de los pesos de las aristas que
lo forman es la ms baja entre las de todos los caminos posibles de u
a v. El algoritmo de Dijkstra es un algoritmo eficiente (de complejidad

I. INTRODUCCIN O(n2) donde n es el nmero de vrtices) que sirve para encontrar el


camino de coste mnimo desde un vrtice origen a todos los dems
Son muchas las situaciones que requieren de soluciones optimas vrtices del grafo. Su nombre se refiere a Edsger Dijkstra, quien lo
que permitan ejecutar acciones de la manera prctica y optimizada, describi por primera vez en 1959. [2]
ejemplos de ello son la planificacin de las tareas que completan un
proyecto, encontrar las rutas de menor longitud entre dos puntos En otros trminos, la idea principal del algoritmo de Dijkstra
consiste en reconocer y explorar todos los caminos ms cortos que
geogrficos, calcular el camino ms rpido en un transporte, entre
parten de un vrtice origen y que llevan a todos los dems vrtices;
otros. A travs de la teora de grafos y sus algoritmos, se pueden
cuando se obtiene el camino ms corto desde el vrtice origen, al resto
resolver diversos problemas como por ejemplo la sntesis de circuitos
de vrtices que componen el grafo, el algoritmo se detiene. El
secuenciales, contadores o sistemas de apertura. Dicha teora y los
algoritmo es una especializacin de la bsqueda de costo uniforme; es
algoritmos que pertenecen a ella se pueden aplicar en distintas reas
importante aclarar que dicho algoritmo no funciona en grafos con
del conocimiento como el dibujo computacional, Telemtica, Redes
aristas de costos (valores) negativos ya que al elegir siempre el vrtice
locales y en muchas reas de Ingeniera[1]. En general, se presentar
con distancia menor, pueden quedar excluidos de la bsqueda vrtices
a continuacin informacin relevante (definicin, ejemplos e
que en prximas iteraciones bajaran el costo general del camino al
implementacin) sobre el algoritmo de Dijkstra, que sirva como gua
pasar por una arista con costo negativo.[3]
de aprendizaje para entender la historia, el funcionamiento y
aplicacin de dicho algoritmo en diferentes reas del saber. La idea principal de este algoritmo se puede aplicar para resolver
diferentes problemas sobre grafos; es por esta razn que su estudio es
de gran importancia.
B. Cmo funciona el algoritmo Dijkstra?

Para la explicacin general, dado un grafo ponderado de N


vrtices no aislados y aristas con peso (valor) no negativo, se tomar
como referencia los siguientes pasos:

1. Seleccionar vrtice de partida, es decir un origen.


2. Marcar el punto de partida como el punto de inicio.
3. Determinar los caminos especiales desde el nodo de partida, es
decir, el de inicio. Fig. 2 Ejemplo de un grafo ponderado luego de aplicar el algoritmo Dijkstra

4. Camino especial es aquel que solo puede trazarse a travs de los


nodos o vrtices ya marcados.
5. Para cada vrtice no marcado, se debe determinar si es mejor usar En la Fig. 2 se puede apreciar el camino que resulta luego de
el camino especial antes calculado o si es mejor usar el nuevo aplicar el algoritmo de Dijkstra; este camino es la ruta ms corta para
camino especial que resulte al marcar este nuevo vrtice. ir desde el vrtice a, hacia el vrtice z.
6. Para seleccionar un nuevo vrtice no marcado como referencia,
C. Aplicaciones de Dijkstra
deber tomarse aquel cuyo camino especial para llegar a l es el
mnimo, por ejemplo, si anteriormente marqu el nodo o vrtice Son diversas las reas en las que se aplica el algoritmo de Dijkstra
2, el cual tiene dos vrtices adyacentes 3 y 4 cuyo peso en la arista y en general la teora de grafos. A continuacin, se presentan algunas
4 corresponde a 10 y 5 respectivamente, se tomar como nuevo de esas aplicaciones:
nodo de partida el 4, ya que el peso de la arista o camino es menor.
1) Encaminamiento de paquetes por los routers:
7. Cada camino mnimo corresponde a la suma de los pesos de las
Consideremos una red telefnica. En un momento dado, un
aristas que forman el camino para ir del vrtice principal al resto
mensaje puede tardar una cierta cantidad de tiempo en
de vrtices, pasando nicamente por caminos especiales, es decir
atravesar cada lnea (debido a efectos de congestin, retrasos
los vrtices marcados.[4]
en las conexiones etc.). En este caso tenemos una red con
costes en las aristas y dos vrtices especiales: el vrtice de
comienzo y el de finalizacin; el objetivo aqu es encontrar
A continuacin, se ilustra un ejemplo de aplicacin del algoritmo
un camino entre estos dos vrtices cuyo coste total sea el
de Dijkstra:
mnimo.
2) Aplicaciones para Sistemas de informacin
geogrficos: extraccin de caractersticas curvilneas
de imgenes usando tcnicas de minimizacin del
camino: La imagen se representa como una matriz de
puntos, cada uno con una especial intensidad. Cada nodo se
corresponde con un punto (pixel) de la imagen y tiene hasta
ocho nodos adyacentes. El peso de los arcos viene dado en
este caso por la diferencia de intensidad. Esta tcnica
presenta un gran ahorro de costes frente a las herramientas
Fig. 1 Ejemplo de un grafo ponderado antes de aplicar el algoritmo Dijkstra existentes actualmente en el mercado que usan mtodos de
vectorizacin automticos.[2]
3) Caminos mnimos en Grafos usando XML y parsers problemas; en el caso de los Ingenieros de Sistemas reas como
de Java: El concepto de camino es una secuencia de la telemtica y las redes requieren la teora de grafos y
operadores y conectores: un operador ser cualquier unidad algoritmos como Dijkstra no solo para encontrar la ruta ms
de proceso de informacin realizando un algoritmo corta al momento de enviar daros, sino tambin, para optimizar
especfico (i.e. conversores digitales, de formato etc.) y un y no hacer redundancia en las redes[6]. De esta manera es
conector ser cualquier mecanismo a travs del cual los
necesario estudiar la aplicacin de la teora de grafos y sus
operadores se comunican entre s. Dado un conjunto de
diferentes algoritmos.
descripciones de operadores y conectores, unos parmetros
de optimizacin (que el usuario queda encargado de
introducir) y una serie de requisitos, el sistema se encargar
de encontrar un camino ptimo de una entrada establecida REFERENCIAS
hasta un tipo de salida especificada aplicando
[1] L. Euler, G. Kirchhoff, F. Guthrie, K. Appel, and W.
transformaciones especficas en el menor tiempo posible.
Haken, Teora de grafos w w w ib ro sZ . c.
4) Reconocimiento de lenguaje hablado: Un problema que
se presenta es el distinguir entre palabras que suenan de [2] G. S. Torrubia and V. M. L. Terrazas, Algoritmo de
manera similar. Se puede construir un grafo cuyos vrtices Dijkstra . Un Tutorial Interactivo.
correspondan a palabras posibles y cuyas aristas unan
palabras que puedan ir colocadas una al lado de otra. Si el [3] M. Trucos, Algoritmo de Dijkstra, pp. 19, 2016.
peso de la arista corresponde a la probabilidad de que estn
[4] Tema: Algoritmos para la ruta ms corta en un
as colocadas, el camino ms corto en el grafo ser la mejor
Materiales y Equipo Introduccin Terica, no. 10,
interpretacin de la frase.[3]
pp. 19.
Otras aplicaciones: Enrutamiento de aviones y trfico areo.
Tratamiento de imgenes mdicas. Problemas de optimizacin de una
[5] D. Lugares, Aplicaciones de Dijkstra, pp. 12,

funcin de coste para moverse entre diversas posiciones. 2016.

[6] E. L. Estudio, M. D. E. Las, E. D. E. Grupo, P.


Predecir, E. D. E. L. O. S. Canales, D. E. I. Y. D. E.
D. Problemas reales donde Dijkstra es la solucin.
Las, and A. Consecuentes, La teoria de grafos y las
Adems de los ejemplos de aplicacin anteriores, existen otros redes de comunicacin en la empresa, 1981.
ms cotidianos como los siguientes[5]:

Llegar a desde un punto de una ciudad hasta otro por el


camino ms rpido.
Estudios sobre la probabilidad, por ejemplo, frases ms
usadas por los espaoles.
Cmo cruzar una montaa utilizando el camino ms corto.
Conocer el camino ms rpido que sigue la informacin a
travs de las neuronas.

III. CONCLUSIONES

Diversas reas del conocimiento requieren de la aplicacin


de diferentes teoras y algoritmos para encontrar solucin a sus

S-ar putea să vă placă și