Por que o CNF é usado para SAT e não DNF?

22

Não entendo muito bem por que quase todos os solucionadores de SAT usam CNF em vez de DNF. Parece-me que resolver o SAT é mais fácil usando DNF. Afinal, você só precisa verificar o conjunto de implicantes e verificar se um deles não contém uma variável e sua negação. Para a CNF, não existe um procedimento simples como este.

Kaveh
fonte
5
Nem todos os solucionadores de restrições usam CNF como entrada. Alguns preferem não, porque a estrutura do conjunto de restrições original é preservada.
Dave Clarke
1
esta pergunta tem uma premissa equivocada e não acha que mereça uma classificação tão alta quanto a atual. SAT é definido como a solução de fórmulas de CNF. existe um problema de solução de DNFs (você pode até chamar de encontrar tarefas satisfatórias ), mas não é chamado / apelidado de SAT no CS. & imho isso deve ser migrado para cs.se ... outra observação - converter CNF para DNF e vice-versa é realmente muito semelhante ou pode ser visto como um algoritmo de compactação que falha muito em casos específicos (levando a uma explosão exponencial em tamanho)
vzn 22/10/12
10
@vzn: na verdade, "SAT" é usado algumas vezes para se referir ao problema de encontrar uma atribuição satisfatória para qualquer fórmula booleana. O CNF-SAT é apenas o caso especial mais interessante, de modo que tendemos a usar "SAT" para nos referirmos ao CNF-SAT, em particular, como uma espécie de sinechdoche. O DNF-SAT, é claro, é eficientemente solucionável, da mesma forma que o CNF-TAUTOLOGY é eficientemente solucionável. A questão parece ter como premissa não perceber isso.
Niel de Beaudrap 23/10/12

Respostas:

56

A redução do livro didático de SAT para 3SAT, devido a Karp, transforma uma fórmula booleana arbitrária em uma fórmula booleana CNF "equivalente" de tamanho polinomial , de modo que seja satisfatório se e somente se for satisfatório. (Estritamente falando, essas duas fórmulas não são equivalentes, porque possui variáveis ​​adicionais, mas o valor de na verdade não depende dessas novas variáveis.)Φ ΦΦ Φ ' Φ ' Φ 'ΦΦΦΦ

Nenhuma redução semelhante de fórmulas booleanas arbitrárias para fórmulas DNF é conhecida; todas as transformações conhecidas aumentam exponencialmente o tamanho da fórmula. Além disso, a menos que P = NP, essa redução não seja possível!

Jeffε
fonte
após a conversão de DNF para CNF e vice-versa não é exatamente o mesmo que P vs NP, embora provavelmente esteja relacionado a algumas separações importantes de classes de complexidade (aparentemente para classes "maiores" que NP) ... o problema é que isso pode levar a uma explosão exponencial no tamanho ... e em qualquer caso conversão entre CNF e DNF não é um problema de decisão ... existem várias maneiras de transformá-lo em um problema de decisão ...
vzn
10
Eu acho que o ponto de JeffE era que DNF-SAT está em P, então não pode ser NP-completo a menos que P = NP.
Luke Mathieson
2
"todas as transformações conhecidas" não estão corretas, considerando o conhecimento atual; depois, existem fórmulas / conversões de DNF <=> CNF que provavelmente requerem uma explosão de espaço exponencial, independentemente do algoritmo ... acho que a discussão sobre a conversão de CNF <=> DNF foi altamente relevante para esta pergunta e esta resposta sugerem que ... a abreviatura "DNF-SAT" é usada em algum lugar da literatura? não me lembro de vê-lo eu mesmo ... parece inerentemente confuso para mim ... A satisfação do DNF é um problema de decisão, a conversão do DNF <-> CNF é um problema de função e a resposta não torna essa distinção muito clara; uma grande resposta seria ... #
2212 vzn
@ Jɛ ff E: você se importa em esclarecer o que quis dizer com "fórmula booleana arbitrária" aqui? Observando o artigo de Karp , página 92, SATISFIABILITY é definido nas fórmulas da CNF. Isso não afeta sua resposta à pergunta do OP, mas estou tentando garantir que não haja mais resultados gerais para fórmulas booleanas arbitrárias (ou seja, fórmulas que não estão necessariamente no CNF). Obrigado
lyes
22

A maioria das coisas importantes foi dita, mas eu gostaria de enfatizar alguns pontos.

  1. a satisfação de uma fórmula DNF é P
  2. satisfação de uma fórmula CNF é NP
  3. testar se uma fórmula CNF é uma tautologia é P
  4. testar se uma fórmula DNF é uma tautologia é coNP
  5. negar DNF produz CNF e vice-versa

Portanto, os solucionadores de SAT usam CNF porque têm como alvo a satisfação e qualquer fórmula pode ser convertida em CNF, preservando a satisfação em tempo linear.

