Perché il CNF viene utilizzato per SAT e non per DNF?


22

Non capisco bene perché quasi tutti i solutori di SAT utilizzano CNF anziché DNF. Mi sembra che risolvere DN sia più facile usando DNF. Dopotutto, devi solo scansionare l'insieme di implicanti e verificare se uno di essi non contiene sia una variabile che la sua negazione. Per CNF, non esiste una procedura semplice come questa.


5
Non tutti i risolutori di vincoli utilizzano CNF come input. Alcuni preferiscono non farlo, poiché viene preservata la struttura del set di vincoli originale.
Dave Clarke,

1
questa domanda ha una premessa errata e non credo che meriti un punteggio così alto come attualmente formulato. SAT è definita come la soluzione delle formule CNF. c'è un problema nel risolvere i DNF (potresti persino chiamarlo trovando compiti soddisfacenti ) ma non è chiamato / soprannominato SAT in CS. e imho questo dovrebbe essere migrato in cs.se ... un'altra nota-- la conversione di CNF in DNF e viceversa è in realtà molto simile o può essere vista come un algoritmo di compressione che fallisce gravemente in casi particolari (portando a esplodere esplodere di dimensioni)
vzn

10
@vzn: in realtà "SAT" viene talvolta utilizzato per riferirsi al problema di trovare un compito soddisfacente per qualsiasi formula booleana. CNF-SAT è solo il caso speciale più interessante, quindi tendiamo a usare "SAT" per riferirci a CNF-SAT in particolare come una sorta di synechdoche. DNF-SAT, ovviamente, è risolvibile in modo efficiente, allo stesso modo in cui CNF-TAUTOLOGY è risolvibile in modo efficiente. Sembra che la domanda non sia stata presa in considerazione.
Niel de Beaudrap,

Risposte:


56

La riduzione del libro di testo da SAT a 3SAT, dovuta a Karp, trasforma una formula booleana arbitraria in una formula booleana "equivalente" CNF di dimensioni polinomiali , tale che è soddisfacente se e solo se è soddisfacente. (A rigor di termini, queste due formule non sono equivalenti, perché ha variabili aggiuntive, ma il valore di realtà non dipende da quelle nuove variabili.)Φ ΦΦ Φ Φ Φ ΦΦΦΦ

Non è nota alcuna riduzione analoga da formule booleane arbitrarie a formule DNF; tutte le trasformazioni note aumentano esponenzialmente la dimensione della formula. Inoltre, a meno che P = NP, tale riduzione non sia possibile!


dopo la conversione di DNF in CNF e viceversa non è esattamente la stessa di P vs NP anche se probabilmente si riferisce ad alcune importanti separazioni di classi di complessità (apparentemente per classi "più grandi" di NP) ... il problema è che può portare a uno scoppio esponenziale in termini di dimensioni ... e in ogni caso la conversione tra CNF e DNF non è un problema decisionale ... ci sono diversi modi per trasformarlo in un problema decisionale ...
vzn

10
Penso che il punto di JeffE fosse che DNF-SAT è in P, quindi non può essere NP-completo se P = NP.
Luke Mathieson,

2
"tutte le trasformazioni conosciute" non sono corrette alla luce delle attuali conoscenze, inoltre ci sono formule / conversioni DNF <=> CNF che richiedono in modo evidente l'espansione dello spazio esponenziale indipendentemente dall'algoritmo ... immagino che la discussione sulla conversione DNF <=> DNF fosse altamente pertinente a questa domanda e questa risposta ci suggerisce ... l'abbreviazione "DNF-SAT" è usata ovunque in letteratura? non ricordo di averlo visto da solo ... mi sembra intrinsecamente confuso ... Soddisfare DNF è un problema decisionale, la conversione DNF <-> CNF è un problema funzionale e la risposta non rende questa distinzione troppo chiara; un'ottima risposta sarebbe ...
vzn

