stringtranslate.com

Problema del camino hamiltoniano

El problema de la trayectoria hamiltoniana es un tema discutido en los campos de la teoría de la complejidad y la teoría de grafos . Decide si un gráfico dirigido o no dirigido , G , contiene un camino hamiltoniano , un camino que visita cada vértice del gráfico exactamente una vez. El problema puede especificar el inicio y el final de la ruta, en cuyo caso se deben identificar el vértice inicial sy el vértice final t . [1]

El problema del ciclo hamiltoniano es similar al problema de la trayectoria hamiltoniana, excepto que pregunta si una gráfica determinada 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 estableciendo la distancia entre dos ciudades en uno si son adyacentes y dos en caso contrario, y verificando que la distancia total recorrida es igual a n. Si es así, la ruta es un ciclo hamiltoniano.

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

Reducciones

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

Los problemas de encontrar una trayectoria hamiltoniana y un ciclo hamiltoniano se pueden relacionar de la siguiente manera:

Algoritmos

Fuerza bruta

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

Caminos parciales

Uno de los primeros algoritmos exactos para encontrar un ciclo hamiltoniano en un gráfico dirigido fue el algoritmo enumerativo de Martello. [3] Un procedimiento de búsqueda de Frank Rubin [5] divide los bordes del gráfico en tres clases: los que deben estar en el camino, los que no pueden estar en el camino y los indecisos. A medida que avanza la búsqueda, un conjunto de reglas de decisión clasifica los bordes indecisos y determina si se debe detener o continuar la búsqueda. El algoritmo divide el gráfico en componentes que se pueden resolver por separado.

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 el tiempo O ( n 2 2 n ). 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 una ruta para ( S , v ) si y solo si v tiene un vecino w tal que exista una ruta para ( Sv , w ), que se puede buscar a partir de información ya calculada. en el programa dinámico. [6] [7]

Monte Carlo

Andreas Björklund proporcionó 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, de contar las coberturas de ciclos, que puede resolverse calculando ciertos determinantes matriciales. Utilizando este método, mostró cómo resolver el problema del ciclo hamiltoniano en gráficos arbitrarios de n -vértices mediante un algoritmo de Monte Carlo en el tiempo O (1,657 n ); para gráficos bipartitos, este algoritmo se puede mejorar aún más hasta el tiempo O (1,415 n ). [8]

Retroceder

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

Satisfacción booleana

Las rutas hamiltonianas se pueden encontrar utilizando un solucionador SAT . La ruta hamiltoniana es NP-Completa, lo que significa que se puede reducir al problema 3-SAT . Como resultado, encontrar una solución al problema del camino hamiltoniano equivale a encontrar una solución para 3-SAT.

Métodos no convencionales

Debido a la dificultad de resolver los problemas de ciclo y trayectoria hamiltoniana 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 se puede resolver utilizando una computadora de ADN . Aprovechando el paralelismo inherente a las reacciones químicas, el problema se puede resolver utilizando un número de pasos de reacción química lineales en el número de vértices del gráfico; sin embargo, se 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 es crear una estructura similar a un gráfico hecha de cables ópticos y divisores de haz que son atravesados ​​por la luz para construir una solución al problema. El punto débil de este enfoque es la cantidad de energía requerida, que es exponencial en el número de nodos.

Complejidad

El problema de encontrar un ciclo o camino hamiltoniano está en FNP ; el problema de decisión análogo consiste en comprobar si existe un ciclo o trayectoria hamiltoniana. Los problemas del ciclo hamiltoniano dirigido y no dirigido fueron dos de los 21 problemas NP completos de Karp . Siguen siendo NP completos incluso para tipos especiales de gráficos, como:

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

Juntando todas estas condiciones, queda abierto si los gráficos planos bipartitos regulares 3 conectados siempre deben contener un ciclo hamiltoniano, en cuyo caso el problema restringido a esos gráficos no podría ser NP-completo; ver la conjetura de Barnette .

En gráficos en los que todos los vértices tienen grados impares, un argumento relacionado con el lema del apretón de manos muestra que el número de ciclos hamiltonianos a través de cualquier borde fijo es siempre par, por lo que si se da un ciclo hamiltoniano, entonces también debe existir un segundo. [20] Sin embargo, encontrar este segundo ciclo no parece ser una tarea computacional fácil. Papadimitriou definió la clase de complejidad PPA para encapsular 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 gráfico G.

El problema de la ruta hamiltoniana es NP-Completo , lo que significa que una solución propuesta se puede verificar en tiempo polinomial . [1]

Un algoritmo de verificación para la ruta hamiltoniana tomará como entrada un gráfico G, un vértice inicial s y un vértice final t. Además, los verificadores requieren una posible solución conocida como certificado , c. Para el problema del camino hamiltoniano, c consistiría 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 en G aparecen exactamente una vez en c. Si esta verificación pasa, a continuación, el algoritmo garantizará que el primer vértice en c sea igual a s y el último vértice sea igual a t. Por último, para verificar que c es una ruta válida, el algoritmo debe verificar que cada arista entre los vértices en c sea de hecho una arista en G. Si alguna de estas comprobaciones falla, el algoritmo la rechazará. En caso contrario, aceptará. [22] [23]

El algoritmo puede verificar en tiempo polinómico si los vértices en G aparecen una vez en c. Además, se necesita tiempo polinómico para verificar los vértices inicial y final, así como los bordes entre los vértices. Por lo tanto, el algoritmo es un verificador de tiempo polinómico para el problema de la trayectoria hamiltoniana. [22]

Aplicaciones

Redes en chip (NoC)

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

Gráficos de computadora

