algoritmos
El algoritmo de Dijkstra
Su nombre se refiere a Edsger Dijkstra, quien lo describió por primera vez en 1959.
Este algoritmo se conoce como el algoritmode caminos mínimos, se destaca para la determinación del camino más corto dado un vértice origen al resto de vértices.
El algoritmo de Dijkstra determina la ruta más corta desde un nodoorigen hacia los demás nodos para ello es requerido como entrada un grafo cuyas aristas posean pesos. Algunas consideraciones:
Si los pesos de mis aristas son de valor 1, entoncesbastará con usar el algoritmo de BFS.
Si los pesos de mis aristas son negativos no puedo usar el algoritmo de Dijsktra, para pesos negativos tenemos otro algoritmo llamado Algoritmo deBellman-Ford.
El algoritmo de Bellman-Ford
Reconocido como el algoritmo de Bell-End-Ford, genera el camino más corto en un Grafo dirigido ponderado.
Este algoritmo fue desarrolladopor Richard Bellman, Samuel End y Lester Ford.
Comparación
El algoritmo de Dijkstra y el de Bellman-Ford resuelven el mismo problema solo que el de Dijkstra lo realiza en un tiempomenor, pero el de bellman-ford requiere que los pesos de las aristas no sean negativos.
Como trabaja
El algoritmo parte de un vértice origen que será ingresado, a diferencia deDijkstra que utiliza una técnica voraz para seleccionar vértices de menor peso y actualizar sus distancias mediante el paso de relajación, Bellman-Ford simplemente relaja todas las aristasy lo hace |V| – 1 veces, siendo |V| el número de vértices del grafo.
Para la detección de ciclos negativos realizamos el paso de relajación una vez más y si se obtuvieron mejoresresultados es porque existe un ciclo negativo, para verificar porque tenemos un ciclo podemos seguir relajando las veces que queramos y seguiremos obteniendo mejores resultados.
Regístrate para leer el documento completo.