You are on page 1of 4

01/11/12

Algoritmo de Dijkstra - Wikipedia, la enciclopedia libre

Algoritmo de Dijkstra
De Wikipedia, la enciclopedia libre

Algoritmo de Dijkstra , concebido por el holands equipo cientfico Dijkstra Edsger en 1956 y publicado en 1959,
[ 1 ] [ 2 ] es un algoritmo de bsqueda grfico que resuelve la sola fuente ms corta problema de ruta para un grfico
con negativos borde costes de ruta, produciendo un camino ms corto rbol . Este algoritmo se utiliza a menudo en
enrutamiento y como una subrutina en otros algoritmos de grafos.

Algoritmo de Dijkstra

Para una fuente dada vrtice (nodo) en el grfico, el algoritmo encuentra el camino con menor coste (es decir, la ruta
ms corta) entre dicho vrtice y cada otro vrtice. Tambin se puede utilizar para encontrar los costos de las
trayectorias ms cortas desde un solo vrtice a un destino nico vrtice deteniendo el algoritmo una vez que el camino
ms corto para el vrtice destino ha sido determinado. Por ejemplo, si los vrtices de la grfica representan ciudades
y los costes de borde trazado representan conducir distancias entre pares de ciudades conectadas por un camino
directo, el algoritmo de Dijkstra se puede utilizar para encontrar la ruta ms corta entre una ciudad y todas las dems
ciudades. Como resultado, la trayectoria ms corta primero se utiliza ampliamente en la red protocolos de
enrutamiento , ms notablemente IS-IS y OSPF (Open Shortest primera trayectoria).
Algoritmo original de Dijkstra no utiliza una cola de prioridad min y se ejecuta en
. La idea de este
algoritmo tambin se da en ( Leyzorek et al. 1957 ). La implementacin basada en una cola de prioridad minimplementado por un montn de Fibonacci y funcionando en
se debe a ( Fredman y
Tarjan 1984 ). Esto es asintticamente ms rpido de lo conocido de una sola fuente algoritmo de ruta ms corta para
arbitrarias grafos dirigidos con pesos no negativos sin lmites.

Dijkstra algoritmo de tiempo de ejecucin


Clase

Bsqueda algoritmo

Estructura de los
datos

Grfico

Peor de los casos el


rendimiento

Contenido
1 Algoritmo
2 Descripcin
3 Pseudocdigo
4 Tiempo de funcionamiento
5 problemas y algoritmos relacionados
6 perspectiva de la programacin dinmica
7 Vase tambin
8 Notas
9 Referencias
10 Enlaces externos

Dijkstra's original algorithm does not use a min-priority queue and


runs in . The idea of this algorithm is also given in ( Leyzorek et al.
1957 ).
Sugiere una traduccin mejor

Algoritmo
Deje que el nodo en el que estamos empezando llamarse el nodo inicial . Deje que la distancia del nodo Y la distancia desde el
nodo inicial al algoritmo de Dijkstra Y. asignar algunos valores de la distancia inicial y trataremos de mejorar paso a paso.
1. Asignar a cada nodo un valor de distancia tentativa: la puso a cero para nuestro nodo inicial hasta el infinito y para todos los
dems nodos.
2. Marcar todos los nodos no visitados. Establecer el nodo inicial como actual. Crear un conjunto de los nodos no visitados
llamado el conjunto no visitado integrado por todos los nodos excepto el nodo inicial.
3. Para el nodo actual, considere todos sus vecinos no visitados y calcular sus tentativas distancias. Por ejemplo, si el nodo
actual A est marcada con una distancia provisional de 6, y el borde de conexin con un vecino B tiene una longitud de 2,
entonces la distancia de A a B (a travs de A) ser del 6 2 = 8. Si esta distancia es menor que la distancia previamente
grabada provisional de B, a continuacin, sobrescribir esa distancia. A pesar de que un vecino ha sido examinada, no se
marca como "visitado" en este momento, y sigue siendo en el conjunto no visitados .
4. Cuando terminemos teniendo en cuenta todos los vecinos del nodo actual, marque el nodo actual como visitado y retrela del
conjunto no visitados . Un nodo visitado nunca volver a comprobarse, su distancia registrada ahora es final y mnimo.
5. Si el nodo de destino ha sido marcado visitados (al planear una ruta entre dos nodos especficos) o si la distancia ms
pequea tentativo entre los nodos en el conjunto no visitado es infinito (cuando se planea un recorrido completo), y luego
se detiene. El algoritmo ha terminado.
6. Establecer el nodo no visitado marcado con la distancia ms pequea tentativa como el prximo "nodo actual" y vuelva al
paso 3.