Los motores de renderizado son una forma de software que se utiliza en gráficos por computadora para generar imágenes o modelos a partir de datos de entrada. [27] En la representación de gráficos tridimensionales , una entrada común al motor es una malla poligonal . El tiempo que lleva 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 renderización. Sin embargo, para las mallas triangulares, el tiempo de renderizado se puede reducir hasta en un factor de tres. Esto se hace "ordenando los triángulos de modo que los triángulos consecutivos compartan una cara". [28] De esa manera, solo un vértice cambia entre cada triángulo consecutivo. Este orden existe si la gráfica dual de la malla triangular contiene una trayectoria hamiltoniana.

Referencias

Medios relacionados con el problema de la ruta hamiltoniana en Wikimedia Commons

  1. ^ ab Sipser, Michael (2013). Introducción a la Teoría de la Computación (3ª ed.). Aprendizaje Cengage. págs. 292–314.
  2. ^ Garey, Michael R; Johnson, David S. (1979). Computadoras e intratabilidad: una guía para la teoría de la integridad NP . WH Freeman y compañía. pag. 60.
  3. ^ ab Held, M.; Karp, RM (1965). "La construcción de algoritmos de programación dinámica discreta". Revista de sistemas IBM . 4 (2): 136–147. doi :10.1147/sj.42.0136. ISSN  0018-8670.
  4. ^ Reducción del ciclo hamiltoniano al camino hamiltoniano
  5. ^ Rubin, Frank (1974), "Un procedimiento de búsqueda para circuitos y rutas de Hamilton", 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". Revista de la ACM . 9 (1): 61–63. doi : 10.1145/321105.321111 . ISSN  0004-5411. S2CID  15649582.
  7. ^ Retenido, Michael; Karp, Richard M. (marzo de 1962). "Un enfoque de programación dinámica para problemas de secuenciación". Revista de la Sociedad de Matemáticas Industriales y Aplicadas . 10 (1): 196–210. doi :10.1137/0110015. ISSN  0368-4245.
  8. ^ Bjorklund, Andreas (octubre de 2010). "Sumas determinantes de hamiltonicidad no dirigida". 2010 51º Simposio Anual del IEEE sobre Fundamentos de la Informática . IEEE. págs. 173–182. arXiv : 1008.0541 . doi :10.1109/focs.2010.24. ISBN 978-1-4244-8525-3.
  9. ^ Iwama, Kazuo; Nakashima, Takuya (2007), Lin, Guohui (ed.), "Un algoritmo exacto mejorado para TSP de gráficos cúbicos", Computación y combinatoria , Apuntes de conferencias sobre informática, Berlín, Heidelberg: Springer Berlin Heidelberg, vol. 4598, págs. 108-117, doi :10.1007/978-3-540-73545-8_13, ISBN 978-3-540-73544-1, recuperado 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/ ciencia.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. págs. arXiv : 0708.1496 . doi :10.1007/11839132_18.
  12. ^ "Prueba de que la existencia de un camino de Hamilton en un gráfico bipartito es NP-completo". Intercambio de pilas de informática . Consultado el 18 de marzo de 2019 .
  13. ^ Garey, señor ; Johnson, DS ; Stockmeyer, L. (1974), "Algunos problemas NP-completos simplificados", Proc. Sexto 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 completitud NP del problema del ciclo hamiltoniano en dígrafos planos con límite de grado dos" (PDF) , Cartas de procesamiento de información , 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 gráficos bipartitos", Journal of Information Processing , 3 (2): 73–76, SEÑOR  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), "Finales simples de Amazon y su conexión a circuitos de Hamilton en gráficos de subcuadrícula cúbica" (PDF) , Computadoras y juegos , Lecture Notes in Computer Science, vol. 2063, págs. 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 se puede resolver en tiempo lineal para gráficos planos de 4 conexiones", Journal of Algorithms , 10 (2): 187–211, doi :10.1016/0196-6774(89)90012- 6
  19. ^ Schmid, Andrés; Schmidt, Jens M. (2018), "Computing Tutte Paths", Actas del 45º Coloquio Internacional sobre Autómatas, Lenguajes y Programación (ICALP'18), por aparecer.
  20. ^ Thomason, AG (1978), "Ciclos hamiltonianos y gráficos coloreables de bordes únicos", Avances en teoría de grafos (Cambridge Combinatorial Conf., Trinity College, Cambridge, 1977), Annals of Discrete Mathematics, vol. 3, págs. 259–268, doi :10.1016/S0167-5060(08)70511-9, ISBN 9780720408430, SEÑOR  0499124.
  21. ^ Papadimitriou, Christos H. (1994), "Sobre la complejidad del argumento de la paridad y otras pruebas de existencia ineficientes", Journal of Computer and System Sciences , 48 ​​(3): 498–532, CiteSeerX 10.1.1.321.7008 , doi :10.1016/S0022-0000(05)80063-7, SEÑOR  1279412 .
  22. ^ abc 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). "Notas de la conferencia de la semana 7 del 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". Investigaciones Emergentes en Computación, Información, Comunicación y Aplicaciones . Apuntes de conferencias 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 Hamilton para redes en chip: un enfoque de modelo de giro". Conferencia y exposición de diseño, automatización y pruebas en Europa de 2014 : 1–4 - a través de IEEE.
  27. ^ Garsiel, Tali; Irlandés, Paul (5 de agosto de 2011). "Cómo funcionan los navegadores".
  28. ^ Arkin, Esther M.; Mitchell, Joseph SB; Celebrado, Martín; Skiena, Steven S. "Triangulaciones hamiltonianas para una representación rápida" (PDF) . Departamento de Ciencias de la Computación de la Universidad Stony Brook .