Mikolas
fonte
1
@TayfunPay eles fazem. Por exemplo, . Se você não permitir cláusulas contendo a mesma variável duas vezes, haverá uma única representação de uma tautologia, que é o conjunto vazio de cláusulas. {{¬xx}}
Mikolas
3
@ Tayfun, embora eu concorde que as definições normalmente desaprovam variáveis ​​repetidas nas cláusulas, acho que nunca vi uma definição que desaprovasse o conjunto vazio de cláusulas. (E não é claro para mim por que você iria querer fazer isso)
Mikolas
2
@ Tayfun 1) você poderia me indicar uma publicação que diz que não há tautologias na CNF ou que o conjunto vazio de cláusulas não é CNF? 2) se você desaprovar o conjunto vazio de cláusulas, também deverá desaprovar a cláusula vazia e também não poderá representar falso 3) se não permitir verdadeiro e / ou falso no CNF, estará perdendo a propriedade de poder representar todas as funções booleanas, por que você quer fazer isso?
Mikolas
1
"não deve haver repetição de variáveis ​​nem literais em nenhuma cláusula." --- que não proíbe fórmulas ou cláusulas vazias. BTW Se você não permitir a cláusula vazia, não poderá mais fazer provas de refutação de resolução, que constituem uma parte bastante importante do raciocínio automatizado.
Mikolas
18

Os solucionadores de SAT não "usam" a CNF - eles (frequentemente) recebem a CNF como insumo e fazem o possível para resolver a CNF que recebem. Como sua pergunta ressalta, a representação é tudo - é muito mais fácil saber se um DNF é satisfatório do que um CNF do mesmo tamanho.

Isso leva à questão de por que os solucionadores de SAT não podem simplesmente transformar seu CNF em DNF e resolver o DNF resultante, e tentar este é um bom exercício para entender as questões de representação.

Lev Reyzin
fonte
11

7 th setembro 2013: Além disso resposta acrescentou, verificação inferior da página


Basicamente, uma fórmula DNF é uma disjunção das cláusulas , em que cada cláusula é uma conjunção de literais. Vamos chamar uma cláusula conflitante se e somente se ela contiver um literal e sua negação . É fácil ver que cada cláusula não conflitante apenas codifica soluções da fórmula. Portanto, todo o DNF é apenas uma enumeração de soluções. Uma fórmula pode ter muitas soluções exponencialmente, portanto, a fórmula DNF correspondente pode ter muitas cláusulas exponencialmente. Tente converter esta fórmula CNF:c i = l i , 1. . . l i , k c i lc1...cmci=li,1...li,kcil¬l2nk

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

à sua fórmula DNF correspondente: você receberá muitas cláusulas. Em uma palavra: CNF é compacto, enquanto DNF não; CNF está implícito, enquanto DNF é explícito.

O seguinte problema é NP-complete: dada uma instância DNF, existe uma atribuição de variáveis ​​que falsifica todas as cláusulas?

Giorgio Camerani
fonte
4
Para obter a formatação correta do LaTeX, substitua \ e e \ ou por \ land e \ lor (ou \ wedge e \ vee).
Jeffε
2
Não há nada inerentemente mais compacto na transformação para a CNF comum; a chave real da pergunta do OP é o fato de que você pode criar essas funções "equisatisfatórias" da CNF com variáveis ​​auxiliares. Provavelmente, existe uma aproximação semelhante que você pode fazer com o DNF para resolver um problema diferente, em vez de testar a satisfação. (funções equi-unsatisfiability ...?)
dividebyzero
1
Esse insight de Giorgio Camerani não é bom. O mesmo aumento exponencial no número de cláusulas pode ocorrer se você converter algo em CNF. Escolha este mesmo exemplo e substitua "e" s por "ou" s. A conversão dessa pequena expressão DNF para a CNF será enorme da mesma forma. Eles têm um pouco de relação ying-yang com eles.
dividebyzero
@dividebyzero: Dediquei uma resposta separada para responder aos seus comentários.
Giorgio Camerani
6

Acabei de perceber mais uma coisa, que espero merecer uma resposta separada. A presunção da pergunta não é inteiramente verdadeira. Um diagrama de decisão binária (BDD) pode ser visto como uma representação compacta / refinada do DNF. Houve alguns solucionadores SAT usando BDDs, mas acredito que eles não aparecem mais.

Há um belo artigo de Darwiche e Marquis estudando diferentes propriedades de várias representações de funções booleanas.

Mikolas
fonte
4

Essa resposta adicional é um feedback do comentário do dividebyzero à minha resposta anterior.

Como o dividebyzero diz, certamente é verdade que CNF e DNF são dois lados da mesma moeda.

Quando você precisa encontrar uma tarefa satisfatória, o DNF é explícito, pois mostra manifestamente suas tarefas satisfatórias (a DNF Satisfability pertence a ), enquanto a CNF está implícita à medida que envolve e vira para ocultar suas tarefas satisfatórias dos seus olhos ( CNF Satisfability é ). Não conhecemos nenhum procedimento que seja capaz de desembrulhar e desenrolar qualquer fórmula CNF em alguma fórmula DNF equisatisfatória que não seja exponencialmente dimensionada. Esse foi o ponto da minha resposta anterior (cujo exemplo pretendia mostrar a explosão exponencial, embora, sem dúvida, esse exemplo não tenha sido a melhor escolha possível).N P - c o m p l e t ePNPcomplete

