Avertissement
Ce contenu a été généré par une intelligence artificielle (LLM) et peut contenir des imprécisions ou des erreurs malgré notre relecture attentive. Il s'agit d'un outil d'apprentissage et non d'une référence académique.
Si vous constatez des erreurs, merci de nous les signaler via la page "À propos".
Coloration et graphes bipartis (A)
Concept 1: Coloration de graphe et nombre chromatique
Prérequis
- Définition d’un graphe (sommets et arêtes).
- Notion de sommets voisins (adjacents).
- Notion de sous-graphe, de clique () et de cycle ().
- Notion d’ensemble stable (indépendant).
Définition
Soit un graphe non orienté.
Une coloration de est une application (où est un ensemble de “couleurs”, souvent des entiers ) qui attribue une couleur à chaque sommet, de telle sorte que deux sommets reliés par une arête aient toujours des couleurs différentes.
Formellement, la condition s’écrit :
On dit que le graphe est -coloriable s’il existe une coloration valide de utilisant au plus couleurs (c’est-à-dire que ).
Le nombre chromatique de , noté (la lettre grecque “khi”), est le plus petit entier pour lequel le graphe est -coloriable.
Propriétés clés
- Partition en stables : Si on regroupe tous les sommets ayant la même couleur, on forme des ensembles de sommets qui ne sont pas reliés entre eux. Chaque ensemble de couleur est donc un stable (ou independant set). Une coloration correspond à une partition de l’ensemble des sommets en stables.
- Relation avec la taille du graphe : Pour tout graphe à sommets, on a .
- Valeurs remarquables :
- si et seulement si ne contient aucune arête (c’est un graphe vide ou -stable).
- si et seulement si tous les sommets sont reliés entre eux (c’est une clique ).
- Pour un chemin (), (on alterne les couleurs).
- Pour un cycle :
- Si est pair, .
- Si est impair, .
- Pour le graphe de Petersen, .
Exemples
Exemple 1 : Le chemin à 3 sommets ()
Soit le graphe avec et les arêtes .
On cherche à colorier ce graphe :
- On colorie le sommet en Bleu.
- Le sommet est voisin de , il doit avoir une couleur différente, disons Rouge.
- Le sommet est voisin de (Rouge), mais pas de . On peut donc réutiliser Bleu pour le sommet .
La coloration est valide avec 2 couleurs. On ne peut pas faire moins (car il y a des arêtes), donc .
Exemple 2 : Le cycle à 3 sommets ( ou )
Soit un triangle avec où tous les sommets sont connectés deux à deux.
- Sommet : Couleur 1.
- Sommet (voisin de 1) : Couleur 2.
- Sommet (voisin de 1 ET de 2) : Il ne peut être ni Couleur 1, ni Couleur 2. Il faut une Couleur 3.
Comme il faut 3 couleurs, .
Exemple 3 : Graphe étoile ()
Soit un graphe avec un sommet central relié à 4 feuilles . Les feuilles ne sont pas reliées entre elles.
- On donne la couleur au centre .
- Toutes les feuilles sont voisines de , elles ne peuvent pas être . Cependant, elles ne sont pas voisines entre elles. On peut donc donner la couleur à et .
- On utilise 2 couleurs ( et ).
Donc .
Contre-exemples
Contre-exemple 1 : Coloration invalide
Soit un graphe avec une arête reliant et . Si on définit une application telle que et , alors n’est pas une coloration valide, car deux voisins partagent la même couleur.
Contre-exemple 2 : Nombre chromatique et sous-graphes
Ce n’est pas parce qu’un graphe contient un cycle (qui nécessite 2 couleurs) que le graphe entier a un nombre chromatique de 2. Si ce fait partie d’un graphe plus complexe contenant aussi un triangle (), le nombre chromatique du graphe total sera au moins 3. Le nombre chromatique est déterminé par la contrainte la plus forte dans le graphe.
Concepts liés
- Graphes bipartis : Graphes dont le nombre chromatique est exactement 2 (voir Concept 3).
- Clique maximale : Si un graphe contient une clique de taille (), alors .
- Algorithme glouton : Méthode pour trouver une coloration (voir Concept 2).
Applications
- Attribution de fréquences : Assigner des fréquences radio à des antennes de sorte que deux antennes proches (voisines) n’interfèrent pas (couleurs différentes).
- Planification d’horaires : Assigner des créneaux horaires (couleurs) à des examens (sommets) de sorte que deux examens ayant des étudiants en commun (arête) ne soient pas en même temps.
Concept 2: Algorithme glouton et bornes du nombre chromatique
Prérequis
- Concept de coloration (Concept 1).
- Notion de voisinage et de degré d’un sommet ().
- Notion de degré maximum du graphe .
- Ordonnancement/numérotation des sommets.
Définition
L’Algorithme glouton est une méthode heuristique pour trouver une coloration d’un graphe . Il dépend de l’ordre dans lequel on considère les sommets.
Algorithme :
- Ordonner les sommets de : .
- Disposer d’un ensemble de couleurs ordonnées .
- Pour allant de 1 à :
- Attribuer au sommet la plus petite couleur possible qui n’est pas déjà utilisée par ses voisins précédemment coloriés ().
Grâce à cet algorithme, on obtient la propriété fondamentale suivante liant le nombre chromatique au degré maximum :
Propriétés clés
- Dépendance à l’ordre : Le nombre de couleurs utilisées par l’algorithme glouton dépend fortement de l’ordre des sommets choisi initialement.
- Optimalité non garantie : L’algorithme glouton ne donne pas toujours le nombre chromatique minimal . Il donne une borne supérieure.
- Justification de la borne : Lorsqu’on arrive à un sommet pour le colorier, il a au maximum voisins. Dans le “pire” des cas, tous ses voisins sont déjà coloriés avec des couleurs différentes. Cela “interdit” couleurs. Il reste donc toujours au moins la -ième couleur disponible pour .
- Existence d’un ordre optimal : Il existe toujours un ordre des sommets pour lequel l’algorithme glouton utilise exactement couleurs, mais trouver cet ordre est difficile.
Exemples
Exemple 1 : Application sur un chemin (ordre naturel)
Graphe : .
Ordre de traitement : .
- Sommet 1 : pas de voisin colorié. Couleur 1.
- Sommet 2 : voisin de 1 (Couleur 1). Couleur 2.
- Sommet 3 : voisin de 2 (Couleur 2). Couleur 1 (la 1 est libre pour lui).
- Sommet 4 : voisin de 3 (Couleur 1). Couleur 2.
Total : 2 couleurs. C’est optimal car .
Exemple 2 : Application sur un cycle (mauvais ordre)
Imaginez un cycle . Supposons qu’on traite les sommets dans l’ordre (non contigus d’abord).
- Sommet 1 : Couleur 1.
- Sommet 3 : (non voisin de 1) Couleur 1.
- Sommet 2 : voisin de 1 (C1) et de 3 (C1). Couleur 2.
- Sommet 4 : voisin de 1 (C1) et de 3 (C1). Couleur 2.
Total : 2 couleurs. Ici, malgré l’ordre étrange, l’algorithme trouve l’optimal.
Exemple 3 : Illustration de la borne
Soit un cycle (pentagone). Le degré de chaque sommet est 2, donc .
La borne nous dit que .
En effet, on sait que pour un cycle impair, . La borne est ici atteinte.
Contre-exemples
Contre-exemple 1 : L’algorithme glouton n’est pas toujours optimal
Considérons le graphe biparti avec les arêtes .
Supposons l’ordre de traitement : .
- Sommet 2 : Couleur 1.
- Sommet 3 : voisin de 2 (C1) Couleur 2.
- Sommet 1 : voisin de 2 (C1) Couleur 2.
- Sommet 4 : voisin de 3 (C2) Couleur 1.
Ici on utilise 2 couleurs (optimal).
Mais il existe des graphes (“Couronne” par exemple) où un mauvais ordre peut donner un nombre de couleurs bien supérieur à , tout en restant inférieur à .
Contre-exemple 2 : La borne n’est pas une égalité
Pour un graphe étoile (un centre, 10 rayons).
Le degré max est .
La borne dit .
Or, on sait que . La différence peut être très grande.
Concepts liés
- Algorithme de Welsh-Powell : Une amélioration de l’algorithme glouton qui trie d’abord les sommets par degré décroissant pour tenter d’améliorer le résultat.
- Complexité algorithmique : Déterminer est un problème NP-complet (très difficile), d’où l’usage d’heuristiques comme l’algorithme glouton.
Applications
- Allocation de registres en compilation : Les variables sont les sommets. Si deux variables sont actives en même temps, elles sont reliées. On veut minimiser le nombre de registres processeur (couleurs) utilisés. L’algorithme glouton est souvent utilisé pour sa rapidité.
Concept 3: Graphes bipartis et caractérisation par les cycles
Prérequis
- Coloration (Concept 1).
- Notion de chemin et de cycle dans un graphe.
- Parité (nombre pair/impair).
- Connexité.
Définition
Un graphe est dit biparti s’il est 2-coloriable. Cela signifie que .
De manière équivalente, un graphe est biparti si l’on peut diviser l’ensemble de ses sommets en deux parties disjointes (classes) et () de telle sorte que :
- Toutes les arêtes du graphe relient un sommet de à un sommet de .
- Aucune arête ne relie deux sommets de .
- Aucune arête ne relie deux sommets de .
Une propriété fondamentale (Théorème 8.5) permet de les identifier :
Un graphe est biparti si et seulement s’il ne contient aucun cycle de longueur impaire.
Propriétés clés
- Classes de bipartition : Les ensembles et sont des ensembles stables (couleur 1 et couleur 2).
- Cycles pairs : Un graphe biparti peut contenir des cycles, mais ils doivent obligatoirement être de longueur paire (4, 6, 8…).
- Graphes sans arêtes : Un graphe sans aucune arête est biparti (on peut mettre tous les sommets dans et , ou n’importe quelle autre répartition, car la condition sur les arêtes est satisfaite par vacuité).
- Implication algorithmique : On peut vérifier si un graphe est biparti en temps polynomial (par un parcours en largeur/profondeur) contrairement au calcul général du nombre chromatique.
Exemples
Exemple 1 : Le carré ()
Le cycle est de longueur 4 (pair).
On peut partitionner les sommets en :
et .
Les arêtes sont .
Chaque arête relie bien un élément de à un élément de . C’est un graphe biparti.
Exemple 2 : Graphe biparti complet
Soit et .
Toutes les arêtes possibles entre et existent.
Aucune arête n’existe à l’intérieur de ou de .
C’est un graphe biparti par définition.
Exemple 3 : Arbres
Tout arbre (graphe connexe sans cycle) est un graphe biparti.
Comme il n’a pas de cycle du tout, il n’a pas de cycle impair. La condition est vérifiée.
On peut le colorier avec 2 couleurs en partant de la racine (Couleur 1) et en alternant les couleurs à chaque niveau de profondeur.
Contre-exemples
Contre-exemple 1 : Le triangle ( ou )
C’est un cycle de longueur 3.
3 est impair.
D’après le théorème, ce graphe n’est pas biparti. Il nécessite 3 couleurs, donc il n’est pas 2-coloriable.
Contre-exemple 2 : Un pentagone avec une corde
Soit un cycle (longueur 5, impair). Même si on rajoute des arêtes à l’intérieur (cordes), le cycle impair existe toujours en tant que sous-graphe. Le graphe ne peut donc pas être biparti.
Concepts liés
- Couplage (Matching) : Les graphes bipartis ont des propriétés très fortes concernant les couplages (Théorème de Hall, abordé dans d’autres chapitres).
- Parcours en largeur (BFS) : Algorithme utilisé pour tester la bipartition (on colorie couche par couche et on vérifie s’il y a un conflit).
Applications
- Affectation de tâches : Si on a un ensemble de travailleurs et un ensemble de machines , et que chaque travailleur est qualifié pour certaines machines, on modélise cela par un graphe biparti.
- Systèmes de recommandation : Utilisateurs et Produits . Une arête représente un achat ou un “j’aime”. Le graphe est naturellement biparti.