Descripcin
Nota: Para facilitar la comprensin, esta discusin utiliza los trminos cruce , carretera y mapa - sin embargo, estos
trminos son formalmente vrtice , borde y grfico , respectivamente.

Ilustracin de bsqueda algoritmo


de Dijkstra para encontrar camino
desde un nodo de inicio a un nodo
objetivo en un robot planificacin de
movimientos problema. Nodos
abiertos representan la "tentativa" de
ajuste. Nodos se visitan los rellenos,
con el color que representa la
distancia: cuanto ms verde, ms
lejos. Los nodos en todas las
diferentes direcciones se exploran
de manera uniforme, apareciendo
como una ms o menos circular de
frente de onda como el algoritmo de
Dijkstra utiliza una heurstica
idnticamente igual a 0.

Suponga que quiere encontrar el camino ms corto entre dos intersecciones en un mapa de la ciudad, un punto de partida y un
destino. El orden es conceptualmente simple: para empezar, marque la distancia a cada interseccin en el mapa con el infinito. Esto
se hace no se interprete que hay una distancia infinita, pero observar que esa interseccin an no ha sido visitado ; algunas
variantes de este mtodo simplemente dejar la interseccin sin marcar. Ahora, en cada iteracin, seleccionar una corriente de interseccin. Para la primera iteracin de la
interseccin actual ser el punto de partida y la distancia a la misma (etiqueta de la interseccin) ser cero. Para las iteraciones subsiguientes (despus de la primera) de la
interseccin actual ser el ms cercano a la interseccin unvisited punto de partida-esto ser fcil de encontrar.
Desde la interseccin actual, actualizar la distancia para cada interseccin unvisited que est directamente conectado a l. Esto se realiza mediante la determinacin de la
suma de la distancia entre una interseccin no visitados y el valor de la interseccin actual, y volver a etiquetar la interseccin no visitados con este valor si es inferior a su
en.wikipedia.org/wiki/Dijkstra's_algorithm

1/4

01/11/12

Algoritmo de Dijkstra - Wikipedia, la enciclopedia libre

valor actual. En efecto, la interseccin se vuelve a etiquetar si la ruta de acceso a l a travs de la interseccin actual es ms corto que los caminos conocidos previamente.
Para facilitar la identificacin camino ms corto, a lpiz, marque el camino con una flecha que apunta a la interseccin relabeled si label / reetiquetado, y borrar todos los
otros que apuntan a la misma. Despus de haber actualizado las distancias a cada interseccin vecina , marque la interseccin actual como visitado y seleccione la
interseccin no visitados con menor distancia (desde el punto de partida) - o bajo la etiqueta como la interseccin actual. Los nodos marcados como visitados son
etiquetados con el camino ms corto desde el punto de partida para ello y no se volver a examinar o devuelto a.
Contine con este proceso de actualizacin de las intersecciones vecinas con las distancias ms cortas, entonces marca la interseccin actual como visitado y pasar a la
interseccin ms cercana no visitados hasta que haya marcado el destino como visitado. Una vez que haya marcado el destino como visitado (como es el caso con
cualquier interseccin visitado) que haya determinado el camino ms corto para que, desde el punto de partida, y puede trazar su camino de regreso, siguiendo las flechas
en sentido inverso.
Cabe destacar el hecho de que este algoritmo no hace ningn intento para dirigir "exploracin" hacia el destino como uno podra esperar. Ms bien, la nica consideracin
en la determinacin de la siguiente "actual" interseccin es la distancia desde el punto de partida. En cierto sentido, este algoritmo "se expande" desde el punto de partida,
teniendo en cuenta iterativa cada nodo que est ms cerca en trminos de distancia del camino ms corto hasta llegar al destino. Cuando se entiende de esta manera, est
claro cmo el algoritmo encuentra necesariamente el camino ms corto, sin embargo, tambin puede revelar una de las debilidades del algoritmo: su relativa lentitud en
algunas topologas.

