O problema é NP-completo e, portanto, não é provável que admita um algoritmo de tempo polinomial. Abaixo está uma prova da completude da NP do problema, mostrada por uma redução de 1 em 3-SAT.
Seja uma instância de 1-IN-3-SAT, em que recebemos uma fórmula 3-CNF-SAT solicitada a encontrar uma atribuição satisfatória em que cada cláusula seja satisfeita por exatamente um literal. Seja o conjunto de variáveis e o conjunto de cláusulas .ϕV(ϕ)nC(ϕ)m
Construímos uma instância com um orçamento de (o número permitido de vértices azuis).G=(A,B,E)b=n+m
Para cada variável , construir dois vértices vermelhos e
em em conjunto com vértices azuis em adjacentes a ambos. Isso força exatamente um de ou a ser invertido. Também terminamos com "vértices variáveis" invertidos, usando assim a primeira parte do orçamento.x∈V(ϕ)vxvx¯¯¯Ab+1Bvxvx¯¯¯n
Observação: são as únicas em vértices
.{vx,vx¯¯¯∣x∈V(ϕ)}A
Para cada cláusula, digamos , criamos vértices azuis e três vértices vermelhos extras , todas em . Seja todos totalmente adjacentes aos vértices azuis e conecte a , a
, e a .c=x∨y¯¯¯∨zb+1vx∈c,vy¯¯¯∈c,vz∈cBvx,vy¯¯¯,vzb+1vxvx∈cvyvy¯¯¯∈cvzvz∈c
Agora, como cada gadget de cláusula tem vértices azuis, sabemos que um
ou três literais nessa cláusula foram invertidos. Suponha que três foram invertidos para uma das cláusulas. Mas então usamos pelo menos o orçamento .b+1n+m+2
Suponha que seja uma instância yes com uma atribuição 1 em 3 . Inverta todos os vértices que correspondem a . Como cada cláusula é satisfeita por exatamente uma variável, para cada cláusula existe agora um vértice azul e, para cada variável, exatamente uma delas é azul; portanto, temos vértices azuis.ϕα:V(ϕ)→{⊤,⊥}αn+m=b