Comment prouver qu'une version contrainte de 3SAT dans laquelle aucun littéral ne peut se produire plus d'une fois, est résoluble en temps polynomial?

10

J'essaie de travailler sur une tâche (tirée du livre Algorithms - par S. Dasgupta, CH Papadimitriou et UV Vazirani , Chap 8, problème 8.6a), et je paraphrase ce qu'il dit:

Étant donné que 3SAT reste NP-complet même lorsqu'il est limité à des formules dans lesquelles chaque littéral apparaît au plus deux fois, montrez que si chaque littéral apparaît au plus une fois, le problème peut être résolu en temps polynomial.

J'ai tenté de résoudre ce problème en séparant les clauses en plusieurs groupes:

  1. Clauses qui n'avaient aucune variable en commun avec le reste des clauses
  2. Clauses qui n'avaient qu'une seule variable en commun
  3. Clauses ayant 2 variables en commun
  4. Clauses ayant les 3 variables en commun

Mon raisonnement a été tenté dans le sens que le nombre de ces groupes est fini (en raison de la restriction imposée de l'absence de littéral plus d'une fois), et nous pourrions essayer de satisfaire le groupe le plus restreint en premier (groupe 4), puis remplacer le entraîner les groupes restreints moins (3, 2 puis 1), mais je me suis rendu compte que cela ne me menait nulle part, car cela ne diffère pas beaucoup du cas pour la version contrainte de 3SAT dans laquelle chaque littéral peut apparaître au plus deux fois, ce qui s'est avéré être NP-complet.

J'ai essayé de rechercher en ligne des conseils / solutions, mais tout ce que j'ai pu obtenir était ce lien , dans lequel le conseil indiqué n'avait pas suffisamment de sens pour moi, que je reproduis textuellement ici:

xiCjxixi¯CkCjCk¯

CjCkCjCk¯CjCk¯

Toute aide pour décrypter l'indice ou fournir un chemin que je peux explorer serait vraiment appréciée.

TCSGrad
la source

Réponses:

12

Sans perte de généralité, nous pouvons supposer que chaque variable apparaît exactement une fois positivement et exactement une fois négativement (si une variable n'apparaît qu'une fois, définissez sa valeur pour satisfaire la clause et supprimez la clause). Nous pouvons également supposer qu'une variable n'apparaît pas dans une clause plus d'une fois (si une variable apparaît à la fois positivement et négativement dans une clause, alors la clause est satisfaite et peut être supprimée). Ceux-ci ne modifieront pas la satisfiabilité.

Utilisez maintenant la règle de résolution pour éliminer les variables une par une (puisque chaque variable apparaît exactement une fois positivement et une fois négativement, c'est un processus déterministe). Si à tout moment nous obtenons la clause vide, l'ensemble des clauses n'est pas satisfaisant, sinon il est satisfaisable. Ceci est dû au fait:

  • la résolution est un système de preuve propositionnelle complet (c'est-à-dire que si une clause est impliquée logiquement par l'ensemble de clauses, elle peut être dérivée de l'ensemble de clauses en utilisant uniquement la règle de résolution),

  • un ensemble de clauses n'est pas satisfaisant s'il implique logiquement la clause vide.

(xB)(x¯C))(BC), qui contient une clause de moins qu’avant la résolution. En revanche, si vous appliquez cela à une formule 3SAT sans restriction sur le nombre d'apparitions de chaque littéral, l'application de la résolution peut entraîner une augmentation exponentielle du nombre de clauses.

Kaveh
la source
3
aB¬aCBC
1
Il faut également s'assurer que l'invariant s'applique toujours après que la résolution a été utilisée. Après cette étape, l'instance SAT (notez que ce n'est plus 3SAT) conserve la propriété que chaque littéral se produit précisément une fois positivement et une fois négativement. Cela montre également que la restriction 3SAT dans la question n'était pas nécessaire; la résolution d'unité fonctionne pour toute instance SAT satisfaisant à la restriction de degré 2. En bref: la résolution unitaire résout le degré 2 SAT en temps linéaire.
András Salamon
Je ne comprends pas la dernière partie. Pourquoi les clauses augmenteront-elles de façon exponentielle dans 3SAT normal?
Parth Tamane