La clause qui répète une variable
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 25 — Algorithmes probabilistes, approximation, séparation et évaluation
Énoncé
L'analyse de MAX2SAT suppose que les deux littéraux d'une clause portent sur des variables distinctes. Que devient-elle si l'on autorise ou ?
Corrigé
Les deux cas se comportent à l'opposé.
- est une tautologie : elle est satisfaite avec probabilité . Mesure sur clauses de cette forme : moyenne — l'algorithme aléatoire est optimal.
- équivaut à : elle est satisfaite avec probabilité , et non .
Et c'est là que la garantie tombe. Sur une instance faite de clauses toutes égales à :
Le rapport vaut , pas . L'hypothèse « deux variables distinctes » n'est pas un détail de rédaction : c'est elle qui porte la garantie.
Comment la rétablir. Deux remèdes, tous deux honnêtes.
- Normaliser la formule avant de la traiter : remplacer par la clause unitaire , et supprimer les tautologies . On obtient une instance de MAX--sat mixte, et l'analyse de l'exercice « MAX--sat » donne la garantie où est la plus petite longueur de clause — soit s'il reste des clauses unitaires. La garantie est plus faible, mais elle est vraie.
- Restreindre le problème en exigeant des variables distinctes, ce que fait la définition standard de MAX2SAT.
La leçon dépasse cet exemple. Une garantie d'approximation est un théorème, avec des hypothèses. Le chapitre insiste : « la garantie porte sur toutes les instances » — mais toutes les instances du problème tel qu'il est défini. Une instance qui sort de la définition sort de la garantie, et rien ne le signalera à l'exécution. C'est exactement la discipline de spécification du chapitre chap:discipline, appliquée à un théorème plutôt qu'à une fonction.
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.