Algoritmo de Bellman Ford para solucionar el problema de la ruta ms corta entre nodos

 

Bellman Ford algorithm to solve the shortest path problem between nodes

 

Algoritmo de Bellman Ford para resolver o problema do caminho mais curto entre ns

 

Edgar Gualberto Salazar-lvarez II
edgar.salazar@espoch.edu.ec
https://orcid.org/0000-0003-0988-0641
Juan Carlos Yungn-Cazar I
jyungan@espoch.edu.ec
https://orcid.org/0000-0001-5682-0399
Jhon Eduardo Villacrs-Sampedro III
jhon.villacres@espoch.edu.ec
https://orcid.org/0000-0002-8064-9680
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Correspondencia: jyungan@espoch.edu.ec

 

 

Ciencias Tecnologas de la Informacin y la Comunicacin

Artculo de Investigacin

* Recibido: 23 de mayo de 2022 *Aceptado: 12 de junio de 2022 * Publicado: 19 de julio de 2022

 

       I.          Magster en Interconectividad de Redes, Ingeniero en Sistemas Informticos, Escuela Superior Politcnica de Chimborazo, Riobamba, Ecuador.

      II.          Magster en Matemtica Bsica, Ingeniero en Sistemas, Escuela Superior Politcnica de Chimborazo. Riobamba, Ecuador.

    III.          Mster Universitario en Tecnologa Educativa y Competencias Digitales, Magster en Desarrollo de la Inteligencia y Educacin, Ingeniero en Sistemas, Escuela Superior Politcnica de Chimborazo, Riobamba, Ecuador.


Resumen

Conocer la historia de la ruta ms corta es algo impredecible, ya que el problema del camino ms corto se ha venido presentando desde la antigedad, por ejemplo: encontrar caminos cortos hacia la comida. Es por ello que se consideraba un problema elemental y fcil de resolver. Aos ms tarde investigadores desarrollaron mtodos para dar una solucin independiente a problemas como: rutas con menos trfico, caminos en un laberinto, enrutamiento alternativo, llamadas a larga distancia, etc.). Su evolucin a dar soluciones ha permitido desarrollar mtodos matriciales para el camino ms corto de longitud unitaria. El mtodo Bellman-Ford permite encontrar la ruta ms corta con un algoritmo ms simple, maneja arcos negativos y su tiempo de ejecucin es menor, lo que le convierte en el mtodo a ser estudiado.

Palabras Clave: Bellman-Ford; Algoritmo; Ruta ms corta.

 

Abstract

Knowing the history of the shortest route is somewhat unpredictable, since the problem of the shortest path has been present since ancient times, for example: finding short routes to food. That is why it was considered an elementary problem and easy to solve. Years later, researchers developed methods to provide an independent solution to problems such as: routes with less traffic, paths in a maze, alternative routing, long distance calls, etc.). Its evolution to provide solutions has allowed the development of matrix methods for the shortest path of unit length. The Bellman-Ford method allows finding the shortest path with a simpler algorithm, it handles negative arcs and its execution time is shorter, which makes it the method to be studied.

Keywords: Bellman-Ford; Algorithm; Shortest route.

 

Resumo

Conhecer a histria do caminho mais curto algo imprevisvel, pois o problema do caminho mais curto est presente desde a antiguidade, por exemplo: encontrar caminhos curtos para alimentao. Por isso era considerado um problema elementar e de fcil soluo. Anos depois, pesquisadores desenvolveram mtodos para fornecer uma soluo independente para problemas como: rotas com menos trfego, caminhos em labirinto, roteamento alternativo, chamadas de longa distncia etc.). Sua evoluo para fornecer solues permitiu o desenvolvimento de mtodos matriciais para o caminho mais curto de comprimento unitrio. O mtodo de Bellman-Ford permite encontrar o caminho mais curto com um algoritmo mais simples, trata arcos negativos e seu tempo de execuo menor, o que o torna o mtodo a ser estudado.

Palavras-chave: Bellman-Ford; Algoritmo; Rota mais curta.

Introduccin

