Yurasi / POI

PLAN OPERATIVO INSTITUCIONAL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

demo

Yurasi opened this issue · comments

commented

ALGORITMO DE DIJKSTRA

GRAFO

En matemáticas y ciencias de la computación, un grafo (del griego grafos: dibujo, imagen) es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto.

redes

APLICACIONES

  • Se utiliza para diferentes áreas por ejemplo, síntesis de circuitos secuenciales, dibujo computacional.
    circuitodosmallas
  • Para la administración de proyectos, utilizamos técnicas como técnica de revisión y evaluación de programas (PERT).
  • Para las ciencias sociales, verifica la importancia de cada actor dentro de la red. Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al identificar los vínculos (aristas), su dirección e intensidad y da idea de la manera en que el poder se transmite y a quiénes.
    430px-social-network svg
  • En la biología y hábitat.
  • Se usa para la solución de problemas de genética.
  • Red de computadoras.
    gsm_network_architecture
  • Para modelar trayectos como el de una línea de autobús a través de las calles de una ciudad, en el que podemos obtener caminos óptimos para el trayecto aplicando diversos algoritmos.
    1280px-west_midlands_uk_location_map svg

DESCRIPCIÓN

También llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto dado un nodo origen al resto de nodos en un grafo con pesos en cada arista.
El camino más corto de un nodo a otro consiste en determinar el camino de menor costo, desde un nodo u a otro nodo v. El costo de un camino es la suma de los costos (pesos) de los arcos que lo conforman.

dijkstra_animation

CARACTERÍSTICAS DEL ALGORITMO

  • Es un algoritmo greddy, utiliza el principio de que para que un camino sea óptimo, todos los caminos que contiene también deben ser óptimos
  • Trabaja por etapas, y toma en cada etapa la mejor solución sin considerar consecuencias futuras.
  • El óptimo encontrado en una etapa puede modificarse posteriormente si surge una solución mejor. Al proceso de actualizar las distancias tomando como punto intermedio al nuevo vértice se le conoce como relajación.
  • El algoritmo es una especialización de la búsqueda de costo uniforme, y como tal, no funciona en grafos con aristas de costo negativo

¿CÓMO TRABAJA?

Primero marcamos todos los nodos como no utilizados. El algoritmo parte de un nodo origen que será ingresado, a partir de ese nodo evaluaremos sus adyacentes, como dijkstra usa una técnica greedy entre todos los nodos adyacentes, buscamos el que esté más cerca de nuestro punto origen, lo tomamos como punto intermedio y vemos si podemos llegar más rápido a través de este nodo a los demás. Después escogemos al siguiente más cercano (con las distancias ya actualizadas) y repetimos el proceso. Esto lo hacemos hasta que el nodo no utilizado más cercano sea nuestro destino.

EJEMPLO

Se tiene el siguiente grafo.
1

Se escoge el nodo inicio, en este caso el nodo A. Luego se marca en el nodo la distancia desde el nodo anterior, pero como no lo hay, se deja nulo.
2

De los nodos adyacentes de A, se marca el peso acumulado junto con el nodo antecesor, es decir, A.
3

De los nodos ya visitados, se escoge el nodo de menos peso acumulado, en este caso, el nodo C.
4

Se toman los nodos adyacentes a C que no estén marcados de gris y se calculan sus pesos acumulados, sumando el que ya se tiene con el peso de la siguiente ruta, entonces:

  • Para B: 5+4=9. Como el nodo B ya poseía un peso acumulado de 6, no se modifica.
  • Para D: 5+6=11. El nodo C ya poseía un peso de 8, por lo tanto tampoco se modifica.
    El grafo no sufre cambio alguno

De los nodos visitados y no marcados, se busca el de menor peso acumulado, en este caso, el nodo B.
5

De los nodos adyacentes de B, se marca el peso acumulado junto al nodo antecesor (nodo B), entonces:

  • Para E: 6+3=9.
  • Para D: 6+5=11. Pero D ya poseía un peso de 8, así que no sufre cambio alguno.
    El grafo queda entonces así:
    6

De los nodos ya visitados y no marcados con gris, se toma el de menor peso, en este caso el D.
7

De los nodos adyacentes de D que no están marcados, se calculan los pesos acumulados:

  • Para E: 8+2=10. Como E poseía un peso de 9, no se modifica.
    El grafo no tiene cambio alguno.

Como queda solo un nodo por seleccionar, se da por terminado el algoritmo, con el que ya se puede determinar la ruta más corta del nodo de inicio a otro.
8

Teniendo en cuenta la solución, se marca el camino de menor distancia tomando como guía el nodo antecesor, hasta llegar al destino requerido.
9

Direcciones inteligentes Con tecnología de Modelo de gráficos mejorada de OSRM

seleccion_029

seleccion_027

seleccion_028

seleccion_030

REFERENCIA

Smart Directions Powered by OSRM’s Enhanced Graph Model