Le problème standard 1-en-3 SAT (ou XSAT ou X3SAT) est:
Instance : une formule CNF avec chaque clause contenant exactement 3 littéraux
Question : y a-t-il un paramètre d'assignation satisfaisant avec précision 1 littéral par clause vrai?
Le problème est NP-complet et reste difficile même si aucune variable ne se produit. Je me demande si ce problème devient facile ou reste difficile si chaque variable doit se produire au moins une fois positivement et au moins une fois négativement .
La réduction habituelle de 3SAT montrant que le SAT 1 en 3 est dur remplace une clause par des clauses , , où sont frais pour chaque clause. Ainsi, cette réduction n'aide pas à répondre à ma question. J'ai eu du mal à trouver un gadget montrant la dureté de cette variante, car si exactement 1 littéral dans une clause est vrai, alors 2 littéraux non symétriques sont faux. Si cela s'avère facile, penser en termes de partitions de l'ensemble de clauses pourrait le faire, mais je ne vois pas comment.
la source
Réponses:
Dans un commentaire, OP a exprimé son intérêt pour une réduction qui générait des instances avec 3 variables distinctes par clause. Voici une approche simple:
La réduction est de 1 sur 3 SAT avec 3 variables distinctes par clause:
Vérifions que cette réduction fait ce que nous voulons. Les propriétés suivantes sont ce que nous voulons:
La propriété 1 est triviale à vérifier. La propriété 2 est également facile à vérifier: les variables , et apparaissent chacune à la fois positivement et négativement dans les clauses ajoutées au deuxième point, tandis que toutes les autres variables de la formule apparaissent à la fois positivement et négativement dans les clauses ajoutées dans le troisième puce.F1 F2 F3
Quant à la propriété 3, elle est moins banale mais toujours facile. Vous pouvez facilement affirmer que la seule affectation pour les variables , et qui satisfait chaque clause à partir du deuxième point est de rendre les trois faux. Mais en supposant une valeur false pour , les clauses et ajoutées au troisième point sont satisfaites si et seulement si . Puisqu'il n'y a pas d'autres contraintes sur , cela signifie qu'il est toujours possible d'étendre une affectation satisfaisante pour la formule d'entrée dans une affectation satisfaisante pour la formule de sortie: définissez simplement chaqueF1 F2 F3 Fi F1 (x,x′,F1) (¬x,¬x′,F1) x′=¬x x′ x′ pour être la négation du correspondant et définir chaque sur faux.x Fi
la source