Quanto possiamo ridurre il numero di clausole convertendoci da


8

Se supponiamo di iniziare con un'istanza di -SAT e di provare a convertire il problema in un'istanza di -SAT, dove ci sono valori letterali per clausola, possiamo garantire una riduzione del importo totale delle clausole?K(K+m)(K+m)

Mi sono reso conto dopo la pubblicazione che non possiamo garantire che il numero di clausole possa essere ridotto. Tuttavia, mi chiedo se abbiamo clausole, potremmo ottenere qualcosa come clausole con una tecnica di "riduzione"?nn/K+O(1)

In tal caso, di quanto possiamo ridurre il numero totale di clausole? Ad esempio, se iniziamo con -SAT con le clausole , qual è il minimo garantito , la nuova quantità di clausole, che risulterà se convertiamo questa istanza in -SAT?KnKnK+m(K+m)

Ancora più importante, come possiamo realizzare questa conversione?

Risposte:


5

Un tipo di conversione è semplicemente il contrario della conversione da k-sat-a-3-sat:

Ricordiamo, la conversione di k-sat in "j" -sat, j<K:

(X1X2...Xj...XK)(X1X2...Xjd)(d¯Xj+1Xj+2...XK)

Qui, dè una variabile fittizia, che significa qualcosa come "Questa clausola non è vera, ma un'altra clausola che conosco lo è". L'altra clausola è la clausola successiva che è stata separata dall'originale. Quanto sopra è un esempio in cui2jK, altrimenti il ​​secondo nodo diviso sarà ancora più grande di j, e dobbiamo dividerlo di nuovo, allo stesso modo.

Invertire la conversione

(X1X2...Xj)(X¯jXj+1...XK) quindi puoi combinare le clausole in:

(X1X2...Xj-1Xj+1Xj+2...XK)

Nota i dispersi Xj in questa nuova formula.

Ovviamente, non sei sicuro di trovare clausole come questa in una formula arbitraria, quindi la più piccola garantitanK+m è uguale a nK.

Tuttavia, sulle formule ordinarie, una formula e la sua negazione appariranno nella formula; altrimenti è possibile eseguire l'eliminazione letterale (descritta qui ). Per semplicità, supponiamo anche cheK+m2K-2. Quindi possiamo combinare due clausole che contengono un letterale in una e la sua negazione nell'altra. Poiché ogni letterale dovrebbe avere un'altra clausola con una negazione, si può empiricamente indovinare che dovresti essere in grado di dimezzare il numero di clausole (potresti rimanere bloccato con alcuni letterali e le loro negazioni in clausole già unite, e quindi rimarrai bloccato con alcune clausole non accettabili alla fine; unire in modo ottimale clausole come questa potrebbe essere un altro problema interessante).

MODIFICARE:

Dopo la riflessione, me ne sono reso conto Xjdeve essere libero e non utilizzato altrove nella formula per comprimere le due clausole a cui appartiene. Pertanto, questo tipo di clausole (una contenente un letterale e l'altra la sua negazione, con questo letterale non utilizzato altrove nella formula) è molto più rara di quanto pensassi in precedenza. Quindi la vera risposta è che non esiste alcuna garanzia di quanto possiamo ridurre il numero di clausole nella formula.


Come hai ottenuto quella formula di conversione? Mi sembra errato e puoi verificarlo dalla tabella della verità.
Matt Groff,

Ciao, l'ho letto molto tempo fa, ma puoi vederlo qui . Potrei averlo scritto male, o in qualche modo reso qualcosa di poco chiaro nella conversione; in tal caso, sentiti libero di segnalarlo.
Realz Slaw,

@MattGroff Non riesco a trovare il mio errore, puoi fornire un contro esempio?
Realz Slaw,

L'esempio del contatore che ho verificato era iniziare con una singola clausola, (UNB). Ho quindi diviso questo in due clausole,(UNd)(d¯B), dove d¯ indica "no d". Se lo controlli in una tabella di verità, non dovrebbero essere uguali. Aspetterò con ansia di sapere se otterrai gli stessi risultati. Inoltre, credo di sapere come possiamo risolvere questa risposta in modo che funzioni , se risulta che la conversione da k-SAT originale a "j" -SAT non è corretta ...
Matt Groff,

UNBUNB(UNd)(d¯B)0000|d={0,1}0111|d={1}1011|d={0}1111|d={1,0}
Realz Slaw,
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.