Está en la página 1de 20

D i j k s t r a

Algoritmo de
D i j k s t r a

B U S I

N E S S

T E M P

L A T E
CONTENIDO Algoritmo de Dijkstra

01 02 03 04 05
Algoritmo de Teoría de Grafos Complejidad Pseudocódigo Analisis Dinámico
Dijkstra Estudios Previos
01
Algoritmo de
Dijkstra
Algoritmo de Dijkstra

El algoritmo de Dijkstra, nombrado así a su creador, es uno de los recursos algorítmicos mayormente consolidadas y de gran uso en varias industrias, este, basado en los
estudios de la teoría de grafos y, el estudio por parte de Edsger Dijkstra, que fue un científico informático holandés, dió a conocer al público su algoritmo en 1959. El
algoritmo da solución, o bien fija las bases para uno de los problemas que a la fecha sigue en crecimiento, entre mayores grupos relacionados entre ellos, encontrar la ruta
o el camino mínimo entre ellos,partiendo de origen o inicio y teniendo en cuenta las condiciones de entrada para su aplicación, las cuales son:

1.Grupos que cuenten entre ellos con clasificación o no.


2.Que sean cíclicos.
3.Peso que no sea negativo entre sus arcos.

Este algoritmo encuentra aplicación en múltiples contextos como lo son: optimización en la construcción de redes (agua, telecomunicaciones, carretera, circuito, etc.) o la
organización y evaluación de rutas de tiempo de ejecución en el campo de la robótica.
Supongamos que tenemos un gráfico con n vértices marcados por enteros {1, 2,. , ∞} y que uno de estos nodos es el nodo inicial y otro nodo es el nodo de destino. El peso
en el arco que une los nodos j y k se indica con p (j, k). Al final del análisis, se deben adjuntar dos etiquetas a cada nodo, f (i) que indica el peso total de la ruta(la suma de
los pesos en las rutas de arco para llegar al nodo i - ésimo) y J (i) que indica el nodo que precede a i en la ruta mínima. También definimos dos conjuntos S y T que
contienen respectivamente los nodos a los que las etiquetas ya se han asignado y los que aún no se han escaneado.
La siguiente imágen es una
representación del grafo a resolver
mediate el algoritmo de Dijkstra:
En todos los problemas que se tenga la construcción de una red,

encontrar la ruta mínima ya sea la más corta, más rápida, más barata

entre dos puntos, uno de salida y otro de llegada.

Con el algoritmo de Dijkstra es posible obtener no solo la ruta mínima

entre un punto de partida y un punto de llegada, sino el árbol de los

caminos mínimos, es decir, todas las rutas mínimas entre un punto de

partida y todos los demás puntos de la red.

Un ejemplo, aunque sencillo, por que se realiza en la jornada laboral

todos los días, sería el problema en el que desea calcular la ruta

mínima entre el hogar y el lugar de trabajo.

Se representa como nodos todas las rutas posibles para llegar al trabajo.

Si, lo que se requiere es medir el tiempo, para obtener la ruta de menor tiempo, entonces la

unión entre cada nodo será el tiempo que toma recorrer desde el nodo 1 hasta el siguiente

nodo, con ello y el algoritmo se obtendrá como resultado el camino más rápido a recorrer

entre el hogar y el lugar de trabajo.


Por otro lado si lo que se requiere determinar es la ruta más barata,

entonces considera que la unión o arcos entre los puntos por los

cuales pasas son los precios de hacerlo, con ello se obtendrá el

camino más barato, que puede ser no el más rápido, pero si el de

menor coste.

Así pues es cómo el Algoritmo de Dijkstra, ayuda en nuestros días a

resolver de forma ordenada problemas iterativos o de repetición,

obteniendo con ello siempre la ruta más corta, más rápida, de menor

coste, etc. según la red que se quiera analizar y resolver.


02
Teoría de Grafos
Estudios Previos
Te o r í a d e G r a f o s
Es una rama de la matemática y las ciencias de la computación que estudia las
propiedades de los grafos que su representación matemática es: G(V,E), que
tiene sus fundamentos en la matemática discreta y las matemáticas aplicadas. El
origen del estudio se remonta al siglo XVIII con el problema de los puentes de
Königsberg, el cual consistía en encontrar un camino que recorriera los siete
puentes del río Pregel en la ciudad de Königsberg, actualmente Kaliningrado, de
modo que se recorrieran todos los puentes pasando una sola vez por cada uno
de ellos

Luego, en 1847, Gustav Kirchhoff utilizó la teoría de grafos para el análisis de


redes eléctricas.