Encontrar la ruta ms corta, radica en hallar un camino entre un nodo origen y un nodo destino. Estos nodos se encuentran enlazados directa o indirectamente a travs de arcos que tienen una ponderacin, el cual puede ser entendido como costo, distancia, tiempo, etc. El algoritmo de Bellman Ford, soluciona el problema de la ruta ms corta, empleando teora de grafos y anlisis y diseo de algoritmos.

Es importante entender que un grafo es una dupla compuesta por un conjunto finito de vrtices, tambin llamados nodos y tpicamente dibujados por crculos y un conjunto que llamaremos conjunto de aristas. Mientras que, un algoritmo es una secuencia finita y ordenada de pasos para realizar una tarea en forma precisa.

Las redes de datos (grafos) utilizan protocolos para establecer comunicacin entre diferentes equipos denominados host. Estos protocolos (algoritmos) estn gobernados por reglas que determinan su comportamiento. El enrutamiento de mensajes entre equipos (nodos/routers) se lo hace a travs de protocolos que garantizan la conectividad entre redes.

 

Desarrollo

La red (grafo) es un tipo comn de estructura de datos que ofrece una visin holstica y descendente para dar sentido a diversos sistemas interactivos, incluidos los sistemas sociales, los sistemas biolgicos, los sistemas de trfico, los sistemas de comunicacin, etc., que se ven muy afectados por una pequea porcin de nodos influyentes, tambin llamados propagadores influyentes. Dichos nodos desempean un papel fundamental y pueden enriquecer significativamente nuestra comprensin de los sistemas mencionados. Por ejemplo, ser capaces de detectar eficaz y adecuadamente los nodos influyentes nos permite controlar la propagacin de epidemias, disear un plan de marketing vlido, evitar que la red elctrica falle, predecir el flujo de trfico futuro e identificar protenas esenciales. (Liu et al., 2021)

Un grafo est formado por dos conjuntos

  • , un conjunto de vrtices (tambin llamados nodos)
  • , un conjunto de aristas (cada arista est asociada a dos vrtices).

En las situaciones de modelizacin, las aristas se utilizan para expresar algn tipo de relacin entre los vrtices. (Pruim, s. f.)

La teora de grafos proporciona un lenguaje para hablar de las propiedades de las relaciones. Disear algoritmos de grafos realmente novedosos es una tarea muy difcil. La clave para utilizar eficazmente los algoritmos de grafos en las aplicaciones reside en modelar correctamente el problema para poder aprovechar los algoritmos existentes. Familiarizarse con muchos problemas algortmicos de grafos diferentes es ms importante que entender los detalles de los algoritmos de grafos particulares. (Skiena, 2008)

 

La ruta ms corta

Si tenemos dos vrtices en un grafo y mltiples caminos entre ellos, entonces hay un camino ms corto en esa coleccin. Ese camino no es necesariamente nico. El problema del camino ms corto es el proceso de encontrar el camino ms corto entre dos vrtices de un grafo. Podemos considerarlo como la ruta ms eficiente a travs del grafo.

Otra forma de considerar el problema del camino ms corto es recordar que un camino es una serie de relaciones derivadas. El camino ms corto es la serie con la derivacin ms corta, o la relacin ms cercana. Dado que un grafo modela relaciones, a menudo nos interesan las relaciones ms cercanas. (Shortest Path Problem - an overview | ScienceDirect Topics, s. f.)

El problema de la ruta ms corta es uno de los problemas de optimizacin de redes ms fundamentales. Este problema surge en la prctica y surge como un subproblema en muchos algoritmos de optimizacin de redes. (Cherkassky et al., 1996)

 

Algoritmos bsicos

