Probleme – Coloration en \textsc{sat}, et une famille de clauses qu'on peut jeter
Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 20 — Logique propositionnelle
Énoncé
On reprend le codage de la coloration donné dans le cours, et on l'éprouve sur le graphe de Petersen : sommets, arêtes.
- Compter les variables et les clauses en fonction de , et .
- Pour quelles valeurs de la formule est-elle satisfiable ?
- Montrer que les clauses « au plus une couleur » peuvent être supprimées sans changer la réponse. Que perd-on ?
- Que gagne-t-on à les supprimer ?
Corrigé
1. Le compte. variables , et trois familles de clauses :
Pour Petersen (, ), mesuré :
| variables | au moins une | au plus une | arêtes | total | |
|---|---|---|---|---|---|
La famille « au plus une » est quadratique en : c'est elle qui domine dès que les couleurs sont nombreuses.
2. Les valeurs de . Mesuré par l'algorithme de Quine du problème 20.2 :
| insatisfiable | |
|---|---|
| satisfiable, et le modèle donne une coloration propre | |
| satisfiable |
Le nombre chromatique de Petersen est donc . Que échoue se voit à la main : Petersen contient un cycle de longueur , et un cycle impair n'est jamais -coloriable. Que réussisse ne se voit pas à la main — et c'est précisément l'intérêt de déléguer.
3. On peut les jeter. Notons la formule complète et celle privée des clauses « au plus une ».
Un modèle de est un modèle de : on a retiré des contraintes.
Réciproquement, soit un modèle de . Chaque sommet porte au moins une couleur (première famille) ; choisissons-en une, notée , arbitrairement parmi celles que lui donne. Si est une arête, la troisième famille interdit que et partagent une couleur quelconque : en particulier . Donc est une coloration propre, et l'on en refait un modèle de en ne gardant que .
Les deux formules sont donc équisatisfiables, et une coloration se lit dans un modèle de l'une comme de l'autre.
Ce qu'on perd est mesurable : avec , chaque sommet reçoit exactement une couleur ; avec , un modèle peut en donner plusieurs — c'est ce qu'a rendu le solveur pour et . Le modèle n'est plus lisible directement : il faut le post-traiter par le « choisissons-en une » ci-dessus. On échange une garantie de forme contre une économie de clauses, et c'est un marché qu'on ne passe qu'en le sachant.
4. Le gain, mesuré sur Petersen :
| clauses de | clauses de | économie | |
|---|---|---|---|
L'économie croît avec , puisqu'on supprime le seul terme quadratique. Pour couleurs sur un graphe de sommets, on passerait de clauses « au plus une » à zéro.
En pratique — Écrire la contrainte la plus faible qui suffit
C'est la leçon de ce problème, et elle vaut pour toute modélisation. On est tenté d'écrire tout ce qu'on sait du problème — « un sommet a une seule couleur » est vrai, après tout. Mais une clause n'est utile que si son absence rend la réponse fausse. Ici elle ne la rend pas fausse : elle rend seulement le modèle moins net.
La discipline est celle du chapitre chap:discipline : on spécifie ce dont on a besoin, pas ce qu'on croit vrai. Et l'on documente le post-traitement, faute de quoi le lecteur du modèle sera surpris de voir un sommet bleu et rouge à la fois.
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.