Come provare che una versione vincolata di 3SAT in cui nessun letterale può verificarsi più di una volta, è risolvibile in tempo polinomiale?


10

Sto cercando di elaborare un compito (tratto dal libro Algorithms - di S. Dasgupta, CH Papadimitriou e UV Vazirani , Cap 8, problema 8.6a), e sto parafrasando quello che afferma:

Dato che 3SAT rimane NP-completo anche se limitato alle formule in cui ogni letterale appare al massimo due volte, mostra che se ogni letterale appare al massimo una volta, il problema è risolvibile in tempo polinomiale.

Ho tentato di risolvere questo problema separando le clausole in più gruppi:

  1. Clausole che non avevano alcuna variabile in comune con il resto delle clausole
  2. Clausole che avevano solo 1 variabile in comune
  3. Clausole che avevano 2 variabili in comune
  4. Clausole che avevano in comune tutte e 3 le variabili

Il mio ragionamento è stato tentato secondo il quale il numero di tali gruppi è finito (a causa della restrizione imposta di non essere letteralmente presente più di una volta), e potremmo prima provare a soddisfare il gruppo più limitato (gruppo 4) e quindi sostituire il risulta nei gruppi con restrizioni minori (3, 2 e poi 1), ma mi sono reso conto che questo non mi stava portando da nessuna parte, poiché questo non differisce molto dal caso della versione limitata di 3SAT in cui ogni letterale può apparire al massimo due volte, che ha dimostrato di essere NP-completo.

Ho provato a cercare online eventuali suggerimenti / soluzioni, ma tutto ciò che ho potuto ottenere è stato questo link , in cui il suggerimento dichiarato non aveva abbastanza senso per me, che sto riproducendo alla lettera qui:

Suggerimento: poiché ogni letterale appare al massimo una volta, converti questo problema in 2SAT problema - quindi tempo polinomiale, se un letterale appare nella clausola e complemento di (cioè, ) nella clausola , costruisci una nuova clausola clausola .C j x i ¯ x i C k C j¯ C kXioCjXioXio¯CKCjCK¯

Sia che hanno tre valori letterali ciascuno: non ho come dovrei convertirlo in 2SAT facendo (o se l'ho letto in modo errato).C k C j¯ C k ¯ C jC kCjCKCjCK¯CjCK¯

Qualsiasi aiuto nel decifrare il suggerimento o nel fornire un percorso che posso esplorare sarebbe molto apprezzato.

Risposte:


12

Senza perdita di generalità, possiamo supporre che ogni variabile appaia esattamente una volta positivamente e esattamente una volta negativamente (se una variabile appare solo una volta, imposta il suo valore per soddisfare la clausola e rimuovere la clausola). Possiamo anche supporre che una variabile non compaia in una clausola più di una volta (se una variabile appare sia positivamente che negativamente in una clausola, allora la clausola è soddisfatta e può essere rimossa). Questi non altereranno la soddisfacibilità.

Ora usa la regola di risoluzione per eliminare le variabili una per una (poiché ogni variabile appare esattamente una volta in positivo e una volta in negativo questo è un processo deterministico). Se in qualsiasi momento otteniamo la clausola vuota l'insieme di clausole non è soddisfacente, altrimenti è soddisfacente. Questo è perché:

  • la risoluzione è un sistema di prova proposizionale completo (cioè se una clausola è logicamente implicita dall'insieme di clausole, allora è derivabile dall'insieme di clausole usando solo la regola di risoluzione),

  • un insieme di clausole non è soddisfacente se implica logicamente la clausola vuota.

Questo algoritmo richiederà tempo polinomiale poiché ogni variabile viene risolta esattamente una volta. In particolare, ogni applicazione della risoluzione ridurrà il numero totale di clausole di una, quindi il numero di clausole non aumenta. Ad esempio, l'applicazione della risoluzione a produce , che ha una clausola in meno rispetto alla risoluzione precedente. Al contrario, se lo si applica a una formula 3SAT senza alcuna restrizione sul numero di aspetti di ciascun valore letterale, l'applicazione della risoluzione potrebbe comportare un aumento esponenziale del numero di clausole.( B C ) (XB)(X¯C)...)(BC)...


3
Sintesi della voce di Wikipedia: e implica . (OK, non proprio un riassunto.)¬ a C B Cun'B¬un'CBC
Rgrig,

1
Bisogna anche assicurarsi che l'invariante si applichi ancora dopo che la risoluzione è stata utilizzata. Dopo questo passaggio, l'istanza SAT (nota, non è più 3SAT) mantiene la proprietà che ogni letterale si verifica esattamente una volta positivamente e una volta negativamente. Ciò dimostra anche che la restrizione 3SAT nella domanda non era necessaria; la risoluzione unitaria funziona per qualsiasi istanza SAT che soddisfi la restrizione di grado 2. In breve: la risoluzione dell'unità risolve il grado 2 SAT in tempo lineare.
András Salamon,

Non capisco l'ultima parte. Perché le clausole aumenteranno esponenzialmente in 3SAT normale?
Parth Tamane,
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.