Los algoritmos ms importantes para resolver los problemas de camino ms corto son:

  • La bsqueda de amplitud y la bsqueda de profundidad se refieren a diferentes rdenes de bsqueda; para la bsqueda de profundidad, se pueden encontrar casos en los que su implementacin ingenua no encuentra una solucin ptima, o no termina.
  • El algoritmo de Dijkstra resuelve el problema del camino ms corto de una sola fuente si todos los pesos de las aristas son mayores o iguales a cero. Sin empeorar la complejidad del tiempo de ejecucin, este algoritmo puede, de hecho, calcular los caminos ms cortos desde un punto de partida s dado a todos los dems nodos.
  • El algoritmo de Bellman-Ford tambin resuelve el problema de los caminos ms cortos de una sola fuente, pero a diferencia del algoritmo de Dijkstra, los pesos de las aristas pueden ser negativos.
  • El algoritmo de Floyd-Warshall resuelve el problema de las rutas ms cortas de todos los pares.
  • El algoritmo A* resuelve el problema del camino ms corto de una sola fuente para costes de aristas no negativos. (Shortest Path Problem - an overview | ScienceDirect Topics, s. f.)

 

Mtodo

La eleccin del mtodo ms adecuado y su correcta ejecucin es lo que impulsa a realizar una buena investigacin. Para el presente trabajo se ha considerado el mtodo mixto (cualitativo y cuantitativo), ya que se est contemplado:

  1. Se har uso de las tcnicas documentales y de experimento. La tcnica documental para la recoleccin de informacin a travs de publicaciones en revistas cientficas. La tcnica del experimento con el uso del programa para el anlisis de grafos.
  2. El Anlisis y aplicacin paso a paso del algoritmo de Bellman Ford se la realiza en una hoja de trabajo (Tabla 1)
  3. Anlisis y diseo de un programa escrito en Java que permita implementar el algoritmo de Bellman Ford.

 

Anlisis

Algoritmo de Bellman-Ford

Este algoritmo busca la estructura del grafo y genera la mejor solucin. Resuelve el problema del camino ms corto de fuente nica en el que los pesos de los bordes pueden ser negativos. El algoritmo de Bellman-Ford para las rutas ms cortas es casi completamente intuitivo y devuelve un valor booleano que indica si hay o no un ciclo de peso negativo al que se puede acceder desde la fuente. Entonces, cuando hay un ciclo, el algoritmo indica que no existe una solucin, pero cuando no la hay, el algoritmo produce los caminos ms cortos y su peso. Adems, la base es la siguiente: dado un grfico con vrtices, la mayor cantidad de arcos que puede haber en un camino ms corto es . Esto se demuestra fcilmente por induccin. El camino ms corto tiene ms de , entonces debe tener un circuito negativo, de manera similar, un grfico con un circuito negativo tendr un camino ms corto de n o ms arcos. Todas estas observaciones conducen al algoritmo Bellman-Ford. (Mukhlif & Saif, s. f.) (Figura 1)

 

 

 

 

 

 


Figura 1: Proceso del algoritmo de Bellman Ford

Fuente: (Patel, 2014)

 

Algoritmo 1. Bellman Ford, Ruta mnima

.

 

Pseudocdigo del algoritmo Bellman-Ford

  1. Inicialice todos los vrtices y establezca su distancia desde la fuente a un valor alto, como infinito, y establezca el valor de distancia para la fuente en 0 valores
  2. Repita lo siguiente para el nmero de tiempos tales como: para cada arista que pertenece al grfico dibujado si distanciaentonces la , lo que significa que la distancia se actualiza.
  3. Repita los siguientes pasos para cada borde que pertenece al grfico dibujado si entonces no existe ningn ciclo negativo - peso entre el origen y el destino.
  4. Devuelve los valores de distancia para todos los nodos una vez completadas todas las iteraciones. (Mukhlif & Saif, s. f.)

 

Funcionamiento

Al igual que otros problemas de programacin dinmica, el algoritmo calcula las rutas ms cortas de forma ascendente. Primero calcula las distancias ms cortas que tienen como mximo un borde en la ruta. Luego, calcula los caminos ms cortos con 2 aristas como mximo, y as sucesivamente. Despus de la i-sima iteracin del bucle exterior, se calculan los caminos ms cortos con como mximo i aristas. Puede haber un mximo de |V| 1 aristas en cualquier camino simple, por eso el ciclo externo ejecuta |v| - 1 vez. La idea es, asumiendo que no hay un ciclo de peso negativo, si hemos calculado las rutas ms cortas con como mximo aristas i, entonces una iteracin sobre todas las aristas garantiza dar la ruta ms corta con aristas como mximo (i+1). (BellmanFord Algorithm | DP-23, 2012)

