El problema de enrutamiento de k rutas más cortas es una generalización del problema de enrutamiento de ruta más corta en una red dada. No solo busca la ruta más corta, sino también las siguientes k-1 rutas más cortas (que pueden ser más largas que la ruta más corta). Una variante del problema es el de las k rutas más cortas sin bucles.
Es posible encontrar k caminos más cortos extendiendo el algoritmo de Dijkstra o el algoritmo de Bellman-Ford .
Historia
Desde 1957, se han publicado numerosos artículos sobre el problema de enrutamiento de k rutas más cortas. La mayoría de los trabajos fundamentales se realizaron entre la década de 1960 y 2001. Desde entonces, la mayor parte de la investigación se ha centrado en las aplicaciones del problema y sus variantes. En 2010, Michael Günther et al. publicaron un libro sobre el cálculo simbólico de k rutas más cortas y medidas relacionadas con la herramienta de álgebra de procesos estocásticos CASPA . [ 1 ]
Algoritmo
El algoritmo de Dijkstra se puede generalizar para encontrar los k caminos más cortos.
Variaciones
Existen dos variantes principales del problema de enrutamiento de k rutas más cortas. En una variante, se permite que las rutas visiten el mismo nodo más de una vez, creando así bucles. En otra variante, se requiere que las rutas sean simples y sin bucles . La versión con bucles se puede resolver utilizando el algoritmo de Eppstein [ 2 ] y la variante sin bucles se puede resolver mediante el algoritmo de Yen [ 3 ] [ 4 ] .
Variante en bucle
En esta variante, el problema se simplifica al no requerir que los caminos sean sin bucles. [ 4 ] BL Fox dio una solución en 1975 en la que los k caminos más cortos se determinan en una complejidad temporal asintótica de O ( m + kn log n ) (usando la notación de la gran O ). [ 5 ] En 1998, David Eppstein informó un enfoque que mantiene una complejidad asintótica de O ( m + n log n + k ) al calcular una representación implícita de los caminos, cada uno de los cuales puede generarse en un tiempo adicional de O ( n ). [ 2 ] [ 4 ] En 2015, Akiba et al. idearon un método de indexación como una alternativa significativamente más rápida para el algoritmo de Eppstein, en el que se construye una estructura de datos llamada índice a partir de un grafo y luego se pueden obtener rápidamente las k distancias superiores entre pares arbitrarios de vértices. [ 6 ]
Variante sin bucle
En la variante sin bucles, los caminos tienen prohibido contener bucles, lo que añade un nivel adicional de complejidad. [ 4 ] Se puede resolver utilizando el algoritmo de Yen [ 3 ] [ 4 ] para encontrar las longitudes de todos los caminos más cortos desde un nodo fijo a todos los demás nodos en una red de n nodos con distancia no negativa, una técnica que requiere solo 2 n 2 sumas y n 2 comparaciones, menos que otros algoritmos de camino más corto disponibles . La complejidad del tiempo de ejecución es pseudopolinomial , siendo O ( kn ( m + n log n )) (donde m y n representan el número de aristas y vértices, respectivamente). [ 3 ] [ 4 ] En 2007, John Hershberger y Subhash Suri propusieron un algoritmo de rutas de reemplazo, una implementación más eficiente del algoritmo de Lawler [ 7 ] y Yen con una mejora de O ( n ) en el tiempo para un gran número de grafos, pero no para todos ellos (por lo tanto, no cambia la cota asintótica del algoritmo de Yen). [ 8 ]
Algunos ejemplos y descripción
Ejemplo 1
El siguiente ejemplo utiliza el modelo de Yen para encontrar k rutas más cortas entre nodos finales que se comunican. Es decir, encuentra la ruta más corta, la segunda más corta, etc., hasta la k -ésima ruta más corta. Puede encontrar más detalles aquí . El código proporcionado en este ejemplo intenta resolver el problema de enrutamiento de k rutas más cortas para una red de 15 nodos que contiene una combinación de enlaces unidireccionales y bidireccionales.

