Articulo de referencia

problema del camino más largo

El camino más largo en el grafo bipartito completo K m , n coloreado de rojo. En teoría de grafos e informática teórica , el problema del camino más largo consiste en encontrar ...

El camino más largo en el grafo bipartito completo K m , n coloreado de rojo.

En teoría de grafos e informática teórica , el problema del camino más largo consiste en encontrar un camino simple de longitud máxima en un grafo dado . Un camino se denomina simple si no tiene vértices repetidos ; su longitud puede medirse por el número de aristas o (en grafos ponderados ) por la suma de los pesos de sus aristas. A diferencia del problema del camino más corto , que puede resolverse en tiempo polinomial en grafos sin ciclos de peso negativo, el problema del camino más largo es NP-difícil , y la versión de decisión del problema, que pregunta si existe un camino de al menos una longitud dada, es NP-completa . Esto significa que el problema de decisión no puede resolverse en tiempo polinomial para grafos arbitrarios a menos que P = NP . También se conocen resultados de mayor dificultad que demuestran que es difícil aproximarlo . Sin embargo, tiene una solución en tiempo lineal para grafos dirigidos acíclicos , lo que tiene importantes aplicaciones en la búsqueda del camino crítico en problemas de planificación.

NP-dureza

La NP-dificultad del problema del camino más largo sin ponderación se puede demostrar mediante una reducción del problema del camino hamiltoniano : un grafo G tiene un camino hamiltoniano si y solo si su camino más largo tiene longitud n  1, donde n es el número de vértices en G. Dado que el problema del camino hamiltoniano es NP-completo, esta reducción muestra que la versión de decisión del problema del camino más largo también es NP-completa. En este problema de decisión, la entrada es un grafo G y un número k ; la salida deseada es si G contiene un camino de k o más aristas, y no en caso contrario. [ 1 ]

Si el problema del camino más largo pudiera resolverse en tiempo polinomial, podría utilizarse para resolver este problema de decisión, encontrando el camino más largo y comparando su longitud con el número k . Por lo tanto, el problema del camino más largo es NP-difícil. La pregunta "¿existe un camino simple en un grafo dado con al menos k aristas?" es NP-completa. [ 2 ] 

En grafos completos ponderados con pesos de aristas no negativos, el problema del camino más largo ponderado es el mismo que el problema del camino del viajante , porque el camino más largo siempre incluye todos los vértices. [ 3 ]

Grafos acíclicos

El camino más largo entre dos vértices dados s y t en un grafo ponderado G es lo mismo que el camino más corto en un grafo −G derivado de G cambiando cada peso por su negación. Por lo tanto, si se pueden encontrar caminos más cortos en −G , entonces también se pueden encontrar caminos más largos en G. [ 4 ]

Para la mayoría de los grafos, esta transformación no es útil porque crea ciclos de longitud negativa en − G . Pero si G es un grafo acíclico dirigido (DAG), entonces no se pueden crear ciclos negativos, y se puede encontrar un camino más largo en G en tiempo lineal aplicando un algoritmo de tiempo lineal para caminos más cortos en − G , que también es un grafo acíclico dirigido. [ 4 ] Para un DAG, el camino más largo desde un vértice de origen a todos los demás vértices se puede obtener ejecutando el algoritmo de camino más corto en − G .

De manera similar, para cada vértice v en un DAG dado, la longitud del camino más largo que termina en v se puede obtener mediante los siguientes pasos:

  1. Encuentra un orden topológico del DAG dado.
  2. Para cada vértice v del DAG, en el orden topológico, calcule la longitud del camino más largo que termina en v , considerando sus vecinos entrantes y sumando uno a la longitud máxima registrada para dichos vecinos. Si v no tiene vecinos entrantes, establezca la longitud del camino más largo que termina en v en cero. En ambos casos, registre este valor para que los pasos posteriores del algoritmo puedan acceder a él.

Una vez hecho esto, se puede obtener el camino más largo en todo el DAG comenzando en el vértice v con el mayor valor registrado, luego retrocediendo repetidamente hasta su vecino entrante con el mayor valor registrado e invirtiendo la secuencia de vértices encontrados de esta manera.