Este algoritmo tiene las ventajas de:

  • Minimizacin de costes.
  • Maximizacin del rendimiento.
  • Permite dividir el trfico.

Desventajas:

  • En el protocolo de enrutamiento no se tiene en cuenta las ponderaciones.
  • Respuesta lenta a los cambios en la topologa de red. (Singh et al., 2018)

 

Diseo de clases: (Figura 2:)

Grfico

Descripcin generada automticamente

Figura 2: Diagrama de clases

Fuente: Juan C. Yungn-Cazar.

 

 

Implementacin del programa

Clase Vertex: En esta clase se implementa los nodos. Est compuesta por los atributos nombre, estado de visitado, lista de aristas asociadas a los nodos, distancia mnima, y nodo antecesor. (Figura 3)

 

Figura 3: Implementacin clase Vertex (Nodo)

Fuente: Juan C. Yungn-Cazar.

Clase Edge: En esta clase se implementa las aristas que conectan a los nodos. Est compuesta por los atributos ponderacin o peso; referencia de nodo inicial y referencia de nodo final. (Figura 4)

 

Interfaz de usuario grfica, Texto, Aplicacin, Correo electrnico

Descripcin generada automticamente

Figura 4: Implementacin clase Edge (Arista)

Fuente: Juan C. Yungn-Cazar.

 

Clase BellmanFord: En esta clase se impelenta el algorirmo de Bellman Ford. Est compuesta por los atributos lista de nodos (vertexList) y lista de aristas (edgexList). (Figura 5)

 

Figura 5: Implementacin clase BellmanFord

Fuente: Juan C. Yungn-Cazar.

 

Escenario de aplicacin

Se disea un grafo dirigido con 9 nodos que representan a diferentes ciudades del pas y las aristas representan a las conexiones viales entre ellas con su respectiva distancia. (Figura 6)

Figura 6: Escenario propuesto

Fuente: Juan C. Yungn-Cazar.

 

Clase App: En esta clase se implementa el escenario de estudio. (Figura 7)

Interfaz de usuario grfica, Texto, Aplicacin

Descripcin generada automticamente

Figura 7: Implementacin clase App (Escenario de pruebas)

Fuente: Juan C. Yungn-Cazar.

 

 

 

Resultados

 

Tabla 1: Resultados del anlisis y aplicacin paso a paso del algoritmo

 

Quito

Latacunga

Ambato

Riobamba

Macas

Nueva Loja

F. Orellana

Puyo

Tena

Quito

0

109

149

210

367

255

337

251

511

Latacunga

Infinito

0

40

101

258

Infinito

Infinito

142

Infinito

Ambato

Infinito

Infinito

0

61

218

Infinito

Infinito

102

Infinito

Riobamba

Infinito

Infinito

Infinito

0

157

Infinito

Infinito

Infinito

Infinito

Macas

Infinito

Infinito

Infinito

Infinito

0

Infinito

Infinito

Infinito

Infinito

Nueva Loja

Infinito

Infinito

Infinito

Infinito

456

0

82

330

256

F. Orellana

Infinito

Infinito

Infinito

Infinito

374

Infinito

0

248

174

Puyo

Infinito

Infinito

Infinito

Infinito

126

Infinito

Infinito

0

Infinito

Tena

Infinito

Infinito

Infinito

Infinito

200

Infinito

Infinito

74

0

 

Tabla 2: Resultados de rutas mnimas calculadas por el programa

ORIGEN

DESTINO

COSTE

RUTA

Quito

Latacunga

109

Latacunga = Quito, Latacunga

Quito

Ambato

149

Ambato = Quito, Latacunga, Ambato

Quito

Riobamba

210

Riobamba = Quito, Latacunga, Ambato, Riobamba

Quito

Macas

367

Macas = Quito, Latacunga, Ambato, Riobamba, Macas

Quito

Nueva Loja

255

Nueva Loja = Quito, Nueva Loja

Quito

F.Orellana

337

