Articulo de referencia

Problema de la trayectoria hamiltoniana

El problema del camino hamiltoniano es un tema tratado en los campos de la teoría de la complejidad y la teoría de grafos . Consiste en determinar si un grafo dirigido o no diri...

El problema del camino hamiltoniano es un tema tratado en los campos de la teoría de la complejidad y la teoría de grafos . Consiste en determinar si un grafo dirigido o no dirigido , G , contiene un camino hamiltoniano , es decir, un camino que visita cada vértice del grafo exactamente una vez. El problema puede especificar el inicio y el final del camino, en cuyo caso deben identificarse el vértice inicial s y el vértice final t . [ 1 ]

El problema del ciclo hamiltoniano es similar al problema del camino hamiltoniano, con la diferencia de que pregunta si un grafo dado contiene un ciclo hamiltoniano . Este problema también puede especificar el inicio del ciclo. El problema del ciclo hamiltoniano es un caso especial del problema del viajante , que se obtiene al establecer la distancia entre dos ciudades en uno si son adyacentes y en dos en caso contrario, y verificar que la distancia total recorrida sea igual a n. Si se cumple esta condición, la ruta es un ciclo hamiltoniano.

El problema del camino hamiltoniano y el problema del ciclo hamiltoniano pertenecen a la clase de problemas NP-completos , como se muestra en el libro de Michael Garey y David S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, y en la lista de 21 problemas NP-completos de Richard Karp . [ 2 ] [ 3 ]

Reducciones

Reducción del problema de la ruta al problema del ciclo.

