El problema es NP-completo y, por lo tanto, no es probable que admita un algoritmo de tiempo polinómico. A continuación se muestra una prueba de la completitud NP del problema, que se muestra mediante una reducción de 1 en 3 SAT.
Sea una instancia de 1-IN-3-SAT, donde se nos da una fórmula 3-CNF-SAT para encontrar una asignación satisfactoria donde cada cláusula se satisface exactamente con un literal. Sea el conjunto de variables y el conjunto de cláusulas.ϕV( ϕ )norteC( ϕ )metro
Construimos una instancia con un presupuesto de (el número permitido de vértices azules).G = ( A , B , E)b = n + m
Para cada variable , construya dos vértices rojos y
en junto con vértices azules en adyacentes a ambos. Esto obliga a exactamente uno de o . También terminamos con "vértices variables" invertidos, utilizando así la primera parte del presupuesto.x ∈ V( ϕ )vXvX¯¯¯UNAb + 1sivXvX¯¯¯norte
Observación: son los únicos vértices en
.{vX,vX¯¯¯∣ x ∈ V( ϕ ) }UNA
Para cada cláusula, digamos , creamos vértices azules y tres vértices rojos adicionales , todos en . Deje que estén completamente adyacentes a los vértices azules y conecte a , a
, y a .c = x ∨y¯¯¯∨ zb + 1vx ∈ c,vy¯¯¯∈c,vz∈ csivX,vy¯¯¯,vzb + 1vXvx ∈ cvyvy¯¯¯∈ cvzvz∈ c
Ahora, dado que cada gadget de cláusula tiene vértices azules , sabemos que se han invertido uno
o tres literales en esa cláusula. Supongamos que tres se voltearon por una de las cláusulas. Pero luego usamos al menos el presupuesto .b + 1n + m + 2
Supongamos que es una instancia de sí con una asignación 1 en 3 . Voltea cada vértice que corresponde a . Como cada cláusula se satisface con exactamente una variable, para cada cláusula ahora hay un vértice azul, y para cada variable, exactamente una de ellas es azul, por lo tanto tenemos vértices azules.ϕα : V( ϕ ) → { ⊤ , ⊥ }αn + m = b