Pseudocdigo
En el siguiente algoritmo, el cdigo u: = vrtice en Q ms pequea con dist [], las bsquedas de la vrtice uen el conjunto de vrtices Qque tiene al menos el
dist [ u ]valor. Vrtice que se retira del conjunto Qy devuelto al usuario. dist_between ( u , v )calcula la longitud entre los dos vecinos-nodos uy v. La
variable alten las lneas 20 y 22 es la longitud del camino desde el nodo raz hasta el nodo vecino vsi fuera a ir a travs de u. Si esta ruta es ms corta que la ruta ms
corta corriente registrado por v, la ruta actual se sustituye con este altcamino. La anteriormatriz se rellena con un puntero a la "next-hop" nodo en el grfico de origen
para obtener la ruta ms corta a la fuente.
Una
funcin Dijkstra ( grfico , fuente ):
/ / Initializations
2
para cada vrtice v en grfico :
3 dist [ v ]: = infinito;
funcin a distancia / en / desconocido de
4
/ / fuente para v
5 anterior [ v ]: = indefinido;
/ / siguiente nodo en la ruta ptima
6
/ / de fuente
7
8 dist [ fuente ]: = 0;
/ / Distancia desde la fuente a
9
Q : = el conjunto de todos los nodos del grfico ;
/ / Todos los nodos en el grfico son
10
/ / sin optimizar - por lo tanto estn en Q
11
, mientras que Q no es vaco:
/ / El bucle principal
12
u : = vrtice en Q con menor distancia en dist [];
/ / Start nodo en el primer caso
13 eliminar u de Q ;
14
si dist [ u ] = infinito:
15
descanso ;
/ / todos los vrtices restantes son
16
/ / inaccesible desde el cdigo fuente
17
/ / v donde an no ha sido
18
para cada vecino v de u :
19 retirados de Q.
alt : = dist [ u ] + dist_between ( u , v );
20
/ / Relax (u, v, a)
21
si alt <dist [ v ]:
22 dist [ v ]: = alt ;
23 anterior [ v ]: = u ;
/ / v Reordenar en la cola de
24-key disminucin v en Q ;
25
retorno dist;

Si slo estamos interesados


en un camino ms corto entre los vrtices origeny destino, podemos terminar la bsqueda en lnea 13 si u = blanco. Ahora podemos
leer el camino ms corto desde origena destinopor iteracin:
1
S : = secuencia vaca
u : = objetivo
2
3
, mientras que anterior [ u ] se define:
4 aplicaciones u al principio del S
5
u : = anterior [ u ]
6
fin mientras ;

Ahora secuencia Ses la lista de vrtices que constituyen una de las rutas ms cortas desde origena destino, o la secuencia vaca si no existe camino.
Un problema ms general sera la de encontrar todos los caminos ms cortos entre origeny destino(puede haber varios diferentes de la misma longitud). Entonces, en
lugar de almacenar nicamente un solo nodo en cada entrada anterior []queremos almacenar todos los nodos que satisfacen la condicin de relajacin. Por ejemplo, si
ambos Ry fuenteconectarse a dianay dos de ellos se encuentran en diferentes caminos ms cortos a travs de destino(ya que el coste del borde es la misma en
ambos casos), entonces podramos aadir tanto ry fuentepara anterior [ objetivo ]. Cuando el algoritmo termina, anterior []estructura de datos en realidad
se describir un grfico que es un subconjunto del grfico original con algunos bordes eliminados. Su propiedad clave ser que si el algoritmo se ejecuta con algn nodo de
partida, a continuacin, cada camino desde el nodo a cualquier otro nodo en el grfico de nuevo ser el camino ms corto entre los nodos en el grfico original, y todos los
caminos de esa longitud de el grfico original estar presente en la nueva grfica. Luego, para encontrar realmente todos estos caminos cortos entre dos nodos dados
usaramos un algoritmo de localizacin del surco en el grfico de nuevo, como la bsqueda en profundidad.

Tiempo de funcionamiento
Un lmite superior del tiempo de ejecucin de algoritmo de Dijkstra en un grfico con bordes
notacin de orden O .

y vrtices

Para cualquier aplicacin de vrtice establecer el tiempo de ejecucin es en


