5 Coloriage des arêtes
Dans cette partie, tous les graphes seront supposés simples.
Dénition 5.1 Soit G = (V, E) un graphe sans boucles. Soit Σ un ensemble ni. On appelle coloriage des arêtes une application c:E → Σ. On dit qu'un colororiage d'arêtes c:E → Σest propre si pour deux arêtes incidenteseet f (qui ont une extrémité commune),c(e)̸=c(f).
On appelle indice chromatique deGle plus petit nombre de couleurs nécessaire à un coloriage propre de ses arêtes. On le noteχ′(G).
Dans un coloriage propre, toutes les arêtes incidentes à un même sommet sont de couleurs diérentes. Donc, si∆(G) est le degré maximum des sommets de G, on a ∆(G)≤χ′(G). Théorème 5.1 (Vizing, 1964) Pour tout graphe simpleG, on a :
χ′(G)≤∆(G) + 1
Malheureusement, il est assez compliqué en général pour un graphe G de savoir si χ′(G) =
∆(G)ou à∆(G) + 1.
C'est un problèmeN P-dicile, c'est-à-dire, qu'il n'existe pas à l'heure actuelle d'algorithme donnant un coloriage optimal d'un graphe quelconque en temps raisonnable.
Dans les deux cas particuliers suivants, le résultat est connu.
Proposition 5.2 On considère le graphe cycliqueCn, pourn≥3. Alors, χ′(Cn) =
{ 2 sin est pair, 3 sin est impair Proposition 5.3 Pour le graphe complet Kn,
χ′(Kn) =
{ n−1 si nest pair, nsi nest impair
Théorème 5.4 (König, 1916) SoitG= (V, E) un graphe biparti, alors, χ′(G) = ∆(G). L'algorithme de coloriage glouton existe aussi pour les arêtes. Cf TD.
6 Graphes planaires
6.1 Dénition et caractérisation des graphes planaires
Dénition 6.1 Un graphe est dit planaire s'il admet une représentation dans le plan telle que si deux arêtes ont un point commun, celui-ci est une extrémité de chacune des deux arêtes. Une telle représentation est appelé une représentation planaire (ou plane) deG.
a
b d
c
b d
a
c
2 représentations du même graphe, la 1ère n'est pas planaire, la 2e est planaire.
Une représentation planaire divise le plan en plusieurs régions délimitée par des arêtes formant un cycle (chaîne fermée dont arêtes sont toutes distinctes), on appelle ces régions les faces deG.
Parmi ces faces une seule d'entre elles n'est pas bornée, on l'appelle face extérieure. Les autres faces ont une aire nie.
Un graphe est planaire ssi ses composantes connexes le sont. Dans l'étude de la planarité des graphes, on se ramène donc à l'étude de graphes connexes.
De plus, on peut aussi se ramener aux cas des graphes simples. Si un graphe a des arêtes multiples ou des boucles, on remplace par des arêtes simples en on supprime les boucles. Après avoir trouvé une représentation planaire du graphe simple obtenu, on peut toujours lui rajouter les arêtes multiples et les boucles.
Théorème 6.1 (Euler) La formule suivante relie le nombre de sommets s, le nombre d'arêtes aet le nombre de faces f d'un graphe planaire connexe :
s−a+f = 2
La formule d'Euler montre en particulier que toutes les représentations planaires d'un graphe planaire ont le même nombre de faces.
Dénition 6.2 On considère un graphe planaire connexe. Le degré d'une facef, noté d(f), est le nombre d'arêtes qui la bordent en comptant 2 fois les arêtes qui ne sont pas dans un cycle.
Lemme 6.2 La somme des degrés des faces d'un graphe planaire connexe est égale à deux fois le nombre d'arêtes.
Remarque 1 Si G est un graphe simple connexe qui au moins 3 sommets. Le degré d'une face est supérieur ou égal à 3.
Corollaire 6.3 Soit G un graphe planaire simple et connexe. Alors G contient un sommet de degré au plus 5.
Proposition 6.4 Le graphe completKn est planaire pourn≤4 et non planaire pour n >4.
Proposition 6.5 Le graphe biparti completKp,qest planaire pourp≤2ouq≤2et non planaire pour p >2 et q >2.
Un théorème de Kuratowski de 1930 montre qu'un graphe simple connexe est planaire ssi il ne contient pas de subdivisions deK5 ou deK3,3 (une subdivision du graphe simpleGétant un graphe simple obtenu à partir deGen ajoutant des sommets sur les arêtes de G).
6.2 Le théorème des quatre couleurs
Le théorème très celèbre suivant montre qu'il est possible de n'utiliser que 4 couleurs pour colorier une carte de façon à ce que 2 pays voisins n'aient pas la même couleur.
Théorème 6.6 (Théorème des 4 couleurs, K. Appel, W. Haken (1976)) Le nombre chro- matique d'un graphe planaire simple est au plus 4.
La preuve nécessite l'usage d'un ordinateur.
Exemple d'un graphe pour lequel 4 couleurs sont nécessaires : a
d
c b
Théorème 6.7 (Théorème des 6 couleurs) Le nombre chromatique d'un graphe planaire simple est au plus 6.
7 Graphes orientés
Dénition 7.1 Un graphe orienté G est déni par deux ensembles nis : un ensemble V non vide de sommets, un ensemble A d'arcs ou d'arêtes orientées, avec associé à chaque arc a un couple (x, y) (l'ordre est important) de sommets qui sont les extrémités de a. Le sommet x est l'origine dea et le sommet y est le but de a.
Exemple :
z
x y
d b
a
e c
z
x y
G H
Gest un graphe orienté : à l'arc aest associé le couple(x, z), etc..
H est le graphe non orienté associé à G, ie, le graphe obtenu en oubliant l'orientation des arcs deG.
Lorque aest un arc de G associé à un couple de sommets (x, y), on dit que a va de x à y, queasort dex et entre dansy, queaest incident à x et ày.
Une boucle est un arc ssocié à un couple de la forme (x, x). Un arc est dit multiple dans le cas où il existe plusieurs arcs associé au même couple(x, y).
Les arcs associés respectivement aux couples (x, y) et(y, x) sont dits opposés.
Un arc est dit strict s'il n'a ni boucles, ni arcs multiples (il peut avoir des arcs opposés). Dans ce cas on peut écrirea= (x, y) pour un arc de G, cela ne prête pas à confusion.
Les notions d'isomorphisme de graphes et de sous-graphes se transposent de façon évidente aux graphes orientés.
Dénition 7.2 Le degré intérieur, respectivement le degré extérieur, d'un sommetxd'un graphe orientéG est le nombre d'arcs entrant dansx, respectivement le nombre d'arcs sortant dex. Théorème 7.1 (Lemme des poignées de mains) Dans un graphe orienté, la somme des de- grés extérieurs et la somme des degrés intérieurs sont toutes deux égales au nombre d'arcs.
Dénition 7.3 Un chemin de longueur k dans un graphe orienté G= (V, A), est une suite de la forme (x0, a1, x1, a2, ..., ak, xk), où k ≥ 0 est un entier, les xi sont des sommets de G pour i= 0, ..., k et pour tout i= 1, ..., k,ai est une arête associée au couple(xi−1, xi).
Un chemin est dit simple si ses arcs ai, pour i= 1, ...k, sont deux à deux distincts.
Un chemin est dit élémentaire si des sommetsxi, pour i= 0, ..., k, sont deux à deux distincts.
Un circuit est un chemin de longueurk≥1 simple et fermé : (x0, a1, x1, a2, ..., ak, x0)
Un circuit est élémentaire si ses sommets, xi, pouri= 0, ..., k−1sont deux à deux distincts.
Lemme 7.2 Si dans un graphe orienté deux sommets sont reliés par un chemin alors, ils sont reliés par un chemin élémentaire.
Dénition 7.4 Un graphe orienté est connexe son graphe non orienté sous-jacent est connexe.
Un grapheGest fortement connexe si il existe un chemin qui joint deux sommets quelconques deG.
7.1 Orientation d'un graphe non orienté
Dénition 7.5 Soit G un graphe non orienté connexe. Une arête e de G est appelée arête de coupure si le grapheG′ obtenu en supprimante dans G n'est plus connexe.
b e
a c d f
Par exemple{c, d} est une arête de coupure du graphe ci-dessus.
Proposition 7.3 SoitG un graphe non orienté. Une arête ede G est une arête de coupure ssi en'appartient à aucun cycle élémentaire de G.
Application : SoitG un graphe simple non orienté connexe. On voudrait orienter les arêtes de Gde manière à obtenir un graphe orienté fortement connexeD. Il sut de remplacer les arêtes de coupure deGpar deux arcs opposés. Par contre, les autres arêtes appartiennent toutes à cycle élémentaire (chaîne fermée dont tous les sommets sont distincts) qu'il est facile d'orienter (on oriente toutes les arêtes dans le même sens).
Exemple d'application pratique : Suite à des problèmes de circulation, des responsables com- munaux désirent placer les rues d'un quartier en sens unique. Si un graphe non orienté modélise les rues et leurs croisements, la question qui se pose est donc d'orienter les arcs de ce graphe de manière telle qu'il existe un chemin orienté entre toute paire de sommets.
7.2 Théorème de Cayley
Théorème 7.4 (Cayley) Il y a nn−2 arbres étiquetés à nsommets.
Dénition 7.6 Un arbre enraciné est un arbre dans lequel on choisit un sommet que l'on appelle racine.
Une forêt enracinée sur l'ensemble{1, ..., n}est une forêt dont les sommets sont étiquetés de 1 à n et dont chaque composante connexe est un arbre enraciné.
On note Fn,k l'ensemble des forêts enracinées, qui contiennent n sommets et k arbres enra- cinés.
En particulierFn,1 est l'ensemble des arbres enracinés à n sommets.
Remarque 2 1. Pour tout n∈N∗, on note Tn le nombre d'arbres étiquetés à nsommets.
On a alors|Fn,1|=n×Tn, car dans chaque arbre étiqueté àn sommets, il y an choix de racine possibles.
2. Soit T un arbre étiqueté. On choisit une racine r deT, alors, pour tout sommet v deT, il existe une unique chaîne élémentaire qui va der à v. On peut alors orienter les arêtes de l'arbre T de fa çon à ce que toutes ces chaînes deviennent des chemins qui partent de r.
On peut donc regarder une forêt enracinéeFn,k∈ Fn,k comme un graphe orienté dont tous les arcs partent des racines.
3. On dira qu'une forêt F contient une autre forêtF′ siF contient F′ comme graphe orienté.
si F et F′ ont le même nombre de sommets et si F′ ⊂F, alors il est clair que F′ a plus de composantes connexes queF (faire un dessin).
Dénition 7.7 On appelle suite de forêts F1, ..., Fk suite ranante si pour tout i∈ {1, ..., k}, Fi ∈ Fn,i et Fi contient Fi+1
7.3 Graphes orientés eulériens
Dénition 7.8 Un graphe orienté connexe D est eulérien si il contient un circuit qui contient tous les arcs deD.
Théorème 7.5 Un graphe orienté fortement connexeDest eulérien si et seulement si pour tout sommet x de D, on a degext(x) =degint(x)
7.4 graphes orientés hamiltoniens
Dénition 7.9 Un graphe orienté connexeDest hamiltonien si il contient un circuit élémentaire qui contient tous les sommets deD.
Dénition 7.10 On appelle tournoi un graphe complet orienté. Dans un tournoi, deux sommets sont reliés par un arc et un seul.
a
c b
a
c b
Les deux tournois ci-dessus sont obtenus en orientant K3 de deux façons diérentes.
Pourquoi appelle-t-on ces graphes orientés des tournois ?
On imagine un ensemble d'équipes ou de joueurs dans une compétition où chaque joueur aronte tout autre joueur exactement une fois. Le seul résultat possible est la victoire ou la
défaite. On peut alors considérer un graphe dont les sommets sont les joueurs et un arc relie le joueuriau joueur j siia battu j lors de leur confrontation directe. On obtient un tournoi.
On a vu qu'un graphe non orienté complet est hamiltonien. Que peut-on dire des tournois ? Remarque 3 Un graphe hamiltonien est fortement connexe.
Le théorème suivant que l'on admettra implique qu'un tournoi fortement connexe est hamil- tonien.
Théorème 7.6 (théorème de Moon) Si D est un tournoi fortement connexe à n sommets, où n ≥ 3, alors pour tout k ∈ {3, ..., n}, et pour tout sommet v de D il existe un circuit de longueurk qui contient v.
Preuve : Admis.
On va démontrer le résultat suivant qui concerne tous les tournois.
Dénition 7.11 Soit D un graphe orienté.
Un chemin deD est un chemin hamiltonien si c'est un chemin élémentaire qui contient tous les sommets deG.
Théorème 7.7 (Rédei) Un tournoi contient un chemin Hamiltonien.
7.5 Matrices d'adjacence d'un graphe orienté
Dénition 7.12 Soit D un graphe orienté avecn sommets étiquetés 1,2,...,n.
La matrice d'adjacence A(D) = (aij) de D est la matrice n×n dans laquelle le coecient aij est égal au nombre d'arcs allant du sommeti au sommet j.
Cette matrice n'est pas symétrique en général. Si le graphe n'a pas de boucles, les coecients diagonaux sont nuls. La somme des coecients de la ligneiést égal au degré extérieur (somme des arcs sortant) du sommet i. La somme des coecients de la colonne j ést égal au degré intérieur (somme des arcs entrant) du sommeti.
Considérons le graphe orienté suivant :
1 2
4 3
Sa matrice d'adjacence est :
0 1 0 1 0 1 0 2 0 1 0 0 0 0 1 0
Théorème 7.8 SoitD un graphe orienté avec n sommets étiquetés 1,2,...,n. Soit A la matrice d'adjacence de D et soit k∈N∗. Alors le nombre de chemins de longueur k allant du sommeti au sommetj est égal au coecient de la ligne i et de la colonne j de la matriceAk (puissance k-ième deA).
Théorème 7.9 SoitD un graphe orienté avec nsommets étiquetés 1,2,...,n. SoitA sa matrice d'adjacence. On poseB =A+A2+...+An−1.
Alors,D est fortement connexe ssi tous les coecients non diagonaux deB sont strictement positifs.
Théorème 7.10 1) SoitAla matrice d'adjacence d'un graphe orienté D.D est sans circuit ssi la matrice A est nilpotente.
2) Soit Ala matrice d'adjacence d'un graphe non orienté ayant au moins une arête, alors, A n'est pas nilpotente.
7.6 Classer les participants d'un tournoi
Comment classer les participants d'un tournoi (de tennis, de cartes, d'échec, principe de Google : classement des pages web). On a vu qu'on pouvait représenter les résultats d'un tournoi par un graphe orienté que l'on appelle tournoi (graphe complet orienté).
1 2
6 3
5 4
La matrice d'adjacence de ce tournoi est A=
0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0
Une des façons d'aborder le problème serait de les classer suivant un chemin hamiltonien, mais ce n'est pas ecace, car il y a, en général, plusieurs chemins hamiltoniens dans un tournoi (dans notre exemple : (312456) et (146325) sont des chemins hamiltoniens). Une autre approche serait de calculer les scores (nombres de parties remportées par un participant) et de les comparer, voici le vecteur des scores qui correspond à notre exemple :s1 = (4,3,3,2,2,1).
On ne peut pas diérencier les joueurs 2 et 3. On considère alors un vecteur s2 qui a pour i-ème coordonnée la somme des scores des joueurs battus par le joueuri:s2 = (8 = 3 + 2 + 2 + 1,5,9,3,4,3).
Le joueur 3 est alors classé premier. Si on continue cette procédure, on obtient les vecteurs de scores suivants :
s3= (15 = 5 + 3 + 4 + 3,10,16,7,12,9) s4= (38,28,32,21,25,16)
s5= (90,62,87,41,48,32) s6= (183,121,193,80,119,87)
En fait, on peut remarquer que l'on asn+1=Asn, pourn= 2, ...,6
Le classement des joueurs uctue un peu : le joueur 3 rivalise avec le 1 pour la 1ère place. Nous allons voir que cette procédure converge vers un classement xe quand le tournoi est fortement convexe et a au moins 4 sommets.
Dénition 7.13 Dans un graphe orienté, la longueur du plus court chemin entre deux sommets u et v est appelée la distance deu à v (s'il n'y a pas de chemins entreu etv, d(u, v) = +∞).
Le diamètre d'un graphe orienté Dest la distance maximale entre deux sommets de D. Remarque 4 Si D est un graphe orienté fortement connexe, le diamètre de D est inférieur ou égal àn−1.
Proposition 7.11 Soit D un tournoi fortement connexe qui a n≥ 5 sommets numérotés de 1 à n et soit A sa matrice d'adjacence. Alors, si on note d le diamètre de D, la matrice Ad+3 a tous ses coecients strictement positifs.
Dénition 7.14 Une matriceAcarrée à coecients réels est dite primitive, s'il existe un entier k >0 tel que tous les coecients deAk soient strictement positifs.
La proposition précédente montre donc que si D est un tournoi fortement connexe àn ≥5 sommets, alors, sa matrice d'adjacence est primitive. C'est encore vrai siDa 4 sommets (car à isomorphisme près, il n'existe qu'un seul tournoi à 4 sommets qui soit fortement connexe).
Remarque 5 Lei-ème vecteur score d'un tournoiD de matrice d'adjacenceA est donné par la formule :
si =Ai
1...
1
Théorème 7.12 (Perron-Frobenius) Si A est une matrice primitive, alors la valeur propre deA qui a le plus grand module est un nombre réel positif r et
limn→+∞ (A
r )n
1...
1
=s
où s est un vecteur propre de A associé à la valeur propre r et dont les coecients dont tous positifs.
Ainsi, si D est un tournoi fortement connexe qui a 4 sommets ou plus, un vecteur propre associé à la valeur propre r, peut être utilisé pour classer les participants du tournoi modélisé parD.
Dans l'exemple précédent, on obtient :
r = 2,232, et s = (0,238; 0,164; 0,231; 0,113; 0,150; 0,104), et on obtient le classement : 1,3,2,5,4,6.
Si le tournoi n'est pas fortement connexe, c'est plus compliqué.
C'est sur ce principe que marche Google pour le classement des pages web.
8 Calcul de distances
8.1 Plus courte distance
Dénition 8.1 On appelle distance entre deux sommets d'un graphe (resp. graphe orienté) connexe la longueur minimale d'une chaîne (resp. d'un chemin) de ce graphe admettant ces
deux sommets comme extrémités. La distance entre deux sommets x et y d'un graphe G sera notéed(x, y).
On appelle diamètre d'un graphe la valeur de la plus grande distance séparant deux de ses sommets.
On étend la notion de distance entre sommets d'un graphe (resp. graphe orienté) non né- cessairement connexe (resp ; fortement connexe) : deux sommets qui ne sont pas dans la même composante connexe (resp. fortement connexe) sont à une distance innie l'un de l'autre.
L'algorithme suivant permet de calculer la distance à partir d'un sommet xéa. Algorithme 1 Donnée : un graphe G= (V, E) et un sommeta deG.
Résultat : une fonction dtelle que pour tout sommet x de G, on ait d(x) =d(x, a). Initialisation : Pour tout sommet x de G, faired(x) =∞,
d(a) = 0,
Tant que : il existe des sommetst non marqués tels que d(t) ≠=∞ Faire
parmi les sommets non marqués, choisir un sommetx qui minimised Pour tout voisiny dex vériant d(y) =∞ faired(y) =d(x) + 1 marquer le sommetx
Fin de tant que.
Retourner la fonction d.
8.2 Distances sur un graphe valué
Dénition 8.2 Un graphe est dit valué (ou pondéré) lorsqu'on attribue à chaque arête e du graphe une valeurv(e)∈N.
On appelle valuation d'une chaîne C la somme des valuations de chacune de ses arêtes.
On appelle distance entre deux sommets d'un graphe valué, la valuation minimum d'une chaîne du graphe ayant ces deux sommets comme extrémités, soit :
dv(x, y) =min{v(C)|C est une chaîne deG d'extrémitésx ety}
L'algorithme de Dijkstra calcule les distances à un sommet xé a des autres sommets d'un grapheGvalué.
Algorithme 2 (Dijkstra) Donnée : un graphe G= (V, E) dont les arêtes sont valuées par une fonctionv, et un sommet ade G.
Résultat : une fonction dtelle que pour tout sommet x de G, on ait d(x) =dv(a, x). Initialisation : Pour tout sommet x deG faire d(x) =∞,
d(a) = 0
Tant que : il reste des sommets tnon marqués tels que d(t)̸=∞ faire parmi les sommets non marqués choisir un sommetx qui minimised Pour tout voisin non marqué y du sommet x, faire
d(y) :=min(d(y), d(x) +v({x, y}))
marquer x Fin tant que
Retourner d
Remarque 6 l'algorithme de Dijkstra s'applique aussi à un graphe orienté, Il sut de remplacer voisin par successeur dans l'algorithme.