Es un algoritmo de bsqueda grafica que resuelve solo la fuente ms corta de un problema del camino para un grfico con los negativos de bordes costos de ruta, produciendo un camino ms corto al rbol. Este algoritmo se utiliza a menudo en la ruta y como una subrutina en otros algoritmos de grafos. Para una fuente dada de vrtice (nodo) en el grfico, el algoritmo encuentra la ruta con menor coste (es decir, el camino ms corto) entre el vrtice y cualquier otro vrtice.
Por ejemplo, si los vrtices de una grfica representan las ciudades y los costos de borde de ruta 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, el camino ms corto primera vez ampliamente utilizado en la red los protocolos de enrutamiento, en especial IS-IS y OSPF (Open ShortestPathFirst).
Modelo de la ruta ms corta: El problema de la ruta ms corta incluye un juego de nodos conectados donde solo un nodo es considerado como el origen y solo un nodo es considerado como el nodo destino. Su objetivo es determinar un camino de conexiones que minimizan la distancia total del origen al destino. El problema se resuelve por el algoritmo de etiquetado. La esencia del procedimiento es que analiza toda la red a partir del origen; identifica de manera sucesiva la ruta ms corta a cada uno de los nodos en orden ascendente de sus distancias (ms cortas), desde el origen; el problema queda resuelto en el momento de llegar al nodo destino.
Definicin del problema: *- se tiene n nodos, partiendo del nodo inicial1 y terminando en el nodo final n. *- arcos bi-direccionales conectan los nodos con distancias mayores que cero. *- se desea encontrar la ruta de mnima distancia que conecta el nodo 1 con el nodo n. Por medio de la aplicacin del algoritmo de este problema podemos conocer la menor distancia entre un nodo origen y un nodo destino.
Pasos a seguir: 1. Elaborar un cuadro con todos los nodos y los ramales que salen de l. 2. Partiendo del origen, debemos encontrar el nodo ms cercano a l. 3. Anular todos los ramales que entren al nodo ms cercano elegido. 4. Comenzando en el origen se debe encontrar el nodo ms cercano a l, por intermedio del nodo ya elegido y volver al tercer paso hasta llegar al destino.
Ejemplo del rbol de expansin mnima: Un rbol de expansin mnima es aquel que conecta todos los nodos dentro de una red que est en una distancia mnima y que no contiene un ciclo.
Pasos para elaborar un rbol de expansin mnima: Seleccionar cualquier nodo de la red o indicando segn el problema Colocar este nodo al ms cercano que minimice la distancia y proseguir considerando todos los nodos que estn conectados, escogiendo de igual manera el que tenga la mnima distancia, hasta incluir todos los nodos. Si los nodos son igual valor se selecciona uno arbitrariamente, y esto quiere decir que puede haber ms de una solucin ptima.
Caractersticas: *- determina el camino ms corto dado un vrtice origen. *- utiliza un tipo de estructura de cola llamado cola de prioridad.
Origen del algoritmo de dijkstra: Este algoritmo tambin llamado algoritmo de caminos mnimos, es un algoritmo para la determinar del camino ms corto dado un vrtice origen al resto de vrtices en un grafo con pesos en cada arista. Su nombre se refiere a Edsger Dijkstra, quien lo describi por primera vez en 1959. La idea subyacente en este algoritmoconsiste en ir explorando todos los caminos ms cortos que parten del vrtice origen y que llevan a todos los dems vrtices ; cuando se obtiene el camino ms corto desde el vrtice origen, al resto del vrtices que componen el grafo, el algoritmo se detiene. El algoritmo es una especializacin de la bsqueda de costos uniforme, y como tal, no funciona en grafos con aristas de costo negativo(al elegir siempre el nodo con distancia menor, pueden quedar excluidos de la bsqueda de nodos que en prximas iteraciones bajaran el costo general del camino al pasar por una arista con costo negativo).
Ruta ms corta solucin por el algoritmo de Dijkstra: Para solucionar el problema de la ruta ms corta entre dos nodos de un grafo se puede utilizar el algoritmo de Dijkstra, el cual sigue el siguiente procedimiento para calcular la ruta ms corta desde el nodo origen hasta cada uno de los nodos del grafo: Crear una lista de nodos para almacenar los nodos con distancia mnima ya calculada Crear una cola de prioridad para los nodos pendientes de evaluar Inserta el nodo de origen a la cola de prioridad Mientras que haya nodos en la cola de prioridad
extrae el primer nodo de la cola de prioridad (tmp) agrega el nodo tmp a la lista de nodos ya calculados genera una lista de los nodos conectados al nodo tmp que no estn en la lista de ya calculados Para cada nodo de la lista (nod)
calcula la distancia al origen con la distancia entre tmp y nod mas la distancia calculada entre el origen y tmp. Si el nodo nodest en la cola de prioridad lo agrega Si el nodo nod ya est en la cola de prioridad y la distancia con la que est guardado en la cola es menor, lo deja como esta y si no, lo actualiza con la distancia calculada.
Fin Fin
El algoritmo de Bellman-Ford:
Este algoritmo es una estructura bsica muy parecido al algoritmo de Dijkstra, pero en vez de seleccionar vorazmente el nodo de peso mnimo aun sin procesar para relajarlo, simplemente relaja todas las aristas, y lo hace V-1 veces, siendo V el nmero de vrtices en el grafo. Las repeticiones permiten a las distancias mnimas recorrer el rbol, ya que en la ausencia de ciclos negativos, el camino ms corto solo visita cada vrtice una vez. A diferencia de la solucin voraz, la cual depende de la suposicin de que los pasos sean positivos, esta solucin se aproxima ms al caso general.
Existen dos versiones: Versin no optimatizada para grafos con ciclos negativos, cuyo coste de tiempo es O(VE) Versin optimatizada para grafos con aristas de peso negativo, pero en el grafo no existen ciclos de coste negativo, cuyo coste de tiempo, es tambin O (VE).
Aplicaciones de encaminamiento: Una variante distribuida al algoritmo del Bellman-Ford se usa en protocolos de encaminamiento basados en vector de distancias, por ejemplo el protocolo de encaminamiento de informacin (RIP). El algoritmo es distribuido porque envuelve unas series de nodos (routers) dentro de un sistema autnomo (AS), un conjunto de redes y dispositivos router IP administrados tpicamente por un Proveedor de Servicios de Internet (ISP). Se compone de los siguientes pasos: 1. Cada nodo calcula la distancia entre el mismo y todos los dems dentro de un AS y almacena esta informacin en una tabla. 2. Cada nodo enva su tabla a todos los nodos vecinos. 3. Cuando un nodo recibe las tablas de distancias de sus vecinos, este calcula la ruta ms corta a los dems nodos y actualiza su tabla para reflejar los cambios.
Las desventajas principales del algoritmo de Bellman-Ford en este ajuste son: No es escala bien. los cambios en la topologa de red no se reflejan rpidamente ya que las actualizaciones se distribuyen nodo por nodo. Contando hasta el infinito (si un fallo de enlace o nodo hace que un nodo sea inalcanzable desde un conjunto de otros nodos, estos pueden estar siempre aumentando gradualmente sus clculos de distancia a l, y mientras tanto puede haber bucles de enrutamiento).