Los problemas de encontrar un camino hamiltoniano y un ciclo hamiltoniano pueden relacionarse de la siguiente manera:

  • En cierto sentido, el problema del camino hamiltoniano para el grafo G puede relacionarse con el problema del ciclo hamiltoniano en un grafo H obtenido a partir de G mediante la adición de un nuevo vértice universal x , que conecta x con todos los vértices de G. Por lo tanto, encontrar un camino hamiltoniano no puede ser significativamente más lento (en el peor de los casos, en función del número de vértices) que encontrar un ciclo hamiltoniano.
  • En la otra dirección, el problema del ciclo hamiltoniano para un grafo G es equivalente al problema del camino hamiltoniano en el grafo H obtenido al agregar vértices terminales ( de grado uno) s y t unidos respectivamente a un vértice v de G y a v', una copia escindida de v que le da a v' el mismo vecindario que v . El camino hamiltoniano en H que pasa por los vértices svincógnitayvt{\displaystyle svx-\cdots -yv'-t} corresponde al ciclo hamiltoniano en G que pasa porvincógnitay(v){\displaystyle vx-\cdots -y(-v)} . [ 4 ]

Algoritmos

Fuerza bruta

Para decidir si un grafo tiene un camino hamiltoniano, habría que comprobar cada posible camino en el grafo de entrada G. Hay n ! secuencias diferentes de vértices que podrían ser caminos hamiltonianos en un grafo dado de n vértices (y lo son, en un grafo completo ), por lo que un algoritmo de búsqueda por fuerza bruta que pruebe todas las secuencias posibles sería muy lento.

Rutas parciales

Un algoritmo exacto temprano para encontrar un ciclo hamiltoniano en un grafo dirigido fue el algoritmo enumerativo de Martello. [ 3 ] Un procedimiento de búsqueda de Frank Rubin [ 5 ] divide las aristas del grafo en tres clases: aquellas que deben estar en el camino, aquellas que no pueden estar en el camino y las indecisas. A medida que avanza la búsqueda, un conjunto de reglas de decisión clasifica las aristas indecisas y determina si se debe detener o continuar la búsqueda. Las aristas que no pueden estar en el camino se pueden eliminar, por lo que la búsqueda se reduce continuamente. El algoritmo también divide el grafo en componentes que se pueden resolver por separado, lo que reduce considerablemente el tamaño de la búsqueda. En la práctica, este algoritmo sigue siendo el más rápido.

Programación dinámica

Además, se puede utilizar un algoritmo de programación dinámica de Bellman, Held y Karp para resolver el problema en tiempo O( 2n ) . En este método, se determina, para cada conjunto S de vértices y cada vértice v en S , si existe un camino que cubra exactamente los vértices en S y termine en v . Para cada elección de S y v , existe un camino para ( S , v ) si y solo si v tiene un vecino w tal que existe un camino para ( Sv , w ), que se puede consultar a partir de la información ya calculada en el programa dinámico. [ 6 ] [ 7 ]

Montecarlo

Andreas Björklund propuso un enfoque alternativo utilizando el principio de inclusión-exclusión para reducir el problema de contar el número de ciclos hamiltonianos a un problema de conteo más simple: el de contar las coberturas de ciclos, que puede resolverse calculando ciertos determinantes de matrices. Mediante este método, demostró cómo resolver el problema de los ciclos hamiltonianos en grafos arbitrarios de n vértices mediante un algoritmo de Monte Carlo en tiempo O(1,657 n ); para grafos bipartitos, este algoritmo puede mejorarse aún más hasta un tiempo O (1,415 n ). [ 8 ]

Retroceder

Para grafos de grado máximo tres, una búsqueda de retroceso cuidadosa puede encontrar un ciclo hamiltoniano (si existe) en tiempo O(1,251 n ). [ 9 ]

Satisfacibilidad booleana

Los caminos hamiltonianos se pueden encontrar utilizando un solucionador SAT . El camino hamiltoniano es NP-completo, lo que significa que se puede reducir mediante mapeo al problema 3-SAT . Por lo tanto, encontrar una solución al problema del camino hamiltoniano es equivalente a encontrar una solución para 3-SAT.

Métodos no convencionales

Debido a la dificultad de resolver los problemas de la ruta hamiltoniana y del ciclo en computadoras convencionales, también se han estudiado en modelos de computación no convencionales. Por ejemplo, Leonard Adleman demostró que el problema de la ruta hamiltoniana puede resolverse utilizando una computadora de ADN . Aprovechando el paralelismo inherente a las reacciones químicas, el problema puede resolverse utilizando un número de pasos de reacción química lineal con respecto al número de vértices del grafo; sin embargo, requiere un número factorial de moléculas de ADN para participar en la reacción. [ 10 ]

También se ha propuesto una solución óptica al problema hamiltoniano. [ 11 ] La idea consiste en crear una estructura similar a un grafo, formada por cables ópticos y divisores de haz, que la luz recorre para construir una solución al problema. El punto débil de este enfoque es la cantidad de energía requerida, que es exponencial con respecto al número de nodos.

Complejidad

El problema de encontrar un ciclo o camino hamiltoniano pertenece a la clase FNP ; el problema de decisión análogo consiste en comprobar si existe un ciclo o camino hamiltoniano. Los problemas de ciclos hamiltonianos dirigidos y no dirigidos fueron dos de los 21 problemas NP-completos de Karp . Siguen siendo NP-completos incluso para tipos especiales de grafos, como:

Sin embargo, para algunas clases especiales de grafos, el problema se puede resolver en tiempo polinomial:

  • Los grafos planares 4-conectados son siempre hamiltonianos por un resultado debido a Tutte , y la tarea computacional de encontrar un ciclo hamiltoniano en estos grafos se puede llevar a cabo en tiempo lineal [ 18 ] calculando un llamado camino de Tutte .
  • Tutte demostró este resultado al mostrar que todo grafo planar 2-conexo contiene un camino de Tutte. Los caminos de Tutte, a su vez, pueden calcularse en tiempo cuadrático incluso para grafos planares 2-conexos, [ 19 ] lo que puede utilizarse para encontrar ciclos hamiltonianos y ciclos largos en generalizaciones de grafos planares.

Al juntar todas estas condiciones, queda abierto si los grafos planares bipartitos 3-conexos 3-regulares deben contener siempre un ciclo hamiltoniano, en cuyo caso el problema restringido a esos grafos no podría ser NP-completo; véase la conjetura de Barnette .

En grafos donde todos los vértices tienen grado impar, un argumento relacionado con el lema del apretón de manos muestra que el número de ciclos hamiltonianos que pasan por cualquier arista fija es siempre par; por lo tanto, si se conoce un ciclo hamiltoniano, entonces debe existir un segundo. [ 20 ] Sin embargo, encontrar este segundo ciclo no parece ser una tarea computacional sencilla. Papadimitriou definió la clase de complejidad PPA para englobar problemas como este. [ 21 ]

Verificador de tiempo polinomial

La solución propuesta {s,w,v,u,t} forma un camino hamiltoniano válido en el grafo G.

El problema del camino hamiltoniano es NP, lo que significa que una solución propuesta puede verificarse en tiempo polinomial . [ 1 ]

Un algoritmo de verificación para el problema del camino hamiltoniano toma como entrada un grafo G, un vértice inicial s y un vértice final t. Además, los verificadores requieren una solución potencial conocida como certificado c. Para el problema del camino hamiltoniano, c consiste en una cadena de vértices donde el primer vértice es el inicio del camino propuesto y el último es el final. [ 22 ] El algoritmo determinará si c es un camino hamiltoniano válido en G y, de ser así, lo aceptará.

Para decidir esto, el algoritmo primero verifica que todos los vértices de G aparezcan exactamente una vez en c. Si esta verificación es exitosa, a continuación, el algoritmo se asegurará de que el primer vértice de c sea igual a s y el último vértice sea igual a t. Finalmente, para verificar que c sea un camino válido, el algoritmo debe comprobar que cada arista entre vértices de c sea efectivamente una arista en G. Si alguna de estas verificaciones falla, el algoritmo rechazará la ruta. De lo contrario, la aceptará. [ 22 ] [ 23 ]

El algoritmo puede comprobar en tiempo polinomial si los vértices de G aparecen una vez en c. Además, requiere tiempo polinomial para comprobar los vértices de inicio y fin, así como las aristas entre vértices. Por lo tanto, el algoritmo es un verificador de tiempo polinomial para el problema del camino hamiltoniano. [ 22 ]

Aplicaciones

Redes en chip

Las redes en chip (NoC) se utilizan en sistemas informáticos y procesadores para la comunicación entre componentes integrados en el chip. [ 24 ] El rendimiento de una NoC está determinado por el método que utiliza para mover paquetes de datos a través de la red . [ 25 ] El problema de la ruta hamiltoniana se puede implementar como un método basado en rutas en el enrutamiento multicast . Los algoritmos multicast basados ​​en rutas determinan si existe una ruta hamiltoniana desde el nodo de inicio hasta cada nodo final y envían los paquetes a través de la ruta correspondiente. La utilización de esta estrategia garantiza un enrutamiento libre de interbloqueos y bloqueos permanentes , lo que aumenta la eficiencia de la NoC. [ 26 ]

Gráficos por computadora

Los motores de renderizado son un tipo de software utilizado en gráficos por computadora para generar imágenes o modelos a partir de datos de entrada. [ 27 ] En el renderizado de gráficos tridimensionales , una entrada común al motor es una malla poligonal . El tiempo que tarda en renderizar el objeto depende de la velocidad a la que se recibe la entrada, lo que significa que cuanto mayor sea la entrada, mayor será el tiempo de renderizado. Sin embargo, para mallas triangulares, el tiempo de renderizado puede reducirse hasta en un factor de tres. Esto se logra "ordenando los triángulos de manera que los triángulos consecutivos compartan una cara". [ 28 ] De esta forma, solo cambia un vértice entre cada triángulo consecutivo. Este ordenamiento existe si el grafo dual de la malla triangular contiene un camino hamiltoniano.

Referencias

Logotipo de Wikimedia CommonsContenido multimedia relacionado con el problema del camino hamiltoniano en Wikimedia Commons.

  1. 1 2 Sipser, Michael (2013). Introducción a la teoría de la computación (3.ª  ed.). Cengage Learning. págs. 292–314 . 
  2. Garey, Michael R; Johnson, David S. (1979). Computadoras e intratabilidad: una guía a la teoría de la NP-completitud . WH Freeman and Company. pág. 60. 
  3. 1 2 Held, M.; Karp, RM (1965). "La construcción de algoritmos de programación dinámica discreta" . IBM Systems Journal . 4 (2): 136– 147. doi : 10.1147/sj.42.0136 . ISSN 0018-8670 . 
  4. Reducción del ciclo hamiltoniano a la trayectoria hamiltoniana
  5. Rubin, Frank (1974), "Un procedimiento de búsqueda para caminos y circuitos hamiltonianos", Journal of the ACM , 21 (4): 576–80 , doi : 10.1145/321850.321854 , S2CID 7132716 
  6. Bellman, Richard (enero de 1962). "Tratamiento de programación dinámica del problema del viajante" . Journal of the ACM . 9 (1): 61– 63. doi : 10.1145/321105.321111 . ISSN 0004-5411 . S2CID 15649582 .  
  7. Held, Michael; Karp, Richard M. (marzo de 1962). "Un enfoque de programación dinámica para problemas de secuenciación" . Journal of the Society for Industrial and Applied Mathematics . 10 (1): 196– 210. doi : 10.1137/0110015 . ISSN 0368-4245 . 
  8. Bjorklund, Andreas (octubre de 2010). "Determinant Sums for Undirected Hamiltonicity" . 2010 IEEE 51st Annual Symposium on Foundations of Computer Science . IEEE. pp. 173–182 . arXiv : 1008.0541 . doi : 10.1109/focs.2010.24 . ISBN  978-1-4244-8525-3.
  9. Iwama, Kazuo; Nakashima, Takuya (2007), "Un algoritmo exacto mejorado para el problema del viajante de comercio en grafos cúbicos" , en Lin, Guohui (ed.), Computing and Combinatorics , Lecture Notes in Computer Science, vol. 4598, Berlín, Heidelberg: Springer Berlin Heidelberg, pp. 108–117 , doi : 10.1007/978-3-540-73545-8_13 , ISBN   978-3-540-73544-1, consultado el 7 de octubre de 2023
  10. Adleman, Leonard (noviembre de 1994), "Cálculo molecular de soluciones a problemas combinatorios", Science , 266 (5187): 1021–1024 , Bibcode : 1994Sci...266.1021A , CiteSeerX 10.1.1.54.2565 , doi : 10.1126/science.7973651 , JSTOR 2885489 , PMID 7973651   .
  11. Mihai Oltean (2006). Un dispositivo basado en luz para resolver el problema de la trayectoria hamiltoniana . Computación no convencional. Springer LNCS 4135. pp. 217–227 . arXiv : 0708.1496 . doi : 10.1007/11839132_18 . 
  12. "Prueba de que la existencia de un camino hamiltoniano en un grafo bipartito es NP-completa" . Computer Science Stack Exchange . Consultado el 18 de marzo de 2019 .
  13. Garey, MR ; Johnson, DS ; Stockmeyer, L. (1974), "Algunos problemas NP-completos simplificados", Actas del 6.º Simposio ACM sobre Teoría de la Computación (STOC '74) , págs. 47–63 , doi : 10.1145/800119.803884 , S2CID 207693360  .
  14. Plesńik, J. (1979), "La NP-completitud del problema del ciclo hamiltoniano en digrafos planares con límite de grado dos" (PDF) , Information Processing Letters , 8 (4): 199–201 , doi : 10.1016/0020-0190(79)90023-1.
  15. Akiyama, Takanori; Nishizeki, Takao ; Saito, Nobuji (1980–1981), "NP-completitud del problema del ciclo hamiltoniano para grafos bipartitos", Journal of Information Processing , 3 (2): 73–76 , MR 0596313 .
  16. Itai, Alon; Papadimitriou, Christos; Szwarcfiter, Jayme (1982), "Hamilton Paths in Grid Graphs", SIAM Journal on Computing , 4 (11): 676– 686, CiteSeerX 10.1.1.383.1078 , doi : 10.1137/0211056 .
  17. Buro, Michael (2001), "Simple Amazons endgames and their connection to Hamilton circuits in cubic subgrid graphs" (PDF) , Computers and Games , Lecture Notes in Computer Science, vol. 2063, pp. 250–261 , CiteSeerX 10.1.1.40.9731 , doi : 10.1007/3-540-45579-5_17 , ISBN    978-3-540-43080-3.
  18. Chiba, Norishige; Nishizeki, Takao (1989), "El problema del ciclo hamiltoniano es resoluble en tiempo lineal para grafos planares 4-conectados", Journal of Algorithms , 10 (2): 187–211 , doi : 10.1016/0196-6774(89)90012-6
  19. Schmid, Andreas; Schmidt, Jens M. (2018), "Computing Tutte Paths", Actas del 45º Coloquio Internacional sobre Autómatas, Lenguajes y Programación (ICALP'18), de próxima publicación.
  20. Thomason, AG (1978), "Ciclos hamiltonianos y grafos con coloración de aristas única", Avances en teoría de grafos (Conferencia combinatoria de Cambridge, Trinity College, Cambridge, 1977) , Anales de matemáticas discretas, vol. 3, págs. 259–268 , doi : 10.1016/S0167-5060(08)70511-9 , ISBN   9780720408430, MR 0499124 .
  21. Papadimitriou, Christos H. (1994), "Sobre la complejidad del argumento de paridad y otras pruebas ineficientes de existencia", Journal of Computer and System Sciences , 48 ​​(3): 498– 532, CiteSeerX 10.1.1.321.7008 , doi : 10.1016/S0022-0000(05)80063-7 , MR 1279412  .
  22. 1 2 3 Bun, Mark (noviembre de 2022). "Teoría de la computación de la Universidad de Boston" (PDF) .
  23. Bretscher, A (5 de febrero de 2021). "Apuntes de clase de la semana 7 de CSCC63 de la Universidad de Toronto" (PDF) .
  24. Bahn, Jun Ho. "Descripción general de la red en chip" . Universidad de California Irvine .
  25. Satish, EG (2022). "Análisis comparativo del rendimiento de la topología de enrutamiento para la arquitectura NoC" . Investigación emergente en computación, información, comunicación y aplicaciones . Notas de clase en ingeniería eléctrica. Vol. 790. págs. 431–440 . doi : 10.1007/978-981-16-1342-5_34 . ISBN   978-981-16-1341-8 vía Springer.
  26. Bahrebar, P.; Stroobandt, D. (2014). "Mejora de los métodos de enrutamiento basados ​​en hamiltonianos para redes en chip: un enfoque de modelo de giro". Conferencia y Exposición de Diseño, Automatización y Pruebas en Europa 2014 : 1–4 vía IEEE.
  27. Garsiel, Tali; Irish, Paul (5 de agosto de 2011). "Cómo funcionan los navegadores" .
  28. Arkin, Esther M.; Mitchell, Joseph SB; Held, Martin; Skiena, Steven S. "Triangulaciones hamiltonianas para renderizado rápido" (PDF) . Departamento de Ciencias de la Computación, Universidad de Stony Brook .