Por outro lado, quando você precisa encontrar uma atribuição falsificada, o CNF é explícito, pois mostra manifestamente suas atribuições falsas (a falsificação de CNF pertence a ), enquanto o DNF está implícito à medida que envolve e tenta ocultar suas atribuições falsas do seu olhos (a falsificação de DNF é ). Não conhecemos nenhum procedimento que seja capaz de desembrulhar e desenrolar qualquer fórmula DNF em alguma fórmula CNF equifalsificável que não seja exponencialmente dimensionada.N P - c o m p l e t ePNPcomplete

Em uma extremidade, temos contradições, ou seja, fórmulas insatisfatórias. Na extremidade oposta, temos Tautologias, ou seja, fórmulas não falsificáveis. No meio, temos fórmulas que são satisfatórias e falsificáveis.

Em qualquer fórmula CNF com variáveis, toda cláusula de comprimento codifica manifestamente atribuições falsas.k 2 n - knk2nk

Em qualquer fórmula DNF com variáveis, todo termo de comprimento codifica manifestamente atribuições satisfatórias.k 2 n - knk2nk

Uma fórmula CNF sem cláusulas é uma Tautologia, porque não possui nenhuma atribuição falsificada. Uma fórmula CNF que contém a cláusula vazia (que inclui todas as outras cláusulas) é uma contradição, porque a cláusula vazia (que tem ) indica que todas as atribuições estão falsificando. Qualquer outra fórmula CNF é uma contradição ou uma dessas fórmulas no meio (e é distinguir entre esses dois casos).2 n N P - c o m p L e T ek=02nNPcomplete

Uma fórmula DNF sem termos é uma contradição, porque não possui nenhuma atribuição satisfatória. Uma fórmula DNF que contém o termo vazio (que inclui todos os outros termos) é uma Tautologia, porque o termo vazio (que tem ) indica que todas as atribuições são satisfatórias. Qualquer outra fórmula DNF é uma Tautologia ou uma dessas fórmulas no meio (e é distinguir entre esses dois casos).2 n N P - c o m p L e T ek=02nNPcomplete

Com uma fórmula CNF, distinguir entre os dois casos acima significa ser capaz de dizer se todas as atribuições falsas coletivamente trazidas pela presença de cláusulas se sobrepõem de maneira a cobrir todas as atribuições (nesse caso, a fórmula é uma contradição) caso contrário, é satisfatório).2n

Com uma fórmula DNF, distinguir entre os dois casos acima significa ser capaz de dizer se todas as tarefas satisfatórias coletivamente trazidas pela presença de termos se sobrepõem de forma a cobrir todas as tarefas (nesse caso, a fórmula é uma Tautologia , caso contrário, é falsificável).2n

Sob essa luz, fica mais claro por que CNF Satisfability e DNF Falsifiability são equivalentes em termos de dureza computacional. Porque eles realmente são o mesmo problema, pois a tarefa subjacente é exatamente a mesma: dizer se a união de vários conjuntos é igual ao espaço de todas as possibilidades . Tal tarefa nos leva ao campo mais amplo da contagem, que é, na minha humilde opinião, um daqueles caminhos a serem fervorosamente explorados, a fim de esperar um progresso não negligenciável sobre esses problemas (duvido que mais pesquisas sobre solucionadores baseados em resolução pode eventualmente trazer avanços teóricos inovadores, enquanto certamente continua a trazer avanços práticos surpreendentes).

A dificuldade de tal tarefa é que esses conjuntos se sobrepõem descontroladamente, de maneira inclusão-exclusão.

A presença de tal sobreposição é precisamente onde reside a dureza da contagem. Além disso, o fato de permitirmos a sobreposição desses conjuntos é o próprio motivo que nos permite ter fórmulas compactas cujo espaço de solução é, no entanto, exponencialmente grande.

Giorgio Camerani
fonte
4

Decidi transformar todas essas respostas neste tópico (especialmente a resposta de Giorgio Camerani) em uma boa tabela para que a dualidade seja visível de uma só vez:

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

()

()()FPNP[1]

Resposta mais curta à pergunta: mostrar satisfação (resolvendo SAT) via DNF só pode ser feito em tempo exponencial, de acordo com a tabela acima.

mcb
fonte
1
O que é uma "fórmula PL" e o que significa "NF"?
Joshua Grochow
4
Existem alguns problemas aqui. (1) Eu acho que por "infalsificabilidade" você quer dizer "tautologia". (2) O KNF deve ser CNF.
Huck Bennett
2
A(φ)φφA(φ)φA(φ)
1
(1) "lógica predicada" deve ser "lógica proposicional". (2) As conversões para formas normais não são problemas de decisão, mas problemas de função (ou melhor, problemas de pesquisa, pois as "formas normais" não são únicas). Portanto, as classes de decisão fornecidas na tabela são inadequadas.
Emil Jeřábek apoia Monica
1
Δ3P