Transformation de Tseitin
En logique, la transformation de Tseitin prend un circuit logique et produit une formule booléenne équisatisfiable en forme normale conjonctive. La transformation est linéaire[1]. Elle a été développée par le mathématicien russe Grigori Tseitin.
Motivation
modifierL'approche naïve consiste à écrire le circuit sous forme d'expression booléenne et à utiliser la loi de De Morgan et la distributivité pour le convertir en forme normale conjonctive. Cependant, cela peut entraîner une augmentation exponentielle de la taille de l'équation. La transformation de Tseitin génère une formule dont la taille augmente linéairement par rapport à celle du circuit d'entrée.
Approche
modifierL'équation de sortie est la constante 1 égale à une expression. Cette expression est une conjonction de sous-expressions, où la satisfaction de chaque sous-expression impose le bon fonctionnement d'une seule porte dans le circuit d'entrée. La satisfaction de l'expression de sortie entière impose donc que l'ensemble du circuit d'entrée opère correctement.
Pour chaque porte, une nouvelle variable représentant sa sortie est introduite. Une petite expression CNF précalculée qui relie les entrées et les sorties est ajoutée (via l'opération "et") à l'expression de sortie. Notez que les entrées de ces portes peuvent être soit les littéraux d'origine, soit les variables introduites représentant les sorties des sous-portes.
Bien que l'expression de sortie contienne plus de variables que l'entrée, elle reste équisatisfiable, ce qui signifie qu'elle est satisfiable si, et seulement si, l'équation d'entrée d'origine est satisfiable. Lorsqu'une affectation satisfaisante de variables est trouvée, ces affectations pour les variables introduites peuvent simplement être supprimées.
Une clause finale est ajoutée avec un seul littéral : la variable de sortie de la porte finale.
Réductions en théorie de la complexité
modifierLa transformée de Tseitin permet d'effectuer une réduction polynomiale du Problème SAT au Problème FNC-SAT. Ce qui, comme le problème SAT est un problème NP-complet par le Théorème de Cook permet alors de montrer que le problème FNC-SAT est NP-difficile.[2]
Définition
modifierSoit une formule
Pour chaque sous-formule de , on introduit une variable .
On définit la transformation par disjonction de cas sur la structure des sous formules :
On pose alors la définition de la transformée de Tseitin
Exemple
modifierConsidérons la formule suivante .
Considérons toutes les sous-formules (à l'exception des variables simples):
On introduit une nouvelle variable pour chaque sous-formule:
On fait la conjonction de toutes ces substitution et de la substitution de :
Toutes les substitutions peuvent être transformées en CNF, par exemple
Notes et références
modifierGrigori Tseitin est un mathématicien et informaticien russe.
- ↑ Tseitin, « On the complexity of derivations in the propositional calculus », Studies in Mathematics and Mathematical Logic, vol. Part II, , p. 115–125 (lire en ligne, consulté le )
- Pierre Le Barbenchon, Sophie Pinchinat et François Schwarzentruber, Logique: fondements et applications, Dunod, coll. « Sciences sup », (ISBN 978-2-10-082158-7)