a cabo clave disminucin y extraer operaciones mnimas en conjunto , respectivamente.
La implementacin ms sencilla de las tiendas del algoritmo de Dijkstra vrtices del conjunto
simplemente una bsqueda lineal a travs de todos los vrtices

en.wikipedia.org/wiki/Dijkstra's_algorithm

se puede expresar como una funcin de


donde

usando la

son los tiempos necesarios para llevar

en una lista o una matriz comn vinculado, y el extracto mnimo de

. En este caso, el tiempo de ejecucin es

es
2/4

01/11/12

Algoritmo de Dijkstra - Wikipedia, la enciclopedia libre

simplemente una bsqueda lineal a travs de todos los vrtices

. En este caso, el tiempo de ejecucin es

Para los grafos dispersos , es decir, los grficos con mucho menos de
los bordes, el algoritmo de Dijkstra se puede implementar de manera ms eficiente
mediante el almacenamiento de la grfica en forma de listas de adyacencia y utilizando una pila binaria , el emparejamiento montn , o montn de Fibonacci como una cola
de prioridad para aplicar extraer mnimo eficiente. Con un montn binario, el algoritmo requiere
tiempo (que est dominada por
, suponiendo que el grafo es conexo). Para evitar la O (| V |) consulta en disminucin-key paso en un montn binario vainilla, es necesario mantener un
ndice suplementario asignacin de cada vrtice al ndice del montn (y mantenerlo al da como colas de prioridad cambios), por lo que es tener slo
el
tiempo en su lugar. El heap de Fibonacci mejora esto
.
Tenga en cuenta que para los grficos acclicos dirigidos , es posible encontrar caminos ms cortos desde un vrtice de inicio dado en el tiempo lineal, mediante el
procesamiento de los vrtices en un orden topolgico, y el clculo de la longitud de la trayectoria para cada vrtice a la longitud mnima obtenida a travs de cualquiera de
sus bordes entrantes. [ 3 ]

Problemas relacionados y algoritmos


La funcionalidad del algoritmo original de Dijkstra se puede ampliar con una variedad de modificaciones. Por ejemplo, a veces es deseable presentar soluciones que son
menos que matemticamente ptimo. Para obtener una lista clasificada de menos que ptimas soluciones, la solucin ptima se calcula primero. Un nico borde aparece en
la solucin ptima se retira de la grfica, y la solucin ptima a este grfico se calcula la nueva. Cada borde de la solucin original se suprime a su vez y se calcula un nuevo
camino ms corto. Las soluciones secundarias se clasifican y se presenta despus de la primera solucin ptima.
Algoritmo de Dijkstra es por lo general el principio de funcionamiento detrs de enrutamiento de estado de enlace protocolos , OSPF e IS-IS siendo las ms comunes.
A diferencia de algoritmo de Dijkstra, el algoritmo Bellman-Ford se puede utilizar en grficos con pesos de las aristas negativas, siempre que el grfico no contiene ningn
ciclo negativo accesible desde el vrtice fuente s . (La presencia de tales ciclos significa que no hay camino ms corto, ya que el peso total se convierte en cada vez ms
bajos se recorre el ciclo.)
El algoritmo A * es una generalizacin del algoritmo de Dijkstra que reduce el tamao de la subgrafo que debe ser explorado, si hay disponible informacin adicional que
proporciona un lmite inferior en la "distancia" a la diana. Este enfoque puede ser visto desde la perspectiva de la programacin lineal : hay un natural programa lineal para
las rutas ms cortas de computacin , y soluciones a su programa lineal dual son factibles si y slo si forman una heurstica consistente (hablando aproximadamente, ya que
las convenciones de signos difieren a partir de un lugar a otro en la bibliografa). Esta factible dual / heurstica consistente define un no negativo menor costo y A * se ejecuta
esencialmente algoritmo de Dijkstra con estos costos reducidos. Si el dual satisface la condicin ms dbil de la admisibilidad, entonces A * es lugar ms parecido al
algoritmo de Bellman-Ford.
El proceso que subyace en el algoritmo de Dijkstra es similar al proceso utilizado en codiciosos algoritmo de Prim . Prim propsito es encontrar un rbol de expansin
mnima que conecta todos los nodos del grafo; Dijkstra tiene que ver con slo dos nodos. Prim no evala el peso total de la ruta desde el nodo de inicio, slo el camino
individual.

