Respuestas:
Para mostrar que un problema es NP completo, debe:
En otras palabras, dada alguna información C, puede crear un algoritmo de tiempo polinomial Vque verificará para cada entrada posible Xsi Xestá en su dominio o no.
Demuestre que el problema de las cubiertas de vértices (es decir, para algún gráfico G, ¿tiene un conjunto de cubiertas de vértices de tamaño ktal que cada borde en Gtenga al menos un vértice en el conjunto de cubiertas ?) Está en NP:
nuestra entrada Xes un gráfico Gy un número k(esto es de la definición del problema)
Considere nuestra información Ccomo "cualquier posible subconjunto de vértices en el gráfico Gde tamaño k".
Luego podemos escribir un algoritmo Vque, dado G, ky C, devolverá si ese conjunto de vértices es una cobertura de vértice para Go no, en tiempo polinomial .
Luego, para cada gráfico G, si existe algún "posible subconjunto de vértices Gde tamaño k" que sea una cobertura de vértices, entonces Gestá en NP.
Tenga en cuenta que no es necesario encontrar Cen tiempo polinomial. Si pudiéramos, el problema estaría en `P.
Tenga en cuenta que el algoritmo Vdebería funcionar para todos G , para algunos C. Para cada entrada debe existir información que pueda ayudarnos a verificar si la entrada está en el dominio del problema o no. Es decir, no debe haber una entrada donde la información no exista.
Esto implica obtener un problema NP-completo conocido como SAT , el conjunto de expresiones booleanas en la forma:
(A o B o C) y (D o E o F) y ...
donde la expresión es satisfactoria , es decir, existe alguna configuración para estos valores booleanos, lo que hace que la expresión sea verdadera .
Luego, reduzca el problema NP-completo a su problema en tiempo polinomial .
Es decir, dada alguna entrada Xpara SAT(o cualquier problema NP-completo que esté usando), cree alguna entrada Ypara su problema, de modo que Xesté en SAT si y solo si Yestá en su problema. La función f : X -> Ydebe ejecutarse en tiempo polinomial .
En el ejemplo anterior, la entrada Ysería el gráfico Gy el tamaño de la cubierta del vértice k.
Para una prueba completa , tendrías que probar ambos:
eso Xestá en SAT=> Yen tu problema
y Yen su problema => Xen SAT.
La respuesta de marcog tiene un vínculo con varios otros problemas NP-complete que podría reducir a su problema.
Nota a pie de página: En el paso 2 ( Demuestre que es NP-difícil ), será suficiente reducir otro problema NP-difícil (no necesariamente NP-completo) al problema actual, ya que los problemas NP-completo son un subconjunto de los problemas NP-difíciles (que son también en NP).
Necesita reducir un problema NP-Complete al problema que tiene. Si la reducción se puede hacer en tiempo polinomial, entonces ha probado que su problema es NP-completo, si el problema ya está en NP, porque:
No es más fácil que el problema NP-completo, ya que se puede reducir en tiempo polinomial lo que hace que el problema NP-Difícil.
Consulte el final de http://www.ics.uci.edu/~eppstein/161/960312.html para obtener más información.
Para demostrar que un problema L es NP-completo, debemos seguir los siguientes pasos:
Primero, demuestra que se encuentra en NP en absoluto.
Luego, encuentra otro problema que ya sabe que es NP completo y muestra cómo reduce polinomialmente el problema NP Difícil a su problema.