Il problema è NP-completo e pertanto non è probabile che ammetta un algoritmo temporale polinomiale. Di seguito è una prova della completezza NP del problema, dimostrata da una riduzione da 1 in 3-SAT.
Sia un'istanza di 1-IN-3-SAT, in cui ci viene data una formula 3-CNF-SAT che ci chiede di trovare un incarico soddisfacente in cui ogni clausola è soddisfatta esattamente da un letterale. Sia l'insieme di variabili e l'insieme di clausole .φV( ϕ )nC( ϕ )m
Costruiamo un'istanza con un budget di (il numero consentito di vertici blu).G = ( A , B , E)b = n + m
Per ogni variabile , costruisci due vertici rossi e
in insieme a vertici blu in adiacenti ad entrambi. Questo impone di esattamente uno di o . Finiamo anche con "vertici variabili" capovolti, utilizzando così la prima parte del budget.x ∈ V( ϕ )vXvX¯¯¯UNb + 1BvXvX¯¯¯n
Nota: sono i soli vertici in
.{vX,vX¯¯¯∣ x ∈ V( ϕ ) }UN
Per ogni clausola, diciamo , creiamo vertici blu e tre vertici rossi extra , il tutto in . Lascia che siano tutti completamente adiacenti ai vertici blu e collega a , a
, e da a .c = x ∨y¯¯¯∨ zb + 1vx ∈ c,vy¯¯¯∈ c,vz∈ cBvX,vy¯¯¯,vzb + 1vXvx ∈ cvyvy¯¯¯∈ cvzvz∈ c
Ora, poiché ogni gadget della clausola ha vertici blu, sappiamo che uno
o tre letterali in quella clausola sono stati capovolti. Supponiamo che tre siano stati capovolti per una delle clausole. Ma poi utilizziamo almeno il budget .b + 1n + m + 2
Supponiamo che sia un'istanza yes con un'assegnazione 1 in 3 . Capovolgi ogni vertice che corrisponde a . Poiché ogni clausola è soddisfatta esattamente da una variabile, per ogni clausola ora c'è un vertice blu, e per ogni variabile, esattamente una di esse è blu, quindi abbiamo vertici blu.φα : V( ϕ ) → { ⊤ , ⊥ }αn + m = b