Est-il possible de traduire une formule booléenne B en une conjonction équivalente de clauses Horn? L'article de Wikipédia sur HornSAT semble impliquer que c'est le cas, mais je n'ai pu chasser aucune référence.
Notez que je ne veux pas dire "en temps polynomial", mais plutôt "du tout".
reference-request
lo.logic
sat
Evgenij Thorstensen
la source
la source
Réponses:
Non. Les conjonctions de clauses de Horn admettent le moins les modèles de Herbrand, contrairement aux disjonctions de littéraux positifs. Cf. Lloyd, 1987, Fondements de la programmation logique .
Les modèles de moindre Herbrand ont la propriété d'être dans les intersections de tous les satisfaits. Les modèles Herbrand pour sont , qui ne contient pas son intersection, comme le dit arnab, est un exemple de formule qui ne peut pas être exprimée comme une conjonction de clauses Horn.{ { a } , { b } , { a , b } } ( a ∨ b )( a ∨ b ) {{a},{b},{a,b}} ( a ∨ b )
Réponse incorrecte remplacée
la source
L'exquiabilité peut être obtenue de la manière suivante (réduction de 2SAT à HornSAT). Ainsi peut également être réduit à une formule de Horn de cette manière. Merci à Joshua Gorchow d'avoir signalé cette réduction.( p ∨ q)
Entrée: Une formule 2-SAT , avec les clauses C 1 , ..., C k sur les variables x 1 , ..., x n .ϕ C1 Ck X1 Xn
Construisez une formule de klaxon comme suit:Q
Il y aura 4 ( n choisir 2 ) + 2 n + 1 nouvelles variables, une pour chaque clause 2-cnf possible sur les variables x avec au plus 2 littéraux ( pas seulement les clauses C i dans ϕ ) - c'est y compris les articles de l' unité et la clause vide .. la nouvelle variable correspondant à une clause D sera désigné par z D .× n 2 + 2 n + 1 X Cje ϕ ré zré
Le 4 ( n choisir 2 ) vient du fait que chaque paire de ( x i , x j ) donne lieu à quatre clauses 2-cnf. Le 2 n vient du fait que chaque x i peut créer 2 clauses unitaires. Et enfin le "un" vient de la clause vide. Donc le nombre total de clauses 2-cnf possibles est = 4 × ( n choisissez 2 ) + 2 n + 1 .× n 2 ( xje, x j) 2 n Xje = × n 2 + 2 n + 1
Si une clause 2-cnf découle de deux autres clauses 2-cnf D et E par une seule étape de résolution, alors nous ajoutons la clause Horn ( z D ∧ z E → z F ) à Q ... Encore une fois, nous le faisons pour toutes les clauses 2-cnf possibles - toutes les 4 × ( n choisir 2 ) + 2 n + 1 d'entre elles - pas seulement le C i .F ré E ( zré∧ zE→ zF) Q × n 2 + 2 n + 1 Cje
Ensuite , nous ajoutons les clauses de l' unité à Q , pour chaque clause C i apparaissant dans l'entrée φ ... Enfin, nous ajoutons la clause unitaire ( ¬ z e m p t y ) à Q .zCje Q Cje ϕ ( ¬ ze m p t y) Q
La formule Horn est maintenant terminée. Observez que les variables utilisées dans Q sont complètement différentes de celles utilisées dans ϕ .Q Q ϕ
la source
Je ne pense pas que ce soit possible. Il n'y a aucun moyen, par exemple, d'écrire tant que conjonction de clauses de cor puisque ϕ interdit uniquement une seule affectation de vérité, à savoir 0011. Toute clause de cor avec moins de 4 littéraux interdiraient plus d'une affectation de vérité, et les clauses de cor avec 4 littéraux ne peuvent interdire que les affectations de vérité avec au plus un 0.ϕ = ( X1∨ X2∨ ¬ X3∨ ¬ X4) ϕ
Edit: oops n'a pas remarqué que cette réponse a déjà été répondue
la source