@ Jɛ ff E: ti dispiace chiarire cosa intendevi con "formula booleana arbitraria" qui? Guardando il documento di Karp , pagina 92, la SODDISFABILITÀ è definita sulle formule CNF. Ciò non influisce sulla tua risposta alla domanda del PO, ma sto cercando di assicurarmi che non ci siano risultati più generali per le formule booleane arbitrarie (cioè le formule che non sono necessariamente nel CNF). Grazie
lyes

22

La maggior parte delle cose importanti sono state dette ma vorrei sottolineare alcuni punti.

  1. la soddisfacibilità di una formula DNF è P
  2. la soddisfacibilità di una formula CNF è NP
  3. verificare se una formula CNF è una tautologia è P
  4. verificare se una formula DNF è una tautologia è coNP
  5. la negazione di DNF produce CNF e viceversa

Quindi i solutori di SAT usano il CNF perché mirano alla soddisfacibilità e qualsiasi formula può essere tradotta in un CNF preservando la soddisfacibilità nel tempo lineare.



1
@TayfunPay lo fanno. Ad esempio, . Se non si accettano due volte le clausole che contengono la stessa variabile, esiste un'unica rappresentazione di una tautologia, ovvero l'insieme vuoto di clausole. {{¬xx}}
Mikolas,

3
@Tayfun mentre concordo sul fatto che le definizioni in genere non consentono di ripetere le variabili nelle clausole, non credo di aver mai visto una definizione che non consentirebbe l'insieme vuoto di clausole. (E non mi è chiaro il motivo per cui vorresti farlo)
Mikolas,

2
@Tayfun 1) potresti indicarmi una pubblicazione che afferma che non ci sono tautologie nel CNF o che l'insieme vuoto di clausole non è CNF? 2) se non ammetti l'insieme vuoto di clausole, allora dovresti anche vietare la clausola vuota e non puoi neanche rappresentare falso 3) se non permetti vero e / o falso in CNF, stai perdendo la proprietà di poter rappresentare tutte le funzioni booleane, perché dovresti farlo?
Mikolas,

1
"non dovrebbe esserci ripetizione di variabili o valori letterali in una determinata clausola". --- che non consente formule o clausole vuote. A proposito, se non si accetta la clausola vuota, non è più possibile eseguire prove di confutazione della risoluzione, che costituiscono una parte abbastanza importante del ragionamento automatico.
Mikolas,

18

I solutori di SAT non "usano" il CNF - ricevono (spesso) il CNF come input e fanno del loro meglio per risolvere il CNF che gli viene dato. Come sottolinea la tua domanda, la rappresentazione è tutto - è molto più facile dire se un DNF è soddisfacente di un CNF della stessa dimensione.

Questo porta alla domanda sul perché i solutori di SAT non possono semplicemente trasformare il loro dato CNF in un DNF e risolvere il DNF risultante, e provare questo è un buon esercizio da seguire per comprendere i problemi della rappresentazione.


11

7 ° settembre 2013: Ulteriore risposta aggiunto, controllo in fondo alla pagina


Fondamentalmente, una formula DNF è una disgiunzione delle clausole , dove ogni clausola c i = l i , 1. . . l i , k è una congiunzione di letterali. Chiamiamo una clausola c i conflitti se e solo se contiene sia un letterale L e la sua negazione ¬ l . È facile vedere che ogni clausola non in conflitto codifica solo 2 n - kc1...cmci=li,1...li,kcil¬l2nksoluzioni della formula. Quindi l'intero DNF è solo un elenco di soluzioni. Una formula può avere esponenzialmente molte soluzioni, quindi la corrispondente formula DNF può avere esponenzialmente molte clausole. Prova a convertire questa formula CNF:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

alla corrispondente formula DNF: otterrai troppe clausole. In una parola: CNF è compatto, mentre DNF non lo è; CNF è implicito, mentre DNF è esplicito.

Il seguente problema è NP-complete: data un'istanza DNF, esiste un'assegnazione di variabili che falsifica tutte le clausole?


4
Per ottenere la formattazione LaTeX corretta, sostituire \ ee \ o con \ land e \ lor (o \ wedge e \ vee).
Jeffε,

