Algoritmo de Dijkstra
Edsger Wyde Dijkstra
Nacido en Rotterdam, (Holanda) en 1930, su padre era químico y su madre matemática. con 12 años, entró en Gymnasium Erasminium, una escuela para estudiantes especialmente brillantes, donde dio clases de Griego, Latín, Francés, Alemán, Inglés, biología, matemáticas y química. Debido a su facilidad para la química, las matemáticas y la física, entró en la Universidad de Leiden, donde decidió estudiar física teórica. Después de asistir a un curso de programación en la Universidad de Cambridge, empezó a trabajar en el Centro Matemático en Amsterdam, donde se incrementó su creciente interés en la programación. Cuando terminó la carrera se dedicó a problemas relacionados con la programación. El resto de su vida se dedico a la investigación y desarrollo de diversos problemas de programación hasta su reciente muerte en el año 2002
En 1959, Dijkstra anunció su algoritmo de caminos mínimos o también llamado ruta mas corta o árbol mínimo
Algoritmo de Dijkstra
Propuesto en 1959 el algoritmo de caminos mínimos o también llamado ruta mas corta o árbol mínimo o simplemente algoritmo de Dijkstra es un algoritmo para determinar el camino o ruta mas corta desde un nodo de origen hacia los demás nodos del grafo, en el cual cada arista o arco posee un peso. Se siguen una serie de pasos y consideraciones que veremos a continuación
Pasos para su aplicación
Para realizar la aplicación del algoritmo de Dijkstra, se aplican los siguientes pasos:
1. Se elige un nodo de inicio al cual se le marcara un peso de la siguiente forma:
[X,Y](N)
Donde ‘X’ equivale a el valor del recorrido actual de los arcos, ‘Y’ equivale a el nodo predecesor o de origen y ‘N’ al numero de iteración u operación actual
2. A los nodos adyacentes del nodo seleccionado como nodo de inicio, se deben asignar un peso de igual forma al punto anterior, ( [X,Y](N) )
3. De los nodos con los pesos calculados se toma el nodo con menor valor en X y este será el siguiente a visitar
Pasos para su aplicación
4. Los pasos 2 y 3 deben repetirse teniendo en cuenta que si al intentar calcular los pesos para los nodos adyacentes a un nodo que esta siendo visitado, uno de estos ya tiene un peso asignado, deben calcularse los demás pesos cuantas veces sean necesario, y siempre se tomara el peso mínimo calculado
5. Los nodos pueden ser visitados una sola vez
Ejemplo de aplicación: Nodo de inicio A
Pseudocódigo
Dijkstra (G,s)
Inicializar
for cada v perteneciente a V[G]
do d[v] = infinito
p[v] = nulo
d[s] = 0
S = vacio
Q = V[G]
mientras Q no vacío
do u = nodo v con min d[v]
S = S unión u 'se añade al conjunto de nodos finalizados
for cada v perteneciente Adyacente u
if d[v] > d[u] + w(u,v) then
d[v] = d[u] + w(u,v)
p(v) = u
Aplicaciones
Encaminamiento de paquetes por routers
Enrutamiento de Aviones y trafico aéreo
Movilidad terrestre
Sistemas de geolocalisacion
No hay comentarios.:
Publicar un comentario