perspectiva programacin dinmica


De una programacin dinmica punto de vista, el algoritmo de Dijkstra es un esquema de aproximacin sucesiva que resuelve la ecuacin de programacin dinmica
funcional para el problema del camino ms corto por el Reaching mtodo. [ 4 ] [ 5 ] [ 6 ]
De hecho, la explicacin de Dijkstra de la lgica del algoritmo, [ 7 ] es decir,
Problema 2. Encontrar el camino de longitud mnima total entre dos nodos dados
Usamos el hecho de que, si
.

es un nodo en el camino de mnima

, conocimiento de este ltimo implica el conocimiento de la trayectoria mnima de

al

es una parfrasis de Bellman famoso Principio de optimalidad en el contexto del problema del camino ms corto.

Vase tambin
Euclidiana camino ms corto
Rellenar
Larga trayectoria problema

Notas
1. ^ Dijkstra, Edsger, Thomas J. Misa, Editor (2010-08). "Una entrevista con Edsger W. Dijkstra." Communications of the ACM 53 (8): 41-47. doi : 10.1145/1787234.1787249
(http://dx.doi.org/10.1145%2F1787234.1787249) . "Cul es el camino ms corto para viajar a Rotterdam Groningen? Es el algoritmo de la ruta ms corta que he diseado en
unos 20 minutos. Una maana fui de compras con mi novia joven y cansado, se sent en la terraza de un caf a beber una taza de caf y me qued pensando si podra hacer
esto, y luego dise el algoritmo de la ruta ms corta. "
2. ^ Dijkstra 1959
3. ^ http://www.boost.org/doc/libs/1_44_0/libs/graph/doc/dag_shortest_paths.html
4. ^ Sniedovich, M. (2006). "algoritmo de Dijkstra revisited: la conexin de programacin dinmica" (http://matwbn.icm.edu.pl/ksiazki/cc/cc35/cc3536.pdf) ( PDF ). Journal of
Control y Ciberntica 35 (3): 599-620 . . http://matwbn.icm.edu.pl/ksiazki/cc/cc35/cc3536.pdf Versin en lnea del peridico con mdulos interactivos computacionales.
(http://www.ifors.ms.unimelb.edu.au/tutorial/dijkstra_new/index.html)
5. ^ . Denardo, EV (2003) Programacin Dinmica: Modelos y Aplicaciones . Mineola, NY: Dover Publications . ISBN 978-0-486-42810-9 .
6. ^ . Sniedovich, M. (2010) Programacin Dinmica: Fundamentos y Principios . Francis & Taylor . ISBN 978-0-8247-4099-3 .
7. ^ Dijkstra 1959 , p. 270

Referencias
Dijkstra, EW (1959). "Una nota sobre dos problemas en relacin con los grficos" (http://www-m3.ma.tum.de/twiki/pub/MN0506/WebHome/dijkstra.pdf) .
Numerische Mathematik 1 :. 269-271 doi : 10.1007/BF01386390 (http://dx.doi.org/10.1007%2FBF01386390) . http://wwwm3.ma.tum.de/twiki/pub/MN0506/WebHome/dijkstra.pdf .
en.wikipedia.org/wiki/Dijkstra's_algorithm

3/4

01/11/12

Algoritmo de Dijkstra - Wikipedia, la enciclopedia libre

Cormen, Thomas H. ; Leiserson, Charles E. , Rivest, Ronald L. ; Stein, Clifford (2001). "Artculo 24.3: algoritmo de Dijkstra." Introduccin a los Algoritmos
(Segunda ed.). MIT Press y McGraw-Hill . pp 595-601. ISBN 0-262-03293-7 .
Fredman, Michael Lawrence ; Tarjan, Robert E. . (1984) "montones de Fibonacci y sus usos en la mejora de los algoritmos de optimizacin de redes"
(http://www.computer.org/portal/web/csdl/doi/10.1109/SFCS.1984.715934) . Simposio 25a anual sobre Fundamentos de Ciencias de la Computacin ( IEEE
): 338-346. doi : 10.1109/SFCS.1984.715934 (http://dx.doi.org/10.1109%2FSFCS.1984.715934) .
http://www.computer.org/portal/web/csdl/doi/10.1109/SFCS.1984.715934 .
Fredman, Michael Lawrence ; Tarjan, Robert E. (1987). "montones de Fibonacci y sus usos en la mejora de los algoritmos de optimizacin de redes"
(http://portal.acm.org/citation.cfm?id=28874) . Revista de la Asociacin de Maquinaria de Computacin 34 (3): 596-615. doi : 10.1145/28869.28874
(http://dx.doi.org/10.1145%2F28869.28874) . http://portal.acm.org/citation.cfm?id=28874 .
Zhan, F. Benjamin; medioda, Charles E. (febrero de 1998). "Shortest Path Algoritmos: una evaluacin con Real Networks Road". Transporte Ciencia 32 (1):. 6573 doi : 10.1287/trsc.32.1.65 (http://dx.doi.org/10.1287%2Ftrsc.32.1.65) .
Leyzorek, M.; Gray, RS; Johnson, AA; Ladew, WC; Meaker, Jr., SR; Petry, RM; Seitz, RN (1957). Investigacin de Tcnicas Modelo - Primer informe anual
- 06 de junio 1956 - 1 de julio 1957 - Un Estudio de Tcnicas de modelo para los sistemas de comunicacin . Cleveland, Ohio: Case Institute of Technology.

Enlaces externos
Entrevista de historia oral con Edsger W. Dijkstra (http://purl.umn.edu/107247) , Charles Babbage Instituto de la Universidad de Minnesota, Minneapolis.
Algoritmo de Dijkstra en C # (http://www.codeproject.com/KB/recipes/ShortestPathCalculation.aspx)
Prioridad rpida implementacin de la cola del algoritmo de Dijkstra en C # (http://www.codeproject.com/KB/recipes/FastHeapDijkstra.aspx)
Applet de Carla Laffra de Pace University (http://www.dgp.toronto.edu/people/JamesStewart/270/9798s/Laffra/DijkstraApplet.html)
Animacin del algoritmo de Dijkstra (http://www.cs.sunysb.edu/~skiena/combinatorica/animations/dijkstra.html)
Visualizacin del Algoritmo de Dijkstra (http://students.ceid.upatras.gr/~papagel/english/java_docs/minDijk.htm)
Problema del camino ms corto: Algoritmo de Dijkstra (http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/dijkstra/Dijkstra.shtml)
Applet de Dijkstra Algoritmo (http://www.unf.edu/~wkloster/foundations/DijkstraApplet/DijkstraApplet.htm)
Open Source Java paquete de grficos con la aplicacin del algoritmo de Dijkstra (http://code.google.com/p/annas/)
Haskell implementacin del algoritmo de Dijkstra (http://bonsaicode.wordpress.com/2011/01/04/programming-praxis-dijkstras-algorithm/) sobre Bonsai cdigo
Java Implementacin del algoritmo de Dijkstra (http://algowiki.net/wiki/index.php?title=Dijkstra's_algorithm) en AlgoWiki
QuickGraph, Estructuras de Datos y Algoritmos grficas de. NET (http://quickgraph.codeplex.com/)
Implementacin en Boost C + + biblioteca (http://www.boost.org/doc/libs/1_43_0/libs/graph/doc/dijkstra_shortest_paths.html)
Implementacin en T-SQL (http://hansolav.net/sql/graphs.html)
Una biblioteca de Java para la ruta de bsqueda con el algoritmo de Dijkstra y el ejemplo de subprograma (http://www.stackframe.com/software/PathFinder)
Un programa de MATLAB para el algoritmo de Dijkstra (http://www.mathworks.com/matlabcentral/fileexchange/20025-advanced-dijkstras-minimum-pathalgorithm)
Obtenido de " 27s_algorithm% http://en.wikipedia.org/w/index.php?title=Dijkstra & oldid = 520802894 "
Categoras :1959 en la informtica Algoritmos de grafos Algoritmos de bsqueda Los algoritmos de enrutamiento Optimizacin combinatoria
Esta pgina fue modificada por ltima vez el 31 de octubre de 2012 a las 21:08.
El texto est disponible bajo la Licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia , condiciones adicionales pueden aplicar. Ver
Trminos de uso para ms detalles.
Wikipedia es una marca registrada de la Wikimedia Foundation, Inc. , una organizacin sin fines de lucro.

en.wikipedia.org/wiki/Dijkstra's_algorithm

4/4

You might also like