NP prueba de integridad de un problema de árbol de expansión

23

Estoy buscando algunas pistas en una pregunta que me hizo mi instructor.

Así que descubrí que este problema de decisión es :NP-complete

En un gráfico , ¿hay un árbol de expansión en G que contenga un conjunto exacto de S = { x 1 , x 2 , ... , x n } como hojas. Me di cuenta de que podamos probar que es N P - c o m p l e t e reduciendo camino de Hamilton a este problema decisiones.GGS={x1,x2,,xn}NP-complete

Pero mi instructor también nos preguntó en clase:

también sería si en lugar de "conjunto exacto de S ", hacemosNP-completeS

"incluye todo el conjunto de y posiblemente otras hojas" o "subconjunto de S "SS

Creo que "subconjunto de S" sería , pero no puedo probarlo, no sé qué problema puedo reducir a esto. En cuanto a "incluir el conjunto de S ...", creo que se puede resolver en tiempo polinómico.NP-completeS

inicializar
fuente
¿Puedes explicar por qué crees que la única versión se puede resolver en tiempo polinómico?
Raphael
@pad: "Mi instructor preguntó en clase" no es una tarea sino un rompecabezas. Además, vea esta meta discusión en la etiqueta de tarea.
Raphael

Respuestas:

13

En resumen, sus conjeturas son correctas. Para el propósito de esta respuesta, llamemos a los tres problemas en cuestión de la siguiente manera:

  • Versión Igualdad: Dado un grafo y un conjunto S V , decidir si G tiene un árbol de expansión T tal que el conjunto de hojas en T es igual a S . Como dijiste, esto es NP-completo por una reducción del problema del camino hamiltoniano.sol=(V,mi)SVsolTTS
  • Versión subconjunto: Dada y S como el anterior, decidir si G tiene un árbol de expansión T tal que el conjunto de hojas en T es un subconjunto de S .solSsolTTS
  • Versión superconjunto: dado ysol como el anterior, decidir si G tiene un árbol de expansión T tal que el conjunto de hojas en T es un superconjunto de S .SsolTTS

Para demostrar que la versión del subconjunto es NP-complete, aún puede reducir el problema de la ruta de Hamitonian. Intente modificar la prueba de la integridad de NP de la versión de igualdad.

Para probar que la versión de superconjunto se puede resolver en tiempo polinómico, intente encontrar una condición necesaria y suficiente para que exista dicho árbol T

Ambas versiones (así como algunos otros problemas sobre la expansión de los árboles) se estudian en [SK05]. Pero supongo que es mejor si intentas resolver los problemas por tu cuenta antes de mirar las pruebas en el papel, porque mirar el papel puede ser un gran spoiler. ¡Desafortunadamente, había mirado el documento antes de tratar de encontrar un algoritmo de tiempo polinómico para la versión de superconjunto!


[SK05] Mohammad Sohel Rahman y Mohammad Kaykobad. Complejidades de algunos problemas interesantes en la expansión de los árboles. Information Processing Letters , 94 (2): 93–97, abril de 2005. [ doi ] [ copia del autor ]

Tsuyoshi Ito
fuente
¡Qué bueno verte por aquí! Tenga en cuenta que también tenemos MathJax aquí.
Raphael
1
Gracias por la orientación! Sin embargo, desearía leer esto antes de ir a clase, lo estropeó hoy jaja. En caso de que alguien esté interesado en el algoritmo polinómico de la versión de superconjunto, otra sugerencia es construir un nuevo gráfico con V \ L.
inicializar el
0

Estas sugerencias no fueron suficientes para llevarme a una solución para el superconjunto del problema S, aunque las sugerencias son útiles y correctas. Este es mi tren de pensamiento que me llevó a una solución.

¿Qué sucede si elimina todos los vértices en S de G, (VS) y luego encuentra un árbol de expansión T con DFS? Si hay vértices aún no conectados en G, diga v1; ¿Qué dice eso sobre el papel de al menos uno de los vértices en S que se eliminó? Que se encuentra en la ruta a v1 desde algún vértice que se encuentra actualmente en el árbol de expansión. Por lo tanto, no puede ser una hoja (ya que las hojas no tienen hijos). Si no hay nodos no conectados, eso significa que cada vértice en S puede ser una hoja, siempre que tenga un borde que conduzca al árbol de expansión. Los vértices en S que solo se conectan a otros vértices en S, por supuesto, no tendrán una conexión con el árbol de expansión y violarían la condición. Entonces, hay dos casos para verificar:

  1. Si todos los nodos que no están en S están conectados después de eliminar S de G y encontrar un árbol de expansión
  2. Si cada nodo en S se puede conectar directamente al árbol de expansión.
DanGoodrick
fuente