F. Orellana = Quito, Nueva Loja, F. Orellana

Quito

Puyo

251

Puyo = Quito, Latacunga, Ambato, Puyo

Quito

Tena

511

Tena = Quito, Nueva Loja, F. Orellana, Tena

ORIGEN

DESTINO

COSTE

RUTA

Latacunga

Ambato

40

Ambato = Latacunga, Ambato

Latacunga

Riobamba

101

Riobamba = Latacunga, Ambato, Riobamba

Latacunga

Macas

258

Latacunga, Ambato, Riobamba, Macas

Latacunga

Puyo

142

Puyo = Latacunga, Ambato, Puyo

ORIGEN

DESTINO

COSTE

RUTA

Ambato

Riobamba

61

Riobamba = Ambato, Riobamba

Ambato

Macas

218

Macas = Ambato, Riobamba, Macas

Ambato

Puyo

102

Puyo = Ambato, Puyo

ORIGEN

DESTINO

COSTE

RUTA

Riobamba

Macas

157

Macas = Riobamba, Macas

ORIGEN

DESTINO

COSTE

RUTA

Nueva Loja

Macas

456

Macas = Nueva Loja, F. Orellana, Tena, Puyo, Macas

Nueva Loja

F. Orellana

82

F. Orellana = Nueva Loja, F. Orellana

Nueva Loja

Puyo

330

Puyo = Nueva Loja, F. Orellana, Tena, Puyo

Nueva Loja

Tena

256

Tena = Nueva Loja, F. Orellana, Tena

ORIGEN

DESTINO

COSTE

RUTA

F.Orellana

Macas

374

Macas = F. Orellana, Tena, Puyo, Macas

F.Orellana

Puyo

248

Puyo = F. Orellana, Tena, Puyo

F.Orellana

Tena

174

Tena = F. Orellana, Tena

ORIGEN

DESTINO

COSTE

RUTA

Tena

Macas

200

Macas = Tena, Puyo, Macas

Tena

Puyo

74

Puyo = Tena, Puyo

ORIGEN

DESTINO

COSTE

RUTA

Puyo

Macas

126

Macas = Puyo, Macas

 

El camino ms corto calculado por el algoritmo tomando como nodo origen Quito hasta el nodo destino Macas es el que visita los nodos: Latacunga con una ponderacin de 109 Km, Ambato (40 Km) con una ponderacin acumulada de 149 Km, Riobamba (61 Km) con una ponderacin acumulada de 210 Km; hasta llegar al nodo destino Macas (157 Km) con una ponderacin total de 367 Km.

El siguiente camino ms corto calculado por el algoritmo tomando como nodo origen Quito hasta el nodo destino Macas es el que visita los nodos: Latacunga con una ponderacin de 109 Km, Ambato (40 Km) con una ponderacin acumulada de 149 Km, Puyo (102 Km) con una ponderacin acumulada de 251 Km; hasta llegar al nodo destino Macas (126 Km) con una ponderacin total de 377 Km.

El camino ms largo calculado por el algoritmo tomando como nodo origen Quito hasta el nodo destino Macas es el que visita los nodos: Nueva Loja con una ponderacin de 255 Km, Francisco de Orellana (82 Km) con una ponderacin acumulada de 337 Km, Tena (174 Km) con una ponderacin acumulada 511 Km, Puyo (74 Km) con una ponderacin acumulada de 585 Km; hasta llegar al nodo destino Macas (126 Km) con una ponderacin total de 711 Km.

 

Conclusiones

Un grafo es una representacin grfica de nodos (ciudades, routers) conectados por arcos (carreteras, enlaces seriales)

La ruta mnima o camino ms corto simplemente es la distancia entre nodos (origen y destino) con menor distancia.

El problema del camino ms corto es recordar que un camino es una serie de relaciones derivadas. El camino ms corto es la serie con la derivacin ms corta o la relacin ms cercana. Dado que un grfico est modelando relaciones, a menudo nos interesan las relaciones ms cercanas.

El algoritmo de Bellman Ford plantea una solucin al problema de la ruta ms corta, pero no es el nico, por ejemplo, para resolver este problema tambin existe el algoritmo de Dijkstra.