En 1852, Francis Guthrie planteó el problema de los cuatro colores, el cual


afirma que es posible, utilizando solamente cuatro colores, colorear cualquier
mapa de países de tal forma que dos países vecinos nunca tengan el mismo
color; resuelto hasta un siglo después por Kenneth Appel y Wolfgang Haken en
1976, puede ser considerado como el nacimiento de la teoría de grafos. Al tratar
de resolverlo, los matemáticos definieron términos y conceptos teóricos
fundamentales de los grafos.
Te o r í a d e G r a f o s
En 1857, Arthur Cayley estudió y resolvió el problema de enumeración de los
isómeros, compuestos químicos con idéntica composición (fórmula) pero
diferente estructura molecular.

El primer libro sobre teoría de grafos fue escrito por Dénes Kőnig y publicado en
1936.

En 1852, Francis Guthrie planteó el problema de los cuatro colores, el cual


afirma que es posible, utilizando solamente cuatro colores, colorear cualquier
mapa de países de tal forma que dos países vecinos nunca tengan el mismo
color; resuelto hasta un siglo después por Kenneth Appel y Wolfgang Haken en
1976, puede ser considerado como el nacimiento de la teoría de grafos. Al tratar
de resolverlo, los matemáticos definieron términos y conceptos teóricos
fundamentales de los grafos.
Pequeña Biografía

Si estudiamos la vida de Edsger Wybe Dijkstra nos daremos cuenta de varios puntos importantes
sobre su primer sociedad, su padre un importante químico en su país, su madre una matemática
dos puntos importantes aún no aplicados por él, pero estudiados por sobre “todo”, crece y se
desenvuelve en un nicho de estudio matemático fuerte, y que bajo su dirección, estudió
matemáticas y física, la parte que omito es donde estudia y se gradua de derecho para tomarse
“años sabáticos”, ya que nunca ejerció, al contrario regresa al mundo matemático de forma seria
llegando así a la Universidad de Texas en donde ocupó el Schlumberger Centennial Chair in
Computer Sciences, apartir de aquí es donde en sus aportaciones a la ciencia genera la solución
del problema del camino más corto, también conocido como el algoritmo de Dijkstra y de ahí a la
fecha su legado permanece y se acentúa en cada grupo que se requiera enlazar entre si formando
una red.
03
La complejidad
Complejidad
El algoritmo de Dijkstra es un algoritmo eficiente de

complejidad O(n2) donde n es el número de vértices de la

red.
04
Pseudocódigo
Paso 1. S ← {vinicial} //Inicialmente S contendrá el vértice //origen

Paso 2. Para cada v∈V, v ≠ vinicial, hacer

2.1. D[v] ← C[vinicial, v] //Inicialmente el costo del //camino mínimo de vinicial a v es lo contenido en //la matriz de costos

2.2. P[v] ← vinicial //Inicialmente, el //predecesor de v en el camino mínimo construido //hasta el momento es vinicial

Paso 3. Mientras (V – S ≠ 0) hacer //Mientras existan vértices para //los cuales no se ha determinado el //camino mínimo

3.1. Elegir un vértice w∈(V-S) tal que D[w] sea el mínimo.

3.2. S ← S ∪ {w} //Se agrega w al conjunto S, pues ya se //tiene el camino mínimo hacia w

3.3. Para cada v∈(V-S) hacer

3.3.1. D[v] ← min(D[v],D[w]+C[w,v]) //Se escoge, entre //el camino mínimo hacia v que se tiene //hasta el momento, y el camino hacia v //pasando por

w mediante su camino mínimo, //el de menor costo.

3.3.2. Si min(D[v],D[w]+C[w,v]) = D[w]+C[w,v] entonces P[v] ← w //Si se escoge ir por w entonces //el predecesor de v por el momento es w

Paso 4. Fin
05
Analisis
Dinámico
Suponiendo

La siguiente red
Se obtendrá la siguiente solución de caminos más cortos
Programación Dinámica para el Algoritmo de Dijkstra
Como el algoritmo es iterativo la forma dinámica de reducir la complejidad será guardando la
matriz solución para determinar sin iteraciones el camino más corto, es decir validar el número
total de grafos una sola ocasión y los resultados que serán los mismos en las siguientes
consultas solo sumar el costo desde el origen hacia el destino en cada nueva consulta siendo asi
costo de viajar desde A a F dando como resultado
G(A,B) + G(B,F) = 85 +165

Sin tener que calcular los nodos nuevamente ya que e grafo o


red original no ha cambiado.
D i j k s t r a

F I N

B U S I

N E S S

T E M P

L A T E

También podría gustarte