Esto es equivalente a ejecutar el algoritmo de ruta más corta en − G .

Rutas críticas

El método de la ruta crítica para programar un conjunto de actividades implica la construcción de un grafo dirigido acíclico en el que los vértices representan hitos del proyecto y las aristas representan actividades que deben realizarse después de un hito y antes del siguiente; cada arista se pondera con una estimación del tiempo que tomará completar la actividad correspondiente. En dicho grafo, la ruta más larga desde el primer hito hasta el último es la ruta crítica, que describe el tiempo total para completar el proyecto. [ 4 ]

Los caminos más largos de los grafos acíclicos dirigidos también pueden aplicarse en el dibujo de grafos en capas : asignar cada vértice v de un grafo acíclico dirigido G a la capa cuyo número es la longitud del camino más largo que termina en v da como resultado una asignación de capas para G con el número mínimo posible de capas. [ 5 ]

Aproximación

Björklund, Husfeldt y Khanna (2004) escriben que el problema del camino más largo en grafos no dirigidos no ponderados "es conocido por la dificultad de entender su dureza de aproximación". [ 6 ] El mejor algoritmo de aproximación en tiempo polinomial conocido para este caso logra solo una razón de aproximación muy débil,norte/exp(Ω(registronorte)){\displaystyle n/\exp(\Omega ({\sqrt {\log n}}))}. [ 7 ] Para todosϵ>0{\displaystyle \epsilon >0}, no es posible aproximar el camino más largo con un factor de2(registronorte)1ϵ{\displaystyle 2^{(\log n)^{1-\epsilon }}}a menos que NP esté contenido dentro de un tiempo determinista cuasipolinomial ; sin embargo, existe una gran brecha entre este resultado de inaproximabilidad y los algoritmos de aproximación conocidos para este problema. [ 8 ]

En el caso de grafos dirigidos pero no ponderados, se conocen resultados de inaproximabilidad fuertes. Para cadaϵ>0{\displaystyle \epsilon >0}El problema no se puede aproximar con un factor denorte1ϵ{\displaystyle n^{1-\epsilon }}a menos que P = NP, y con supuestos más fuertes de la teoría de la complejidad no se puede aproximar dentro de un factor denorte/registro2+ϵnorte{\displaystyle n/\log ^{2+\epsilon }n}. [ 6 ] La técnica de codificación por colores se puede utilizar para encontrar caminos de longitud logarítmica, si existen, pero esto da una relación de aproximación de soloO(norte/registronorte){\displaystyle O(n/\log n)}. [ 9 ]

Complejidad parametrizada

El problema del camino más largo es tratable con parámetros fijos cuando se parametriza por la longitud del camino. Por ejemplo, se puede resolver en un tiempo lineal con respecto al tamaño del grafo de entrada (pero exponencial con respecto a la longitud del camino), mediante un algoritmo que realiza los siguientes pasos:

  1. Realizar una búsqueda en profundidad del grafo.d{\displaystyle d}sea ​​la altura del árbol de búsqueda en profundidad resultante .
  2. Utilice la secuencia de caminos de raíz a hoja del árbol de búsqueda en profundidad, en el orden en que fueron recorridos por la búsqueda, para construir una descomposición de caminos del grafo, con ancho de caminod{\displaystyle d}.
  3. Aplique programación dinámica a esta descomposición de caminos para encontrar el camino más largo en tiempoO(d¡2dnorte){\displaystyle O(d!2^{d}n)}, dóndenorte{\displaystyle n}es el número de vértices en el grafo.

Dado que la ruta de salida tiene una longitud al menos tan grande comod{\displaystyle d}, el tiempo de ejecución también está limitado porO(¡2norte){\displaystyle O(\ell !2^{\ell }n)}, dónde{\displaystyle \ell }es la longitud del camino más largo. [ 10 ] Usando codificación de colores, la dependencia de la longitud del camino se puede reducir a una exponencial simple. [ 9 ] [ 11 ] [ 12 ] [ 13 ] Una técnica de programación dinámica similar muestra que el problema del camino más largo también es tratable con parámetros fijos cuando se parametriza por el ancho del árbol del grafo.

