Horn-satisfiabilité
Une formule de Horn est une conjonction de clauses contenant chacune au plus un littéral positif, c'est-à-dire une conjonction de clauses de Horn.
Puisque le problème SAT est NP-complet, donc vérifiable en temps polynomial et plus difficile que tout problème dans NP, il est naturel de rechercher des problèmes proches mais plus "faciles" à résoudre. C'est notamment le cas de la satisfaisabilité d'une formule de Horn, puisqu'il s'agit d'un problème P-complet[1], plus difficile que tout problème dans P.
De plus, la satisfaisabilité d'une formule de Horn est décidable en temps linéaire[2] en la taille de la formule.
Un algorithme naïf résout ce problème en temps , en partant du principe qu'une formule de Horn contient trois types de clauses :
- des clauses de Horn strictes, de la forme
- des clauses de Horn positives, de la forme
- des clauses de Horn négatives, de la forme
Puisqu'une formule de Horn ne contenant pas de clause de Horn positive est toujours satisfaisable (car il suffit d'affecter la valeur fausse à tous les littéraux pour satisfaire chaque clause), on cherche à éliminer toutes les clauses positives. On y arrive en affectant au littéral contenu dans chaque clause positive la valeur vraie, puis en propageant ces modifications, c'est-à-dire en supprimant les clauses positives ou strictes où notre littéral apparaît, et en effaçant sa négation de chaque clause stricte ou négative où il apparaît.
Ce procédé peut générer d'autres clauses de Horn positives et il est donc nécessaire de l'itérer.
Notes et références
- (en) Stephen Cook et Phuong Nguyen, Logical Foundations of Proof Complexity, Cambridge University Press, (ISBN 978-1-139-48630-9, lire en ligne)
- (en) William F. Dowling et Jean H. Gallier, « Linear-time algorithms for testing the satisfiability of propositional horn formulae », The Journal of Logic Programming, vol. 1, no 3, , p. 267–284 (DOI 10.1016/0743-1066(84)90014-1, lire en ligne, consulté le )