Adloun

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.

Corrigé

1. Le compte. variables , et trois familles de clauses :

Pour Petersen (, ), mesuré :

variablesau moins uneau plus unearêtestotal

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.