Para grafos con ancho de clique acotado , el camino más largo también se puede resolver mediante un algoritmo de programación dinámica de tiempo polinomial. Sin embargo, el exponente del polinomio depende del ancho de clique del grafo, por lo que este algoritmo no es tratable con parámetros fijos. El problema del camino más largo, parametrizado por el ancho de clique, es difícil para la clase de complejidad parametrizada.W[1]{\displaystyle W[1]}, lo que demuestra que es improbable que exista un algoritmo tratable con parámetros fijos. [ 14 ]

Clases especiales de grafos

Un algoritmo de tiempo lineal para encontrar el camino más largo en un árbol fue propuesto por Edsger Dijkstra alrededor de 1960, mientras que una demostración formal de este algoritmo se publicó en 2002. [ 15 ] Además, un camino más largo puede calcularse en tiempo polinomial en árboles ponderados, en grafos de bloques , en cactus , [ 16 ] en grafos de permutación bipartitos , [ 17 ] y en grafos ptolemaicos . [ 18 ]

Para la clase de gráficos de intervalos , unO(norte4){\displaystyle O(n^{4})}Se conoce un algoritmo de tiempo polinomial que utiliza un enfoque de programación dinámica. [ 19 ] Este enfoque de programación dinámica se ha explotado para obtener algoritmos de tiempo polinomial en las clases más amplias de grafos de arcos circulares [ 20 ] y de grafos de cocomparabilidad (es decir, de los complementos de los grafos de comparabilidad , que también contienen grafos de permutación ), [ 21 ] ambos con el mismo tiempo de ejecución.O(norte4){\displaystyle O(n^{4})}. Este último algoritmo se basa en propiedades especiales del ordenamiento de vértices de búsqueda en profundidad lexicográfica (LDFS) [ 22 ] de grafos de cocomparabilidad. Para los grafos de cocomparabilidad también existe un algoritmo alternativo de tiempo polinomial con mayor tiempo de ejecución.O(norte7){\displaystyle O(n^{7})}es conocido, que se basa en el diagrama de Hasse del conjunto parcialmente ordenado definido por el complemento del grafo de co-comparabilidad de entrada. [ 23 ]

Además, el problema del camino más largo se puede resolver en tiempo polinomial en cualquier clase de grafos con ancho de árbol o ancho de clique acotado, como los grafos hereditarios de distancia . Finalmente, es claramente NP-difícil en todas las clases de grafos en las que el problema del camino hamiltoniano es NP-difícil, como en los grafos divididos , los grafos circulares y los grafos planares .

Un modelo simple de un grafo dirigido acíclico es el modelo de Price , desarrollado por Derek J. de Solla Price para representar redes de citas . Este es lo suficientemente simple como para permitir encontrar resultados analíticos para algunas propiedades. Por ejemplo, la longitud del camino más largo, desde el n-ésimo nodo agregado a la red hasta el primer nodo de la red, escala como [ 24 ].ln(norte){\displaystyle \ln(n)}.

Véase también

