Coloration
Ce que ce chapitre apporte
- Définir une coloration propre et le nombre chromatique.
- Modéliser un conflit d'exclusion par une arête.
- Minorer le nombre chromatique par la taille d'une clique, et prouver une optimalité.
- Dérouler l'algorithme glouton et montrer sa dépendance à l'ordre.
- Appliquer l'heuristique de Welsh-Powell et connaître la borne + 1.
- Expliquer ce que signifie « NP-complet » ici, et comment on s'en sort quand même.
Le problème
Une coloration propre attribue une couleur à chaque sommet de sorte que deux sommets adjacents n'aient jamais la même.
Le nombre chromatique est le plus petit nombre de couleurs permettant de colorer proprement .
Trois couleurs suffisent ici, et l'on va voir qu'aucune coloration à deux couleurs n'existe. Une arête ne relie jamais deux sommets de même teinte : c'est tout ce qu'exige la définition.
Le nombre chromatique est alors le nombre minimal de ressources. Cette phrase mérite d'être écrite avant tout calcul, parce qu'elle contient toute la modélisation.
| Problème réel | Sommet | Arête | Couleur |
|---|---|---|---|
| Emploi du temps | un cours | deux cours ayant un élève commun | un créneau |
| Antennes | une antenne | deux antennes qui se brouillent | une fréquence |
| Compilation | une variable | deux variables vivantes en même temps | un registre |
| Ordonnancement | une tâche | deux tâches qui se chevauchent | une machine |
Quelques valeurs à connaître
| Graphe | Pourquoi | |
|---|---|---|
| Graphe complet | tous adjacents deux à deux | |
| Cycle pair | 2 | on alterne |
| Cycle impair | 3 | l'alternance échoue à la fermeture |
| Arbre (au moins une arête) | 2 | on alterne par profondeur |
| Graphe biparti | 2 | c'est la définition même |
Sur ce cycle à cinq sommets, l'alternance tient jusqu'à D, puis E se retrouve coincé entre D et A qui portent déjà les deux couleurs. Il en faut une troisième : .
Prouver qu'on ne peut pas faire mieux
Trouver une coloration à couleurs prouve seulement que . Pour établir l'optimalité, il faut aussi une minoration, et la clique la fournit.
Dans une clique de taille , chaque sommet est adjacent à tous les autres : il leur faut couleurs distinctes. Il en faut donc au moins autant pour le graphe entier.
2. Exhiber une coloration à $k$ couleurs : cela prouve $\chi \leq k$.
Les deux ensemble donnent $\chi = k$, et c'est une preuve complète.
Une coloration seule ne prouve jamais l'optimalité : elle ne fournit qu'une majoration. C'est l'erreur la plus fréquente en devoir.
A, B, C est une clique de taille 3, donc $\chi \geq 3$.La coloration donnée utilise 3 couleurs, donc $\chi \leq 3$.
Conclusion : $\chi = 3$, et c'est démontré, pas constaté.
Il existe même des graphes où l'écart est énorme, sans le moindre triangle et pourtant impossibles à colorer avec peu de couleurs. Les graphes où l'égalité est garantie forment une famille particulière, les graphes parfaits, objet du chapitre suivant.
L'algorithme glouton
Parcourir les sommets dans un ordre donné et attribuer à chacun la plus petite couleur non utilisée par ses voisins déjà colorés.
Il tourne en et produit toujours une coloration valide. Mais rarement optimale : tout dépend de l'ordre.
où est le degré maximal. En effet, quand le glouton colore un sommet, celui-ci a au plus voisins, donc au plus couleurs lui sont interdites : la couleur numéro est toujours disponible.
Le théorème de Brooks précise que cette borne n'est atteinte que par les graphes complets et les cycles impairs. Pour tous les autres graphes connexes, .
L'ordre décide de tout
L'intuition : les sommets très connectés sont les plus contraints, autant les traiter quand toutes les couleurs sont encore disponibles. En pratique, cela donne souvent un bon résultat, mais rien ne le garantit : ce n'est pas un algorithme exact.
1.Vous exhibez une coloration à 4 couleurs. Qu'avez-vous prouvé ?
2.Que vaut le nombre chromatique d'un cycle à 7 sommets ?
3.L'algorithme glouton sur un graphe biparti…
Pourquoi c'est difficile
Déterminer pour un graphe quelconque est un problème NP-complet. On sait vérifier rapidement qu'une coloration proposée est valide, mais on ne connaît aucun algorithme qui en trouve une optimale en temps polynomial.
Même la question restreinte « peut-on colorer ce graphe avec 3 couleurs ? » est NP-complète. Avec 2 couleurs, en revanche, c'est facile : cela revient à tester si le graphe est biparti, ce qu'un BFS fait en une passe.
Trois échappatoires bien réelles, et toutes utilisées :
Accepter l'approximation : le glouton donne immédiatement une solution valide, souvent proche.
Restreindre la famille de graphes : sur les graphes d'intervalles, sur les graphes cordaux, le problème redevient linéaire et exact.
Se contenter de petites instances : une recherche exhaustive intelligente traite sans peine quelques dizaines de sommets.
La deuxième voie est de loin la plus rentable, et c'est l'objet du chapitre suivant.
Un cas complet : des tâches qui se chevauchent
Voici la modélisation classique. Chaque tâche devient un sommet, deux tâches sont reliées si leurs intervalles se chevauchent, et une couleur est une machine.
Pour deux intervalles et :
max(début) < min(fin) dit la même chose sans aucun cas particulier, et se lit directement : l'intersection est non vide si elle commence avant de finir.Utilisez l'inégalité stricte : deux tâches dont l'une finit à l'instant où l'autre commence ne se chevauchent pas.
Le glouton n'est pas en cause : c'est l'ordre qui décide. Toute la question devient donc : existe-t-il un ordre qui garantisse l'optimalité ? Pour cette famille de graphes, la réponse est oui, et c'est le sujet du chapitre suivant.
Exercices type
Quel est le nombre chromatique d'un cycle à 7 sommets ?
3.
Sur un cycle, on tente d'alterner deux couleurs. Cela fonctionne exactement quand la longueur est paire : en revenant au point de départ, on retombe sur la bonne couleur.
Avec 7 sommets, l'alternance échoue à la fermeture : le dernier sommet est voisin du premier et porterait la même couleur. Il en faut une troisième.
Règle générale : si est pair, 3 s'il est impair.
Une coloration à 4 couleurs a été trouvée. Est-elle optimale ?
On ne peut pas le dire. Une coloration ne fournit qu'une majoration : .
Pour conclure à l'optimalité, il faut une minoration du même niveau, et le moyen standard est d'exhiber une clique de taille 4 : elle prouve .
Les deux ensemble donnent . Sans la clique, la coloration peut parfaitement être améliorable, comme le montre le glouton dans un mauvais ordre.
Pourquoi $\chi \geq \omega$, et pourquoi l'égalité n'est-elle pas garantie ?
L'inégalité vient de la définition de la clique : ses sommets sont deux à deux adjacents, donc ils portent tous des couleurs différentes. Une clique de taille force donc couleurs.
L'égalité n'est pas garantie parce que la difficulté d'un graphe ne tient pas seulement à ses cliques. Le cycle en est le contre-exemple minimal : , car il n'a aucun triangle, et pourtant .
Les graphes où l'égalité vaut pour tous les sous-graphes induits s'appellent les graphes parfaits.
Le glouton peut-il utiliser plus de couleurs que nécessaire ? De combien ?
Oui, et l'écart peut être arbitrairement grand.
Sur un graphe biparti, où 2 couleurs suffisent toujours, il existe des ordres qui font utiliser au glouton un nombre de couleurs proportionnel au nombre de sommets.
La borne générale reste couleurs, quel que soit l'ordre. Ce qui varie, c'est la distance entre ce résultat et l'optimum, et cette distance ne dépend que de l'ordre choisi.
À quoi sert l'heuristique de Welsh-Powell ?
À choisir un ordre plus favorable : les sommets sont triés par degré décroissant avant l'application du glouton.
L'intuition est que les sommets les plus contraints, ceux qui ont le plus de voisins, doivent être traités tant que le maximum de couleurs est encore disponible.
En pratique le résultat est souvent bon, mais ce n'est pas un algorithme exact : il existe des graphes où Welsh-Powell dépasse l'optimum. C'est une heuristique, pas une garantie.
Colorer avec 2 couleurs est facile, avec 3 c'est NP-complet. Pourquoi cette rupture ?
Parce que colorer avec 2 couleurs revient exactement à tester si le graphe est biparti, ce qu'un simple BFS bicolore décide en : chaque sommet n'a aucun choix, sa couleur est imposée par son découvreur.
Dès 3 couleurs, un choix apparaît à chaque sommet, et ce choix influence tout le reste du graphe. Il n'existe plus de propagation locale qui décide, et l'on retombe sur une exploration combinatoire.
Cette rupture entre 2 et 3 est un phénomène classique en complexité : elle se retrouve pour la satisfiabilité, facile en 2-SAT et NP-complète en 3-SAT.
La méthode
- Écris la phrase de modélisation : une arête signifie « ne peuvent pas partager ».
- Cherche une clique avant de colorer : elle donne la minoration.
- Colore ensuite, et compare le nombre de couleurs à la taille de la clique.
- Conclus à l'optimalité seulement si les deux nombres coïncident.
- Trie les sommets avant le glouton, par degré décroissant à défaut de mieux.
- Ne présente jamais une coloration comme une preuve d'optimalité.
- Cherche la famille du graphe avant de conclure que le problème est difficile.
En résumé
- Une coloration propre interdit deux voisins de même couleur.
- est le nombre minimal de couleurs ; une arête modélise un conflit.
- , , ou 3 selon la parité.
- Minoration : , prouvée en exhibant une clique.
- Une coloration prouve seulement : il faut les deux pour conclure.
- Le glouton est en , toujours valide, rarement optimal.
- Borne : , atteinte seulement par et les cycles impairs.
- Welsh-Powell trie par degré décroissant : bonne heuristique, aucune garantie.
- Le problème est NP-complet dès 3 couleurs, facile avec 2 (test de bipartisme).
Et ensuite ? Le glouton donne l'optimum si l'ordre est bien choisi. Le chapitre suivant montre sur quelles familles de graphes un tel ordre existe, et comment le calculer.