2
Non c'è nulla di intrinsecamente più compatto in una trasformazione al normale CNF, la vera chiave della domanda OP è il fatto che è possibile creare quelle funzioni "equabili" del CNF con variabili ausiliarie. C'è probabilmente un'approssimazione simile che puoi fare con il DNF per risolvere un problema diverso invece di testarne la soddisfacibilità. (funzioni di insoddisfacibilità? ...)
dividebyzero

1
Questa intuizione di Giorgio Camerani non è buona. Lo stesso aumento esponenziale del numero di clausole può verificarsi se si converte qualcosa in CNF. Scegli questo stesso esempio e sostituisci "e" s con "o" s. La conversione da questa piccola espressione DNF al CNF sarà enorme lo stesso. Hanno un po 'di una relazione ying-e-yang con loro.
dividebyzero,

@dividebyzero: ho dedicato una risposta separata per rispondere ai tuoi commenti.
Giorgio Camerani,

6

Ho appena realizzato un'altra cosa, che spero meriti una risposta separata. La presunzione della domanda non è del tutto vera. Un diagramma di decisione binario (BDD) potrebbe essere visto come una rappresentazione compatta / raffinata di DNF. Ci sono stati alcuni solutori SAT che utilizzano BDD ma credo che non compaiano più.

C'è un bel documento di Darwiche e Marchese che studia diverse proprietà di varie rappresentazioni di funzioni booleane.


4

Questa ulteriore risposta è intesa come feedback per il commento di dividebyzero alla mia precedente risposta.

Come dice dividebyzero, è certamente vero che CNF e DNF sono due facce della stessa medaglia.

PNPcomplete

PNPcomplete

A un'estremità abbiamo contraddizioni, cioè formule insoddisfacenti. All'estremità opposta abbiamo Tautologie, cioè formule non falsificabili. Nel mezzo, abbiamo formule che sono sia soddisfacenti che falsificabili.

nk2nk

nk2nk

k=02nNPcomplete

k=02nNPcomplete

2n

2n

Sotto questa luce diventa più chiaro il motivo per cui la soddisfazione del CNF e la falsità del DNF sono equivalenti in termini di durezza computazionale. Perché in realtà sono lo stesso problema, poiché il compito sottostante è esattamente lo stesso: dire se l'unione di più insiemi è uguale allo spazio di tutte le possibilità . Tale compito ci porta al più ampio regno del conteggio, che è a mio modesto parere una di quelle strade da esplorare con fervore per sperare di compiere progressi non trascurabili su questi problemi (dubito che ulteriori ricerche sui risolutori basati sulla risoluzione potrebbe infine portare rivoluzionari progressi teorici, mentre certamente continua a portare sorprendenti progressi pratici).

La difficoltà di tale compito è che questi insiemi si sovrappongono selvaggiamente, in modo inclusione - esclusione.

La presenza di tale sovrapposizione è precisamente dove risiede la durezza del conteggio. Inoltre, il fatto che lasciamo che questi insiemi si sovrappongano è la ragione che ci consente di avere formule compatte il cui spazio di soluzione è tuttavia esponenzialmente ampio.


4

Ho deciso di trasformare tutte queste risposte in questa discussione (in particolare la risposta di Giorgio Camerani) in un bel tavolo in modo che la dualità sia visibile a colpo d'occhio:

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]

Risposta più breve alla domanda: mostrare soddisfacibilità (risolvere SAT) tramite DNF può essere fatto solo in tempo esponenziale secondo la tabella sopra.


1
Che cos'è una "formula PL" e cosa significa "NF"?
Joshua Grochow,

4
Ci sono alcuni problemi qui. (1) Penso che per "non falsificabilità" intendi "tautologia". (2) KNF dovrebbe essere CNF.
Huck Bennett,

2
A(φ)φφA(φ)φA(φ)

1
(1) "logica predicata" dovrebbe essere "logica proposizionale". (2) Le conversioni in forme normali non sono problemi di decisione, ma problemi di funzione (o meglio, problemi di ricerca, in quanto le "forme normali" non sono univoche). Pertanto, le classi di decisione indicate nella tabella non sono appropriate.
Emil Jeřábek sostiene Monica il

1
Δ3P
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.