Referencias

  1. Schrijver, Alexander (2003), Optimización combinatoria: poliedros y eficiencia, Volumen 1 , Algoritmos y combinatoria, vol.  24, Springer, pág.  114, ISBN 9783540443896.
  2. ^ Cormen, Thomas H .; Leiserson, Charles E .; Rivest, Ronald L .; Stein, Clifford (2001), Introducción a los algoritmos (2ª ed.), MIT Press, pág. 978, ISBN   9780262032933.
  3. Lawler, Eugene L. (2001), Optimización combinatoria: redes y matroides , Courier Dover Publications, pág. 64, ISBN  9780486414539.
  4. 1 2 3 Sedgewick, Robert ; Wayne, Kevin Daniel (2011), Algoritmos (4.ª ed.), Addison-Wesley Professional, págs. 661–666 , ISBN   9780321573513.
  5. Di Battista, Giuseppe; Eades, Peter ; Tamassia, Roberto ; Tollis, Ioannis G. (1998), "Dibujos en capas de digrafos", Dibujo de grafos: algoritmos para la visualización de grafos , Prentice Hall , págs. 265–302 , ISBN  978-0-13-301615-4.
  6. 1 2 Björklund, Andreas; Husfeldt, Thore; Khanna, Sanjeev (2004), "Aproximación de los caminos dirigidos más largos y ciclos", Actas del Congreso Internacional de Autómatas, Lenguajes y Programación (ICALP 2004) , Lecture Notes in Computer Science , vol. 3142, Berlín: Springer-Verlag, pp. 222–233 , MR 2160935   .
  7. Gabow, Harold N. ; Nie, Shuxin (2008), "Finding long paths, cycles and circuits", Simposio Internacional sobre Algoritmos y Computación , Lecture Notes in Computer Science, vol. 5369, Berlín: Springer, pp. 752–763 , doi : 10.1007/978-3-540-92182-0_66 , ISBN   978-3-540-92181-3, MR 2539968 Para trabajos anteriores con límites de aproximación aún más débiles, véase Gabow, Harold N. (2007), "Finding paths and cycles of superpolylogarithmic length" (PDF) , SIAM Journal on Computing , 36 (6): 1648–1671 , doi : 10.1137/S0097539704445366 , MR 2299418 y Björklund, Andreas; Husfeldt, Thore (2003), "Finding a path of superlogarithmic length" , SIAM Journal on Computing , 32 (6): 1395–1402 , doi : 10.1137/S0097539702416761 , MR 2034242 .
  8. Karger, David ; Motwani, Rajeev ; Ramkumar, GDS (1997), "Sobre la aproximación del camino más largo en un grafo", Algorithmica , 18 (1): 82–98 , doi : 10.1007/BF02523689 , MR 1432030 , S2CID 3241830  .
  9. 1 2 Alon, Noga ; Yuster, Raphael ; Zwick, Uri (1995), "Color-coding", Journal of the ACM , 42 (4): 844–856 , doi : 10.1145/210332.210337 , MR 1411787 , S2CID 208936467  .
  10. Bodlaender, Hans L. (1993), "Sobre pruebas menores de tiempo lineal con búsqueda en profundidad", Journal of Algorithms , 14 (1): 1– 23, doi : 10.1006/jagm.1993.1001 , MR 1199244 Para un algoritmo FPT anterior con una dependencia ligeramente mejor de la longitud del camino, pero peor dependencia del tamaño del grafo, véase Monien, B. (1985), "How to find long paths efficient", Analysis and design of algorithms for combinatorial problems (Udine, 1982) , North-Holland Math. Stud., vol. 109, Amsterdam: North-Holland, pp. 239–254 , doi : 10.1016/S0304-0208(08)73110-4 , ISBN   9780444876997, MR 0808004 .
  11. Chen, Jianer; Lu, Songjian; Sze, Sing-Hoi; Zhang, Fenghui (2007), "Algoritmos mejorados para problemas de ruta, emparejamiento y empaquetamiento", Actas del 18.º Simposio ACM-SIAM sobre algoritmos discretos (SODA '07) (PDF) , págs. 298–307 .
  12. Koutis, Ioannis (2008), "Algoritmos algebraicos más rápidos para problemas de caminos y empaquetamiento", Coloquio Internacional sobre Autómatas, Lenguajes y Programación (PDF) , Lecture Notes in Computer Science, vol. 5125, Berlín: Springer, pp. 575–586 , CiteSeerX 10.1.1.141.6899 , doi : 10.1007/978-3-540-70575-8_47 , ISBN    978-3-540-70574-1, MR 2500302 , archivado del original (PDF) el 09/08/2017 , recuperado el 09/08/2013 .
  13. Williams, Ryan (2009), "Finding paths of length k in O *(2 k ) time", Information Processing Letters , 109 (6): 315– 318, arXiv : 0807.3026 , doi : 10.1016/j.ipl.2008.11.004 , MR 2493730 , S2CID 10295448  .
  14. Fomin, Fedor V.; Golovach, Petr A.; Lokshtanov, Daniel; Saurabh, Saket (2009), "Clique-width: on the price of generality", Proc. 20th ACM-SIAM Symposium on Discrete Algorithms (SODA '09) (PDF) , pp. 825–834 , archivado del original (PDF) el 18-10-2012 , recuperado el 01-12-2012 .
  15. ^ Bulterman, RW; van der Sommen, FW; Zwaan, G.; Verhoeff, T.; van Gasteren, AJM (2002), "Sobre el cálculo del camino más largo en un árbol", Information Processing Letters , 81 (2): 93– 96, doi : 10.1016/S0020-0190(01)00198-3.
  16. Uehara, Ryuhei; Uno, Yushi (2004), "Algoritmos eficientes para el problema del camino más largo", en Fleischer, Rudolf; Trippen, Gerhard (eds.), Algoritmos y computación, XV Simposio Internacional, ISAAC 2004, Hong Kong, China, 20-22 de diciembre de 2004, Actas , Lecture Notes in Computer Science, vol. 3341, Springer, pp. 871–883 , doi : 10.1007/978-3-540-30551-4_74 , ISBN   978-3-540-24131-7.
  17. Uehara, Ryuhei; Valiente, Gabriel (2007), "Estructura lineal de grafos de permutación bipartitos y el problema del camino más largo", Information Processing Letters , 103 (2): 71–77 , CiteSeerX 10.1.1.101.96 , doi : 10.1016/j.ipl.2007.02.010 .
  18. Takahara, Yoshihiro; Teramoto, Sachio; Uehara, Ryuhei (2008), "Problemas de caminos más largos en grafos ptolemaicos", IEICE Transactions , 91-D (2): 170– 177, doi : 10.1093/ietisy/e91-d.2.170 , hdl : 10119/7833.
  19. Ioannidou, Kyriaki; Mertzios, George B.; Nikolopoulos, Stavros D. (2011), "El problema del camino más largo tiene una solución polinómica en gráficos de intervalo", Algorithmica , 61 (2): 320– 341, CiteSeerX 10.1.1.224.4927 , doi : 10.1007/s00453-010-9411-3 , S2CID 7577817  .
  20. Mertzios, George B.; Bezakova, Ivona (2014), "Cálculo y conteo de caminos más largos en grafos de arcos circulares en tiempo polinomial", Discrete Applied Mathematics , 164 (2): 383– 399, CiteSeerX 10.1.1.224.779 , doi : 10.1016/j.dam.2012.08.024 .
  21. Mertzios, George B.; Corneil, Derek G. (2012), "Un algoritmo polinomial simple para el problema del camino más largo en grafos de coconcomparabilidad", SIAM Journal on Discrete Mathematics , 26 (3): 940–963 , arXiv : 1004.4560 , doi : 10.1137/100793529 , S2CID 4645245 .
  22. Corneil, Derek G.; Krueger, Richard (2008), "Una visión unificada de la búsqueda en grafos", SIAM Journal on Discrete Mathematics , 22 (4): 1259– 1276, doi : 10.1137/050623498.
  23. Ioannidou, Kyriaki; Nikolopoulos, Stavros D. (2011), "El problema del camino más largo es el polinomio en gráficos de comparabilidad" (PDF) , Algorithmica , 65 : 177– 205, CiteSeerX 10.1.1.415.9996 , doi : 10.1007/s00453-011-9583-5 , S2CID 7271040  .
  24. Evans, TS; Calmon, L.; Vasiliauskaite, V. (2020), "The Longest Path in the Price Model", Scientific Reports , 10 (1): 10503, arXiv : 1903.03667 , Bibcode : 2020NatSR..1010503E , doi : 10.1038/s41598-020-67421-8 , PMC 7324613 , PMID 32601403  
  • " Encuentra el camino más largo ", canción de Dan Barrett