Prove que a NP está completa para decidir a satisfação da fórmula booleana monótona


12

Estou tentando resolver esse problema e estou realmente lutando.

Uma fórmula booleana monótona é uma fórmula na lógica proposicional em que todos os literais são positivos. Por exemplo,

(x1x2)(x1x3)(x3x4x5)

é uma função booleana monótona. Por outro lado, algo como

(x1x2x3)(¬x1x3)(¬x1x5)

não é uma função booleana monótona.

Como posso provar a integridade do NP para esse problema:

Determine se uma função booleana monótona é satisfatória se variáveis ​​ou menos estiverem definidas como 1 ?k1

Claramente, todas as variáveis ​​poderiam ser definidas como positivas, e isso é trivial, e é por isso que existe a restrição de variáveis ​​definidas positivamente.k

Eu tentei uma redução de SAT para fórmula booleana monótona. Uma coisa que tentei é substituir uma variável fictícia por cada literal negativo. Por exemplo, tentei substituir por z 1 e tentei forçar x 1 e z 1 a terem valores diferentes. Ainda não consegui fazer isso funcionar.¬x1z1x1z1


Bem-vinda! Por favor, tome mais cuidado com o idioma e a formatação.
Raphael

Respostas:


12

O "pai" do problema que você está vendo às vezes é chamado de Satisfação Ponderada (WSAT, particularmente em complexidade parametrizada) ou Min-Ones (embora essa seja normalmente uma versão de otimização, mas quase o suficiente). Esses problemas têm a restrição "no máximo variáveis ​​definidas como true" como seu recurso de definição.k

A restrição às fórmulas monótonas é surpreendentemente fácil de mostrar dureza, basta pensar fora dos problemas de satisfação por um momento. Em vez de tentar modificar uma instância SAT, começamos com Dominating Set (DS).

Veja se você pode obtê-lo de lá. Há mais spoilers, divididos em pedaços, mas evite-os se puder. Não mostrarei associação ao NP, você não deve ter nenhum problema com isso.

Dada uma instância de DS (ou seja, queremos um conjunto dominante de tamanho no máximo k para G ), podemos construir uma instância ( ϕ , k ) de WSAT em que a fórmula ϕ é uma fórmula monótona de CNF:(G,k)kG(ϕ,k)ϕ

A construção básica:

Para cada temos uma variável v var ( ϕ ) , para cada v V ( G ) temos uma cláusula c v = u N ( v ) u .vV(G)vvar(ϕ)vV(G)cv=uN(v)u

Um esboço da prova:

Cada vértice deve estar no conjunto dominante ou ter um vizinho, portanto, se pudermos encontrar vértices que formam um conjunto dominante, as variáveis k correspondentes poderão ser configuradas como verdadeiras em ϕ , e cada cláusula deverá conter pelo menos um deles. Da mesma forma, se houver uma atribuição que satisfaça o peso k , as variáveis ​​verdadeiras correspondem aos vértices que colocamos no conjunto dominante - toda cláusula c v deve ter pelo menos um, para que cada v seja dominado (por si só ou não).kkϕkcvv


Uau, isso faz muito mais sentido, obrigado! Eu acho que definitivamente fui pego tentando reduzir o SAT até a fórmula booleana monótona.
nat

Também estou vendo que também podemos reduzir a cobertura de vértices até a fórmula booleana monótona.
nat

1
k

Eu acho que exatamente a mesma abordagem funciona com cobertura de vértices.
Haskell Fun

@ HaskellFun, eu pensei sobre isso também. A cobertura de vértice é igual à Min-W2SAT monótona.
precisa saber é o seguinte

2

zi¬xiϕϕ¬xizixizikϕϕkxiziϕkk

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.