Familles remarquables
Ce que ce chapitre apporte
- Reconnaître un graphe biparti, un graphe d'intervalles, un graphe cordal, un graphe planaire.
- Enchaîner les implications entre ces familles.
- Définir un graphe parfait et dire ce que la perfection garantit.
- Employer LexBFS pour obtenir un ordre parfait d'élimination.
- Colorer un graphe d'intervalles de façon optimale en temps linéaire.
- Utiliser la formule d'Euler et la conséquence sur les graphes planaires.
Bipartis
Un graphe est biparti si ses sommets se répartissent en deux groupes tels que toute arête aille d'un groupe à l'autre.
Équivalence : un graphe est biparti si et seulement si il n'a aucun cycle de longueur impaire.
C'est la famille la plus simple, et déjà tout devient facile : dès qu'il y a une arête, le test se fait par un BFS bicolore en , et les problèmes de couplage y ont des solutions polynomiales.
Graphes d'intervalles
Un graphe est un graphe d'intervalles si l'on peut associer à chaque sommet un intervalle de la droite réelle, de sorte que deux sommets soient adjacents exactement quand leurs intervalles se coupent.
C'est la famille du chapitre précédent : tâches sur un axe de temps, réservations de salle, expression de gènes, allocation de registres dans un compilateur. Sa propriété fondamentale est visible directement :
Donc $\omega(G)$ vaut exactement le recouvrement maximal, c'est-à-dire le nombre maximal d'intervalles empilés au-dessus d'un même instant. Cela se calcule en triant les bornes, en $O(n \log n)$, sans jamais construire le graphe.
À l'instant 2, trois intervalles sont ouverts : A, B, C. Nulle part il n'y en a quatre.
Donc $\omega = 3$, donc au moins 3 machines. Et l'on va voir qu'il en suffit exactement 3.
Graphes cordaux
Un graphe est cordal (ou triangulé) si tout cycle de longueur au moins 4 possède une corde, c'est-à-dire une arête reliant deux sommets non consécutifs du cycle.
Autrement dit : ses seuls cycles sans corde sont des triangles.
Le cycle à quatre sommets ci-dessous n'est pas cordal : aucune diagonale ne le traverse.
Ajoutez la corde A -- C et il le devient : le carré se décompose en deux triangles.
Un sommet est simplicial si ses voisins forment une clique.
Un ordre parfait d'élimination est un ordre des sommets tel que chacun soit simplicial dans le sous-graphe formé de lui-même et de ceux qui le suivent.
Un graphe est cordal si et seulement si il admet un tel ordre.
C'est cette caractérisation qui rend la famille utile : elle transforme une propriété globale, difficile à vérifier, en un ordre qu'un algorithme sait produire.
Graphes parfaits
Un graphe est parfait si, pour tout sous-graphe induit , on a .
Le mot tout est essentiel. Il ne suffit pas que l'égalité vaille pour le graphe entier : elle doit valoir pour chacun de ses sous-graphes induits. C'est ce qui rend la notion stable et exploitable.
La chaîne d'implications qui débloque le problème du chapitre précédent :
On n'a pas trouvé un meilleur algorithme général : on a identifié la structure du problème particulier. C'est le mouvement le plus rentable de toute l'algorithmique, et il vaut bien au-delà des graphes.
Conjecturé par Berge en 1961, démontré en 2002. Ce n'est pas un résultat qu'on utilise en calcul, mais il dit quelque chose de frappant : toute la difficulté de la coloration tient à ces trous impairs, et le cycle $C_5$ du chapitre précédent en est le plus petit exemple.
LexBFS, l'ordre qui garantit l'optimum
LexBFS est un BFS où, à chaque étape, on choisit le sommet dont l'étiquette est la plus grande dans l'ordre lexicographique. Chaque sommet retenu ajoute son numéro à l'étiquette de ses voisins non encore traités.
Sur un graphe cordal, l'ordre produit, lu à l'envers, est un ordre parfait d'élimination.
Le glouton appliqué dans cet ordre donne une coloration optimale, en temps linéaire. Le problème NP-complet du chapitre précédent est résolu exactement, pour cette famille.
Le triangle mis en évidence est la clique de taille 3 qui prouve ; la coloration en trois teintes prouve . La preuve est complète, et l'affectation aux machines se lit directement sur les couleurs.
1.Le carré C4 est-il cordal ?
2.Dans un graphe d'intervalles, la plus grande clique correspond…
3.Que garantit la chaîne « intervalles ⟹ cordal ⟹ parfait » ?
Graphes planaires
Un graphe est planaire s'il peut être dessiné dans le plan sans qu'aucune arête n'en croise une autre.
C'est une propriété du graphe, pas du dessin : un graphe planaire mal dessiné a des croisements, ce qui ne l'empêche pas d'être planaire.
Pour un graphe planaire connexe dessiné sans croisement, avec faces (la face extérieure comprise) :
C'est un test de réfutation immédiat : $K_5$ a 5 sommets et 10 arêtes, or $3 \times 5 - 6 = 9 < 10$. Donc $K_5$ n'est pas planaire, et c'est prouvé en une ligne.
Attention au sens : l'inégalité est nécessaire, pas suffisante. $K_{3,3}$ a 6 sommets et 9 arêtes, il passe le test, et il n'est pourtant pas planaire.
Le théorème de Kuratowski donne la caractérisation exacte : un graphe est planaire si et seulement s'il ne contient ni ni , à subdivision près. Et le théorème des quatre couleurs, démontré en 1976 avec l'aide d'un ordinateur, affirme que tout graphe planaire vérifie .
Le tableau qu'il faut avoir en tête
| Famille | Reconnaissance | Coloration |
|---|---|---|
| Biparti | par BFS bicolore | , immédiat |
| Arbre | et connexe | , immédiat |
| Intervalles | en triant les bornes | , glouton par début croissant |
| Cordal | par LexBFS | , glouton dans l'ordre LexBFS |
| Parfait | polynomial, mais compliqué | |
| Planaire | , algorithme sophistiqué | |
| Quelconque | NP-complet |
Exercices type
Pourquoi la clique d'un graphe d'intervalles est-elle facile à trouver ?
Parce qu'elle correspond à un point de la droite.
Des intervalles deux à deux sécants ont nécessairement un point commun, c'est le théorème de Helly en dimension 1. Une clique de taille équivaut donc à un instant où intervalles sont simultanément ouverts.
Il suffit alors de trier les bornes et de parcourir l'axe en incrémentant à chaque ouverture, en décrémentant à chaque fermeture : , sans jamais construire le graphe. Sur un graphe quelconque, trouver la clique maximale est NP-difficile.
Le carré $C_4$ est-il cordal ? Et parfait ?
Cordal : non. C'est un cycle de longueur 4 sans corde, ce qui est exactement la définition du contraire.
Parfait : oui. est biparti, donc , et il contient une arête donc . La même vérification vaut pour tous ses sous-graphes induits.
Cet exemple montre que cordal est strictement plus fort que parfait : la chaîne d'implications ne se remonte pas.
Que garantit exactement la perfection, et que ne garantit-elle pas ?
Elle garantit pour le graphe et tous ses sous-graphes induits.
Elle ne donne pas d'algorithme simple : savoir qu'un graphe est parfait ne dit pas comment le colorer. Il existe un algorithme polynomial, mais il est très sophistiqué.
C'est pourquoi on préfère travailler sur les sous-familles concrètes, intervalles ou cordaux, où un algorithme simple et linéaire existe : LexBFS suivi du glouton.
Pourquoi $K_5$ n'est-il pas planaire ?
Par la conséquence de la formule d'Euler : tout graphe planaire simple à sommets vérifie .
Pour : et , alors que . L'inégalité est violée, donc n'est pas planaire.
Ce raisonnement ne fonctionne pas dans l'autre sens : vérifie l'inégalité () sans être planaire. Pour lui il faut une borne affinée, valable sur les graphes sans triangle : , soit .
Un ordre parfait d'élimination : à quoi cela sert-il concrètement ?
À rendre le glouton exact.
Quand on colore un sommet simplicial, ses voisins déjà colorés forment une clique : ils portent donc des couleurs deux à deux distinctes, et leur nombre est au plus . La plus petite couleur libre est donc toujours inférieure à .
En procédant dans cet ordre, le glouton n'utilise jamais plus de couleurs, ce qui est optimal puisque . LexBFS produit cet ordre en temps linéaire sur un graphe cordal.
Comment aborder un problème de coloration en pratique ?
En cherchant d'abord la famille du graphe, avant tout algorithme.
Les données viennent-elles d'intervalles de temps ? Le graphe est d'intervalles, donc parfait, et le glouton par date de début croissante est optimal.
Est-il biparti ? Alors 2 couleurs, et un BFS le montre.
Est-il planaire, parce qu'il vient d'une carte ? Alors 4 couleurs suffisent.
Ce n'est que si aucune structure ne se dégage qu'on se rabat sur le glouton avec Welsh-Powell, en acceptant l'approximation.
La méthode
- Cherche l'origine des données : le temps, la géométrie, une relation bipartite.
- Teste le bipartisme en premier : c'est un BFS, et cela règle tout.
- Trie les bornes si les sommets sont des intervalles : tombe immédiatement.
- Applique LexBFS puis le glouton sur un graphe cordal.
- Vérifie l'optimalité en comparant le nombre de couleurs à .
- Utilise pour réfuter la planarité, jamais pour la prouver.
- Ne conclus « NP-complet, donc perdu » qu'après avoir cherché la structure.
En résumé
- Un graphe biparti se colore avec 2 couleurs, et se reconnaît par un BFS.
- Dans un graphe d'intervalles, est le recouvrement maximal, calculable en triant.
- Un graphe est cordal si tout cycle de longueur a une corde.
- Cordal équivaut à l'existence d'un ordre parfait d'élimination.
- Un graphe est parfait si pour tous ses sous-graphes induits.
- intervalles cordal parfait .
- LexBFS produit l'ordre qui rend le glouton exact, en temps linéaire.
- Un graphe planaire vérifie et se colore avec 4 couleurs.
- Reconnaître la structure vaut mieux que chercher un meilleur algorithme général.
Et ensuite ? Il reste une grande famille de problèmes que les graphes résolvent et que ce module n'a pas encore abordée : faire circuler quelque chose, et apparier deux ensembles. C'est le dernier chapitre.