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.
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 )