Probleme – La transformation de Tseitin : une \textsc{fnc} linéaire
Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 20 — Logique propositionnelle
Énoncé
Le cours annonce que « les solveurs réels emploient des transformations qui ajoutent des variables au lieu de distribuer ». On construit ici cette transformation.
À chaque sous-formule de , on associe une variable fraîche , et l'on écrit des clauses exprimant localement.
- Donner les clauses traduisant , puis , puis .
- En déduire la construction, et compter les clauses.
- La fnc obtenue est-elle équivalente à ? Que garde-t-on ?
- Comparer, sur du cours, avec la mise en fnc par distribution.
Corrigé
1. Les trois traductions. On décompose l'équivalence en deux implications, puis on décompose chaque implication.
Comment on les retrouve sans les apprendre : pour , le sens donne , qu'on distribue en deux clauses ; le sens donne . Trois clauses, chacune de longueur au plus . La distribution reste ici sans danger parce qu'elle porte sur deux littéraux, jamais sur des formules.
2. La construction. On parcourt l'arbre de de bas en haut ; à chaque nœud interne on crée une variable fraîche et l'on émet ses trois clauses ; à la fin, on ajoute la clause unitaire , qui force la racine à être vraie.
Entrée : une formule phi.
Sortie : une FNC.
Pour chaque nœud interne de l'arbre de phi, dans un parcours postfixe :
creer une variable fraiche t
emettre les 2 ou 3 clauses de t <-> (operation sur les fils)
Emettre la clause unitaire (t_racine).
Le compte. Un nœud interne engendre au plus clauses de longueur au plus , et une variable. Si a nœuds internes, on obtient au plus clauses et variables auxiliaires : la fnc est de taille linéaire en . Mesuré sur : clauses et variables auxiliaires.
3. Non, elle n'est pas équivalente — et elle ne peut pas l'être : elle parle de variables que ne connaît pas. Ce qu'on garde est plus faible et parfaitement suffisant :
Notons la fnc de Tseitin. Alors est satisfiable si et seulement si l'est. De plus, tout modèle de , restreint aux variables de , est un modèle de .
<details class="group my-6 border border-gray-300 rounded-2xl bg-black/[0.03] overflow-hidden transition-all duration-300"><summary style="color:#1e3a8a" class="flex items-center justify-between p-4 cursor-pointer text-xs font-bold select-none"><div class="flex items-center"><i class="fa-solid fa-graduation-cap mr-2"></i>Démonstration</div><span class="transition-transform group-open:rotate-180"><i class="fa-solid fa-chevron-down"></i></span></summary><div style="color:#1d4ed8" class="force-blue p-4 pt-0 border-t border-gray-200 bg-black/[0.02] leading-relaxed font-sans text-xs select-text"> () Soit un modèle de . Étendons en posant pour chaque sous-formule . Chaque groupe de clauses traduit exactement , donc est satisfait par construction ; et la clause unitaire l'est puisque .
() Soit un modèle de . Une récurrence sur la hauteur de montre que : c'est vrai pour les feuilles, et les clauses du nœud imposent précisément l'équivalence. En particulier , et la clause unitaire donne : la restriction de est un modèle de .
L'équisatisfiabilité suffit, et c'est le point de méthode à retenir : on ne demande jamais à un solveur sat de préserver le sens, seulement de préserver la réponse. Vérifié à la mesure sur formules tirées au hasard sur trois variables : et ont toujours le même statut, et la restriction d'un modèle de satisfait toujours .
4. La comparaison, mesurée sur :
| taille de | fnc par distribution | fnc de Tseitin | variables ajoutées | |
|---|---|---|---|---|
La distribution est meilleure jusqu'à , puis Tseitin l'emporte définitivement : contre . Le croisement à mérite d'être noté — une transformation asymptotiquement meilleure peut être plus coûteuse sur les petites instances, et c'est pour cela qu'un solveur regarde la taille avant de choisir.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.