Ejemplo 2
Otro ejemplo es el uso del algoritmo de k rutas más cortas para el seguimiento de múltiples objetos. Esta técnica implementa un sistema de seguimiento de múltiples objetos basado en el algoritmo de enrutamiento de k rutas más cortas. Se utiliza un conjunto de mapas de ocupación probabilísticos como entrada. Un detector de objetos proporciona dicha entrada.
Encontrará todos los detalles en " Laboratorio de Visión por Computadora – CVLAB".
Ejemplo 3
Another use of k shortest paths algorithms is to design a transit network that enhances passengers' experience in public transportation systems. Such an example of a transit network can be constructed by putting traveling time under consideration. In addition to traveling time, other conditions may be taken depending upon economical and geographical limitations. Despite variations in parameters, the k shortest path algorithms finds the most optimal solutions that satisfies almost all user needs. Such applications of k shortest path algorithms are becoming common, recently Xu, He, Song, and Chaudhry (2012) studied the k shortest path problems in transit network systems.[9]
Applications
The k shortest path routing is a good alternative for:
- Geographic path planning
- Network routing, especially in optical mesh network where there are additional constraints that cannot be solved by using ordinary shortest path algorithms.
- Hypothesis generation in computational linguistics
- Sequence alignment and metabolic pathway finding in bioinformatics
- Multiple object tracking as described above
- Road Networks: road junctions are the nodes (vertices) and each edge (link) of the graph is associated with a road segment between two junctions.
Related problems
- The breadth-first search algorithm is used when the search is only limited to two operations.
- The Floyd–Warshall algorithm solves all pairs shortest paths.
- Johnson's algorithm solves all pairs' shortest paths, and may be faster than Floyd–Warshall on sparse graphs.
- Perturbation theory finds (at worst) the locally shortest path.
Cherkassky et al.[10] provide more algorithms and associated evaluations.
See also
Notes
- ↑Günther, Michael; Schuster, Johann; Siegle, Markus (2010-04-27). "Symbolic calculation of k-shortest paths and related measures with the stochastic process algebra tool CASPA". Symbolic calculation of k-shortest paths and related measures with the stochastic process algebra tool CASPA. ACM. pp. 13–18. doi:10.1145/1772630.1772635. ISBN 978-1-60558-916-9.
- 12Eppstein, David (1998). "Finding the k Shortest Paths"(PDF). SIAM J. Comput.28 (2): 652–673. doi:10.1137/S0097539795290477.
- 1 2 3 Yen, JY (1971). "Encontrar los k caminos sin bucles más cortos en una red". Management Science . 1 7 (11): 712– 716. doi : 10.1287/mnsc.17.11.712 ..
- 1 2 3 4 5 6 Bouillet, Eric; Ellinas, Georgios; Labourdette, Jean-Francois; Ramamurthy, Ramu (2007). "Enrutamiento de rutas – Parte 2: Heurísticas" . Enrutamiento de rutas en redes ópticas de malla . John Wiley & Sons . págs. 125–138 . ISBN 9780470015650.
- ↑ Fox, BL (1975). " K -ésimo camino más corto y aplicaciones a las redes probabilísticas". Reunión Nacional Conjunta ORSA/TIMS . 23 : B263.ID de artículo nacional de CiNii : 10012857200.
- ↑ Akiba, Takuya; Hayashi, Takanori; Nori, Nozomi; Iwata, Yoichi; Yoshida, Yuichi (enero de 2015). "Consultas eficientes de distancia de ruta más corta Top - k en redes grandes mediante etiquetado de puntos de referencia podados" . Actas de la Vigésimo Novena Conferencia AAAI sobre Inteligencia Artificial . Austin, TX: Asociación para el Avance de la Inteligencia Artificial . págs. 2–8 .
- ↑ Lawler, Eugene L. (1972-03-01). "Un procedimiento para calcular las K mejores soluciones a problemas de optimización discreta y su aplicación al problema del camino más corto" . Management Science . 18 (7): 401– 405. doi : 10.1287/mnsc.18.7.401 . ISSN 0025-1909 .
- ↑ Hershberger, John ; Maxel, Matthew; Suri, Subhash (2007). "Finding the k Shortest Simple Paths: A New Algorithm and its Implementation" (PDF) . ACM Transactions on Algorithms . 3 (4). Artículo 45 (19 páginas). doi : 10.1145/1290672.1290682 . S2CID 10703503 .
- ↑ Xu, Wangtu; He, Shiwei; Song, Rui; Chaudhry, Sohail S. (2012). "Encontrar los k caminos más cortos en una red de tránsito basada en horarios". Computers & Operations Research . 39 (8): 1812– 1826. doi : 10.1016/j.cor.2010.02.005 . S2CID 29232689 .
- ↑Cherkassky, Boris V.; Goldberg, Andrew V.; Radzik, Tomasz (1996). "Shortest paths algorithms: Theory and experimental evaluation". Mathematical Programming. 73 (2): 129–174. Bibcode:1996MatPr..73..129C. doi:10.1007/BF02592101. ISSN 0025-5610. S2CID 414427.
External links
- Implementation of Yen's algorithm
- Implementation of Yen's and fastest k shortest simple paths algorithms
- http://www.technical-recipes.com/2012/the-k-shortest-paths-algorithm-in-c/#more-2432
- Multiple objects tracking technique using K-shortest path algorithm: http://cvlab.epfl.ch/software/ksp/
- Computer Vision Laboratory: http://cvlab.epfl.ch/software/ksp/
- Network theory
- Polynomial-time problems
- Graph algorithms
- Computational problems in graph theory
