Pourquoi 2SAT est-il en P?

55

J'ai rencontré l'algorithme polynomial qui résout 2SAT. J'ai trouvé ahurissant que 2SAT soit dans P où toutes (ou beaucoup d'autres) des instances SAT sont NP-Complete. Qu'est-ce qui rend ce problème différent? Qu'est-ce qui le rend si facile (NL-Complete - encore plus facile que P)?

Gars
la source
18
Pourquoi les gens pensent-ils que c'est une si mauvaise question?
Peter Shor
12
Un aspect intéressant est que si vous voulez connaître le nombre maximal de clauses simultanément satisfaisables dans une expression 2SAT (c'est-à-dire Max2SAT), vous revenez à nouveau à NP-complete.
Shaun Harker
11
C'est soit une question horrible, parce qu'elle n'a pas de réponse utile, soit une question fantastique, car la seule réponse correcte est "personne ne le sait".
Jeffε
12
Veuillez lire le document "La complexité des problèmes de satisfiabilité: Raffiner le théorème de Schaefer".
Diego de Estrada
3
Cher Guy, Le fait que 2SAT soit dans P est couvert dans presque tous les manuels de complexité standard. Par conséquent, lorsque vous dites que vous venez de remarquer que cela vient de donner l'impression que la question a l'air de ne pas avoir lu un manuel standard complexe.
Kaveh

Réponses:

88

Voici une autre explication intuitive et sans prétention dans le sens de la réponse de MGwynne.

Avec SAT, vous ne pouvez exprimer que les implications de la forme , où et sont des littéraux. Plus précisément, chaque clause peut être comprise comme une paire d'implications: et . Si vous définissez sur true, doit également être vrai. Si vous définissez sur false, doit être également faux. De telles implications sont simples: il n'y a pas de choix, vous avez seulementa b a b 2 L 1l 2 ¬ l 1l 2 ¬ l 2l 1 a b b a 1 ¬ l l l ¬ l l2abab2l1l2¬l1l2¬l2l1abba1possibilité, il n'y a pas de place pour la multiplication de cas. Vous pouvez simplement suivre toutes les chaînes d'implication possibles et voir si vous dérivez jamais les deux de et de : si vous le faites pour un , alors la formule 2-SAT est insatisfiable, sinon elle est satisfiable. Il est vrai que le nombre de chaînes d’implication possibles est lié de manière polynomiale à la taille de la formule d’entrée.¬lll¬ll

Avec SAT, vous pouvez exprimer les implications de la forme , où , et sont des littéraux. Maintenant vous êtes en difficulté: si vous définissez sur true, alors soit ou doit être vrai, mais lequel? Vous devez faire un choix: vous avez 2 possibilités. C'est ici que la multiplication de cas devient possible et que l'explosion combinatoire se produit.a b c a b c a b c3abcabcabc

En d'autres termes, SAT est capable d'exprimer la présence de plus d'une possibilité, alors que SAT n'a pas cette capacité. C'est précisément la présence de plus d'une possibilité ( possibilités dans le cas de SAT, possibilités dans le cas de SAT) qui provoque l'explosion combinatoire typique de problèmes NP-complets.2 2 3 k - 1 k3223k1k

Giorgio Camerani
la source
6
Je souhaite que je pourrais upvoter cela plus! Une bien meilleure réponse!
MGwynne
5
@MGwynne: Merci pour votre gentil commentaire. Vous êtes le bienvenu et votre réponse est vraiment très bonne!
Giorgio Camerani
8
Ceci est une bonne réponse à une bonne question (IMHO). Comme Mac Lane l'a écrit: "Les mathématiciens introduisent des manipulations formelles efficaces ou délicates. Ils ont sans doute une idée directrice --- mais il est plus facile de les énoncer que de les formuler en mots. ... Un exposé perspicace d'une pièce de mathématiques permet aux idées de briller à travers l'affichage des manipulations. " Cette question-réponse a aidé "les idées à briller" (pour moi). Merci! :)
John Sidles
4
@John: De rien! ;-) Merci beaucoup pour votre excellent et généreux commentaire, je l'ai vraiment apprécié. Je suis tout à fait d'accord avec les mots de Mac Lane.
Giorgio Camerani
Selon la réponse de Giorgio Camerani, cela ne vaut pas la peine de réduire tout problème de NP à 3SAT si vous introduisez plus de variables booléennes factices, si vous avez plus de clauses et que vous n'avez ni gain ni profit, mais il est préférable de le réduire à CNF SAT ou à une satisfi Circuit SAT au lieu de cela, parce que dans ces problèmes vous avez des variables moins booléennes et des clauses moins importantes, ce qui signifie que les algorithmes naïfs en force brute, les cartes de karnaugh et l’algorithme Quine-McClusky ont une meilleure complexité: D.
Farewell Stack Exchange
31

