Traduzione di SAT in HornSAT


26

È possibile tradurre una formula booleana B in una congiunzione equivalente di clausole di Horn? L'articolo di Wikipedia su HornSAT sembra implicare che lo sia, ma non sono stato in grado di inseguire alcun riferimento.

Nota che non intendo "in tempo polinomiale", ma piuttosto "affatto".


1
Cosa intendi con "tradurre"? È ovvio che ci sono istanze SAT che non possono essere scritte come una formula HornSAT. Ad esempio, la clausola (p o q). Ma forse vuoi dire che vuoi una riduzione tale che la formula di input SAT sia soddisfacente se la formula di HornSAT di output è soddisfacente? In quel caso, ovviamente, c'è una banale riduzione poiché non ti interessa l'efficienza ...
arnab,

Non intendo dire soddisfacente, dal momento che è davvero banale senza restrizioni di efficienza. Intendo equivalente a "avere gli stessi incarichi soddisfacenti" quando consideriamo le variabili comuni sia all'istanza SAT sia alla corrispondente istanza HornSAT (se dovessimo aggiungere alcune variabili ausiliarie, le proiettiamo fuori). Sono d'accordo che non dovrebbe essere possibile, esattamente per l'esempio (P v Q), ma non so come dimostrarlo. Hai in mente uno schizzo di prova?
Evgenij Thorstensen,

3
La domanda è ancora ambigua. Puoi spiegarci cosa intendi per "proiettarli"? Intendi "l'assegnazione A soddisfa l'istanza SAT F se c'è un'assegnazione B alle variabili ausiliarie tale che (A, B) soddisfa l'istanza HornSAT F '"? In tal caso, penso che tu possa farlo semplicemente usando la completezza P di HornSAT.
Ryan Williams,

Risposte:


24

No. Le congiunzioni delle clausole di Horn ammettono almeno i modelli di Herbrand, mentre le disgiunzioni dei letterali positivi no. Cf. Lloyd, 1987, Fondamenti della programmazione logica .

Almeno i modelli Herbrand hanno la proprietà di trovarsi nelle intersezioni di tutti i soddisfacenti. I modelli di Herbrand per sono , che non contiene la sua intersezione, quindi come dice arnab, è un esempio di una formula che non può essere espressa come una congiunzione di clausole Horn.(un'B)( a b ){{un'},{B},{un',B}}(un'B)

Risposta errata sovrascritta


Intelligente, ma la clausola -a_1 & ... & -a_n -> # non è una clausola Horn.
Evgenij Thorstensen,

@Evgenij: Lo è.
Radu GRIGore,

4
Una clausola del corno è una disgiunzione di letterali con al massimo un letterale positivo. Traducendo quanto sopra in una disgiunzione di valori letterali, otteniamo a_1 v ... v a_n, con tutti i letterali positivi. La clausola sopra è dual-Horn, ma questo non aiuta il mio interesse.
Evgenij Thorstensen,

@rgrig: No, ero confuso. @Evgenij: risposta risolta.
Charles Stewart,

5

L'affidabilità può essere raggiunta nel modo seguente (riduzione da 2SAT a HornSAT). Quindi può anche essere ridotto a una formula di Horn in questo modo. Grazie a Joshua Gorchow per aver sottolineato questa riduzione.(pq)

Input: una formula 2-SAT , con le clausole , ..., sulle variabili , ..., .C 1 C k x 1 x nφC1CKX1Xn

Costruisci una formula di corno come segue:Q

Ci saranno 4 ( scegli ) nuove variabili, una per ogni possibile possibile clausola 2-cnf sulle variabili con al massimo 2 letterali ( non solo le clausole in ) - questo è comprese le clausole unitarie e la clausola vuota. La nuova variabile corrispondente a una clausola sarà indicata da .n 2 + 2 n + 1 x C i ϕ D z D×n2+2n+1XCioφDzD

Il 4 ( sceglie ) deriva dal fatto che ogni coppia di dà origine a quattro clausole 2-cnf. Il deriva dal fatto che ogni può creare 2 clausole unitarie. E infine "uno" deriva dalla clausola vuota. Quindi il numero totale di possibili clausole 2-cnf è 4 ( scegli ) .n 2 ( x i , x j ) 2 n x i = × n 2 + 2 n + 1×n2(Xio, Xj)2nXio=×n2+2n+1

Se una clausola 2-cnf segue da altre due clausole 2-cnf ed con un singolo passaggio di risoluzione, quindi aggiungiamo la clausola Horn a ... Ancora una volta, lo facciamo per tutte le possibili clausole 2-CNF - tutti e 4 ( scegliere ) di loro - non solo il .FDE(zDzEzF)Q×n2+2n+1Cio

Poi si aggiungono le clausole unità a , per ogni clausola appare in ingresso ... Infine, si aggiunge la clausola di unità a .zCioQCioφ(¬zempty)Q

La formula Horn è ora completa. Nota che le variabili usate in sono completamente diverse da quelle usate in .QQφ


Qualcuno è a conoscenza di un algoritmo nella direzione opposta? Data una formula Horn , esiste un metodo per ottenere un'espressione equivalente 2SAT (2CNF) ϕ 2 , in modo che ϕ 1 sia soddisfacente se e solo se ϕ 2 lo è? Usando lo stesso set di variabili, o usando variabili extra o usando un set di variabili completamente diverso (come fatto nella risposta sopra)? O una prova che questo è impossibile? ϕ1ϕ2φ1φ2
Martin Seymour,

2

Non penso sia possibile. Non c'è modo, per esempio, per scrivere come una congiunzione di clausole di Horn in quanto φ solo fuorilegge un singolo assegnamento di verità, vale a dire 0011. Tutte le clausole di corno con meno di 4 letterali metterebbero fuorilegge più di 1 assegnazione di verità, e le clausole di corno con 4 letterali possono solo mettere fuorilegge le assegnazioni di verità con al massimo uno 0.ϕ=(X1X2¬X3¬X4)ϕ

Modifica: oops non si è accorto che è stata già fornita una risposta

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.