El tiempo de ejecucin del algoritmo de Bellman Ford es bajo (microsegundos) lo que le convierte en un mtodo muy eficiente para un pequeo nmero de nodos.

Encontrar la ruta ms corta, por lo general es un problema frecuente en temas de logstica y transporte, las redes de comunicacin de datos; entre las ms importantes.

reas del conocimiento involucrada: Teora de grafos, Anlisis y diseo de algoritmos, Estructura de datos, Algebra lineal, Logstica y transporte, Redes de computadoras, etc.

 

Referencias

  1. BellmanFord Algorithm | DP-23. (2012, diciembre 1). GeeksforGeeks. https://www.geeksforgeeks.org/bellman-ford-algorithm-dp-23/
  2. Cherkassky, B. V., Goldberg, A. V., & Radzik, T. (1996). Shortest paths algorithms: Theory and experimental evaluation. Mathematical Programming, 73(2), 129-174. https://doi.org/10.1007/BF02592101
  3. Liu, Y., Wei, X., Chen, W., Hu, L., & He, Z. (2021). A graph-traversal approach to identify influential nodes in a network. Patterns, 2(9), 100321. https://doi.org/10.1016/j.patter.2021.100321
  4. Moreno, E. (2012). Grafos: Fundamentos y Algoritmos. Santiago de Chile, Chile: Editorial ebooks Patagonia - J.C. Sez Editor.
  5. Recuperado de https://elibro.net/es/ereader/espoch/68438?page=82.
  6. Mukhlif, F., & Saif, A. (s. f.). Comparative Study On Bellman-Ford And Dijkstra Algorithms. 6.
  7. Patel, V. (2014). A survey paper of Bellman-ford algorithm and Dijkstra algorithm for finding shortest path in GIS application. 4(1), 3.
  8. Prez Aguila, R. (2013). Una introduccin a las matemticas discretas y teora de grafos. El Cid Editor.
  9. Recuperado de https://elibro.net/es/lc/espoch/titulos/36562
  10. Pruim, R. (s. f.). 1 Introduction to Graphs | Graphs. Recuperado 27 de junio de 2022, de https://rpruim.github.io/m252/S19/from-class/graphs/introduction-to-graphs.html#graphs
  11. Reid, A. y Lorenz, J. (2018). Introduccin al enrutamiento y la conmutacin en la empresa: gua de estudio de CCNA Discovery. Pearson Educacin.
  12. Recuperado de: https://elibro.net/es/lc/espoch/titulos/53862
  13. Rodrguez Villalobos, A. (2017). Grafos: software para la construccin, edicin y anlisis de grafos. Bubok Publishing S.L.
  14. Recuperado de https://elibro.net/es/lc/espoch/titulos/55604
  15. Shortest Path ProblemAn overview | ScienceDirect Topics. (s. f.). Recuperado 27 de junio de 2022, de https://www.sciencedirect.com/topics/computer-science/shortest-path-problem
  16. Singh, J. B., Tripathi, R. C., & Research, D. (2018). Investigation of BellmanFord Algorithm, Dijkstras Algorithm for suitability of SPP. 6(1), 4.
  17. Skiena, S. S. (2008). The Algorithm Design Manual. Springer London. https://doi.org/10.1007/978-1-84800-070-4

 

 

 

2022 por los autores. Este artculo es de acceso abierto y distribuido segn los trminos y condiciones de la licencia Creative Commons Atribucin-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)

(https://creativecommons.org/licenses/by-nc-sa/4.0/).

Enlaces de Referencia

  • Por el momento, no existen enlaces de referencia
';





Polo del Conocimiento              

Revista Científico-Académica Multidisciplinaria

ISSN: 2550-682X

Casa Editora del Polo                                                 

Manta - Ecuador       

Dirección: Ciudadela El Palmar, II Etapa,  Manta - Manabí - Ecuador.

Código Postal: 130801

Teléfonos: 056051775/0991871420

Email: polodelconocimientorevista@gmail.com / director@polodelconocimiento.com

URL: https://www.polodelconocimiento.com/