Un problema CNF SAT NP è difficile quando il numero totale (ma non la larghezza) delle clausole a 3 o più termini è delimitato da una costante? Che dire specificamente quando c'è solo una di queste clausole?
Un problema CNF SAT NP è difficile quando il numero totale (ma non la larghezza) delle clausole a 3 o più termini è delimitato da una costante? Che dire specificamente quando c'è solo una di queste clausole?
Risposte:
Vale la pena notare che il problema diventa NP-difficile quando la restrizione è leggermente allentata.
Con un numero fisso di clausole che hanno anche dimensioni limitate, il numero medio di letterali in una clausola è il più vicino possibile a 2, considerando un'istanza con abbastanza variabili. Come fai notare, c'è quindi un semplice limite superiore che è polinomiale se la dimensione della clausola è limitata.
Questa riduzione mostra anche che anche la versione in cui le clausole "grandi" sono limitate a 3 letterali è NP-difficile.
Il caso rimanente si verifica quando le poche clausole di grandi dimensioni non hanno dimensioni limitate; ogni grande clausola sembra rendere il problema più difficile. Vedi il documento SODA 2010 di Pǎtraşcu e Williams per il caso di due clausole: sostengono che se ciò potesse essere fatto in tempi sub-quadratici, avremmo algoritmi migliori per SAT. Potrebbe esserci un'estensione del loro argomento a più clausole, il che fornirebbe la prova che il limite superiore non può essere migliorato (modulo in qualche forma dell'ipotesi del tempo esponenziale).
Ok ho capito. La risposta è no. Questo può essere risolto in poly-time. Per ogni clausola a 3 o più termini, selezionare un valore letterale e impostarlo come vero. Quindi risolvere il problema rimanente 2-sat. Se qualcuno fornisce una soluzione, questa è una soluzione al problema generale. Poiché il numero di clausole a 3 o più termini è fisso (diciamo c), allora se tutte queste clausole hanno dimensione <= m, allora questo viene eseguito in O (m ^ (c) * n). O (m ^ c) per passare attraverso ogni possibile selezione, volte O (n) per risolvere il problema 2-sat rimanente.