n+m22n,m2nm

Une fois que vous arrivez à 3-SAT, vous pouvez obtenir des résolutions de plus en plus grandes, ainsi tout se passe en forme de poire :).

Essayez de traduire un problème en 2-SAT. Comme vous ne pouvez pas avoir de clauses de taille 3, vous ne pouvez pas (en général) coder les implications impliquant 3 variables ou plus, par exemple, une variable est le résultat d'une opération binaire sur deux autres. C'est une restriction énorme.

MGwynne
la source
3
"Vous ne pouvez pas encoder des choses telles que l'implication" - IMP-SAT est également en P (et je pense que NL)
Max
8
pq¬pq
1
Kaveh, bon point, corrigé maintenant.
MGwynne
Comme je l'ai déjà dit, lorsque vous avez réduit votre problème de NP arbitraire à une satisfaction booléenne, à un circuit SAT ou à un CNF SAT, ne le réduisez pas à 3SAT, car le problème devient encore plus complexe et complexe avec des variables et des clauses plus booléennes. Même l'algorithme de résolution devient moins efficace dans le nouveau problème!
Farewell Stack Exchange
20

Comme le dit Walter, les clauses de 2-SAT ont une forme spéciale. Cela peut être exploité pour trouver des solutions rapidement.

Il existe en fait plusieurs classes d'instances SAT qui peuvent être décidées en temps polynomial, et 2-SAT n'est qu'une de ces classes traitables . Il existe trois grands types de raisons de la traitabilité:

  1. (Traitabilité structurelle) Toute classe d'instances SAT où les variables interagissent de manière arborescente peut être résolue en temps polynomial. Le degré du polynôme dépend de la largeur maximale des occurrences dans la classe, où elle mesure la distance entre une instance et un arbre. Plus précisément, Marx a montré que si les instances ont une largeur sous-modulaire limitée, alors la classe peut être décidée en temps polynomial en utilisant une approche diviser pour mieux régner.

  2. (Traitabilité du langage) Toute classe d'instances SAT où le modèle de variables true-false est "sympa", peut être résolue en temps polynomial. Plus précisément, le modèle de littéraux définit un langage de relations et Schaefer a classé les six langages qui conduisent à la tractabilité, chacun avec son propre algorithme. 2-SAT forme l'une des six classes de Schaefer.

  3. (Tractabilité hybride) Il existe également certaines classes d'instances qui n'entrent pas dans les deux autres catégories, mais qui peuvent être résolues en temps polynomial pour d'autres raisons.

    • Dániel Marx, Propriétés hypergraphiques tractables pour la satisfaction de contraintes et les requêtes conjonctives , STOC 2010. ( doi , preprint )
    • Thomas J. Schaefer, La complexité des problèmes de satisfiabilité , STOC 1978. ( doi )
András Salamon
la source
2
Il existe également des arguments basés sur la structure de l'espace de solution de la littérature aléatoire k-SAT qui peuvent être utilisés pour expliquer la différence.
Kaveh
3
@Kaveh: ma description de la tractabilité hybride était supposée être suffisamment vague pour englober de telles choses. Par exemple, pour des types très particuliers d'instances, on peut argumenter pour une satisfiabilité basée sur le lemme local de Lovász. Voir l'enquête de 1997 de Pearson et Jeavons: cs.ox.ac.uk/publications/publication1610-abstract.html
András Salamon le
3
Notez également que SAT est le cas particulier du problème de satisfaction de contrainte où chaque variable peut prendre 2 valeurs. Lorsque les variables peuvent prendre 3 valeurs, il existe 10 classes de langues modifiables , classées par Andrei Bulatov: cs.sfu.ca/~abulatov/papers/3-el-journal.ps Les classes hybrides sont également plus intéressantes pour les domaines plus vastes.
András Salamon
10

Si vous comprenez l'algorithme de 2SAT, vous savez déjà pourquoi il est en P - c'est précisément ce que montre l'algorithme. Je pense que cette bande dessinée illustre mon propos. Comme vous savez déjà pourquoi 2SAT est dans P, vous voulez probablement savoir pourquoi 2SAT n'est pas NP-difficile.

Pour comprendre pourquoi 2SAT n’est pas un NP-difficile, vous devez considérer combien il est facile de réduire d’autres problèmes liés au NP. Pour comprendre intuitivement ceci, voyez comment réduire la SAT à 3SAT et essayez d'appliquer les mêmes techniques pour réduire la SAT à 2SAT. 2SAT n’est tout simplement pas aussi expressif que 3SAT et d’autres variantes de SAT.

Dave
la source