Adloun

Probleme – -\textsc{sat} : pourquoi le saut se fait entre et

Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 20 — Logique propositionnelle

Énoncé

Le cours annonce que -sat est linéaire. On construit ici l'algorithme.

À une fnc dont toutes les clauses ont exactement deux littéraux, on associe le graphe d'implication : ses sommets sont les littéraux, et chaque clause produit deux arcs.

Corrigé

1. Les deux arcs. La clause est équivalente à , et aussi à — c'est la même formule lue dans les deux sens. On pose donc les arcs

Il en faut deux, et c'est le point de départ. Un seul arc encoderait une implication, pas une disjonction : on perdrait la moitié de l'information, et le graphe cesserait d'être symétrique — propriété dont la preuve a besoin. Le graphe obtenu vérifie : est un arc si et seulement si en est un. C'est la contraposée, devenue une symétrie du graphe.

◆Théorème 20.1Critère de -satisfiabilité

Une fnc à deux littéraux par clause est satisfiable si et seulement si aucune variable n'a et dans la même composante fortement connexe du graphe d'implication.

<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"> (, par contraposée) Supposons et dans la même composante fortement connexe : il existe un chemin et un chemin . Or un arc signifie « tout modèle qui rend vrai rend vrai », et cette propriété se transmet le long d'un chemin. Si un modèle rendait vraie, le premier chemin le forcerait à rendre vraie ; s'il rendait fausse, donc vraie, le second le forcerait à rendre vraie. Aucun modèle n'existe.

() On construit un modèle. Contractons les composantes fortement connexes : le graphe quotient est sans circuit (chapitre chap:graphes-avances), donc admet un tri topologique. Posons lorsque la composante de vient après celle de dans ce tri, et sinon — ce qui a un sens puisque les deux composantes sont distinctes par hypothèse. La symétrie du graphe garantit que cette affectation est cohérente, et qu'aucun arc ne mène d'un littéral vrai à un littéral faux ; toutes les clauses sont donc satisfaites.

3. La complexité. Le graphe a sommets et arcs ; les composantes fortement connexes se calculent en par l'algorithme de Kosaraju ou celui de Tarjan (chapitre chap:graphes-avances), et le tri topologique aussi. Total : — linéaire, comme annoncé.

Mesures. Le critère a été confronté à une recherche exhaustive sur instances tirées au hasard ( à variables, à clauses) : accord dans tous les cas. Trois exemples :

FormuleComposantesVerdict
satisfiable
la même insatisfiable
satisfiable

La deuxième ligne est instructive : les quatre clauses sur deux variables forment l'antilogie de l'exercice 20.3, et le graphe le voit — les quatre littéraux s'effondrent en une seule composante, où et se retrouvent donc ensemble.

Pourquoi cela s'arrête à deux littéraux. Toute la construction repose sur ceci : une clause de deux littéraux équivaut à une implication entre un littéral et un littéral. Avec trois littéraux, se lit : la conclusion n'est plus un littéral mais une disjonction, et il n'y a plus d'arc à poser. On n'obtient pas un graphe mais un hypergraphe, où la fermeture transitive n'est plus calculable en temps polynomial — et de fait, -sat est np-complet (chapitre chap:decidabilite). Le saut de à est un saut de structure, pas de taille.

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.