El ciclo más largo contenido en dos ciclos.

11

¿Está el siguiente problema NP-completo? (Asumo que sí).

Entrada: un gráfico no dirigido en el que el conjunto de bordes puede descomponerse en dos ciclos simples separados por bordes (estos no son parte de la entrada).kN,G=(V,E)

Pregunta: ¿Hay un ciclo simple en G con una longitud mayor que k ?

Obviamente, el problema está en NP y el grado máximo en G es 4 , pero eso no parece ayudar.

Listado
fuente
1
No creo que tengas razón sobre "a lo sumo 4 caminos que conectan cualquier par". Ver: i.imgur.com/mYL4n1V.png
svinja
1
@svinja Tienes razón, debería haber dicho que a lo sumo existen 4 caminos disjuntos de borde por pares entre cualquier par de dos vértices.
Listado
Su título es engañoso, porque el ciclo simple más largo no puede ser ninguno de los dos ciclos en la descomposición de E (en cualquier descomposición).
Denis
@dkuper en realidad puede, mira la unión de dos ciclos simples separados de vértices.
Listado
Mi punto no es que nunca pueda ser uno de ellos, es que a veces no es uno de ellos. Entonces el problema no es encontrar el más grande de los dos.
Denis

Respuestas:

2

Un intento de reducción ...

Reducción de la ruta hamiltoniana en el dígrafo con un grado máximo 3 que es NPC [G&J]G=(V,E)

  • ignore la dirección de los bordes y, utilizando un primer escaneo de profundidad (no dirigido) desde un nodo arbitrario, divida los bordes de en dos conjuntos de caminos distintos (no dirigidos) (rojo y verde en las figuras);G
  • unirse a los caminos rojos agregando "nodos de enlace" adicionales (nodos morados en la figura B) y hacer un circuito rojo no dirigido; unirse a los caminos verdes agregando "nodos de enlace" adicionales (nodos morados en la figura) y hacer un circuito verde no dirigido;
  • transformar cada nodo original de grado 1 y grado 2 (figura C), agregando nodos amarillos en el borde rojo de entrada , y agregando nodos amarillos en el primer borde rojo de salida ; finalmente agregue nodos amarillos "hacia" el segundo borde verde de salida usando una ruta "envuelta" alrededor de que toque los nodos amarillos más exteriores de los bordes rojos (figura D).bVkabkbckbdb

En el gráfico resultante, todos los nodos amarillos pueden atravesarse por una ruta simple solo de las dos formas mostradas en la figura E y la figura F, que corresponden a los dos recorridos válidos del nodo original ; informalmente, si se usa un borde hacia el nodo púrpura de "enlace" adicional, no se pueden atravesar nodos amarillos.3kbVk

  • Transforme cada nodo original de V de grado 2 y grado 1 de manera similar

Elegir un lo suficientemente grande, el gráfico de resultados tiene una ruta simple de longitud mayor que si y solo si el gráfico original tiene una ruta hamiltoniana (de longitud )k|V|G3k(|V|1)G|V|1

ingrese la descripción de la imagen aquí

La imagen más grande se puede descargar aquí.

Vor
fuente
Esta es una prueba muy hermosa, tal vez debería dirigir los bordes en la figura 'A' para que sea más fácil entender cómo obtener los caminos (aunque creo que lo entendí).
Listado
@Listing: la construcción de los caminos no depende de los bordes dirigidos (de hecho, escribí una búsqueda "no dirigida" en la respuesta). Debe comenzar desde un nodo arbitrario, hacer un primer escaneo de profundidad coloreando con rojo los bordes atravesados, luego retroceder al primer nodo de grado 3 encontrado y continuar el primer escaneo de profundidad coloreando con verde los bordes atravesados, y así sucesivamente. .. tal vez tiene una definición más formal, pero no me viene a la mente ahora. Avísame si necesitas más detalles.
Vor
Ya veo, la última transformación impone la propiedad de que los bordes se atraviesan en la dirección 'correcta'. Gracias por la aclaración.
Listado
0

Inspirado por la respuesta de Vor, quiero dar una más simple.

Comience con el problema del ciclo hamiltoniano para el problema de los gráficos de cuadrícula, que fue probado por Itai.

Se puede ver fácilmente que el conjunto de bordes de un gráfico de cuadrícula se puede dividir en 2 subconjuntos disjuntos: horizontal y vertical.

Entonces, ahora tenemos que tejer todos los horizontales en un ciclo simple, y tejer todos los verticales en otro ciclo simple.

Esta es una tarea muy fácil: para las verticales, barra de izquierda a derecha, simplemente conecte los espacios verticales, luego conecte la línea vertical coordinada x consecutiva, luego conecte el vértice inferior izquierdo con el vértice superior derecho. Haz lo mismo para los bordes horizontales.

Tenga en cuenta que el gráfico obtenido sigue siendo simple, no dirigido y satisface los requisitos. Es simple porque en los últimos pasos de la fase vertical y la fase horizontal, tratamos con dos pares de vértices diferentes.

Ahora, haz un truco similar al que hizo Vor. En cada vértice, para cada uno de sus bordes incidentes originales, agregue nuevos vértices. Como de costumbre, ahouls sea lo suficientemente grande. Por último, la duración de un ciclo hamiltoniano genuino debería ser. Pero, por supuesto, no es hamiltoniano del gráfico obtenido.kk2k|V|

Thinh D. Nguyen
fuente