Adloun

Probleme – SAT : vérifier est facile, chercher ne l'est pas

Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 31 — Décidabilité et classes de complexité

Énoncé

Corrigé

1. L'exhaustif. Une formule en forme normale conjonctive sur variables et clauses. On énumère les valuations.


pour chaque entier k de 0 a 2^n - 1
    val <-- les n bits de k
    si toutes les clauses sont satisfaites par val
        alors rendre val
rendre "insatisfiable"

Terminaison : la boucle est bornée. Correction : on essaie toutes les valuations ; si aucune ne convient, il n'y en a pas. Complexité : dans le pire cas — atteint exactement quand la formule est insatisfiable, puisqu'il faut alors aller au bout.

2. Le vérificateur.


verifier(phi, val) :
    pour chaque clause de phi
        si aucun litteral de la clause n'est vrai sous val
            alors rendre faux
    rendre vrai

Complexité : — une lecture de la formule. Le certificat est la valuation, soit bits : de taille linéaire en l'entrée. Les deux conditions de la définition de sont donc remplies, et sat .

3. Les mesures. Sur des formules -fnc aléatoires à clauses :

RéponseRechercheVérification
insatisfiable s---
satisfiable s s
satisfiable s s
satisfiable s s
insatisfiable s---

Trois lectures.

Cet écart est la question , rendue mesurable : la colonne de droite est polynomiale, celle de gauche ne l'est pas, et personne ne sait si l'on peut rapprocher les deux.

4. Les conséquences d'un algorithme polynomial pour sat. Elles sont considérables, et il faut les énoncer précisément.

Et une conséquence moins souvent dite, qui vaut d'être retenue : trouver une démonstration mathématique de longueur bornée deviendrait aussi facile que la vérifier. C'est la raison profonde pour laquelle presque tout le monde conjecture que .

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.