5 Coloriage des arêtes 6 Graphes planaires

Transcription

5 Coloriage des arêtes 6 Graphes planaires
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 incidentes e et f (qui ont une extrémité commune), c(e) ̸= c(f ).
On appelle indice chromatique de G le 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 simple G, 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ème N 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 cyclique Cn , pour n ≥ 3. Alors,
{
′
χ (Cn ) =
2 si n est pair,
3 si n est impair
Proposition 5.3 Pour le graphe complet Kn ,
{
′
χ (Kn ) =
n − 1 si n est pair,
n si n est impair
Théorème 5.4 (König, 1916) Soit G = (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) de G.
a
b
b
d
a
d
c
c
1
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 de G.
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
a et 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 face f , 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
degré au plus 5.
G un graphe planaire simple et connexe. Alors G contient un sommet de
Proposition 6.4 Le graphe complet Kn est planaire pour n ≤ 4 et non planaire pour n > 4.
Proposition 6.5 Le graphe biparti complet Kp,q est planaire pour p ≤ 2 ou q ≤ 2 et 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 de K5 ou de K3,3 (une subdivision du graphe simple G étant un
graphe simple obtenu à partir de G en 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 chromatique d'un graphe planaire simple est au plus 4.
2
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 de a et le sommet y est le but de a.
z
a
Exemple :
d
b
x
z
e
c
y
x
y
G
H
G est un graphe orienté : à l'arc a est associé le couple (x, z), etc..
H est le graphe non orienté associé à G, ie, le graphe obtenu en oubliant l'orientation des
arcs de G.
Lorque a est un arc de G associé à un couple de sommets (x, y), on dit que a va de x à y ,
que a sort de x et entre dans y , que a est 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 écrire a = (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 sommet x d'un graphe
orienté G est le nombre d'arcs entrant dans x, respectivement le nombre d'arcs sortant de x.
Théorème 7.1 (Lemme des poignées de mains) Dans un graphe orienté, la somme des degrés extérieurs et la somme des degrés intérieurs sont toutes deux égales au nombre d'arcs.
3
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 sommets xi , pour i = 0, ..., k, sont deux à deux distincts.
Un circuit est un chemin de longueur k ≥ 1 simple et fermé :
(x0 , a1 , x1 , a2 , ..., ak , x0 )
Un circuit est élémentaire si ses sommets, xi , pour i = 0, ..., k − 1 sont 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 graphe G est fortement connexe si il existe un chemin qui joint deux sommets quelconques
de G.
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 graphe G′ obtenu en supprimant e dans G n'est plus connexe.
e
b
a
c
d
f
Par exemple {c, d} est une arête de coupure du graphe ci-dessus.
Proposition 7.3 Soit G un graphe non orienté. Une arête e de G est une arête de coupure ssi
e n'appartient à aucun cycle élémentaire de G.
Application : Soit G un graphe simple non orienté connexe. On voudrait orienter les arêtes de
G de manière à obtenir un graphe orienté fortement connexe D. Il sut de remplacer les arêtes
de coupure de G par 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 communaux 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 à n sommets.
4
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 enracinés.
En particulier Fn,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 à n sommets.
On a alors |Fn,1 | = n × Tn , car dans chaque arbre étiqueté à n sommets, il y a n choix de
racine possibles.
2. Soit T un arbre étiqueté. On choisit une racine r de T , alors, pour tout sommet v de T , il
existe une unique chaîne élémentaire qui va de r à 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ée Fn,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êt F ′ si F 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 que F (faire un dessin).
Dénition 7.7 On appelle suite de forêts
Fi ∈ Fn,i et Fi contient Fi+1
F1 , ..., Fk suite ranante si pour tout i ∈ {1, ..., k},
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 de D.
Théorème 7.5 Un graphe orienté fortement connexe D est 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é connexe D est hamiltonien si il contient un circuit élémentaire
qui contient tous les sommets de D.
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
a
b
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
5
défaite. On peut alors considérer un graphe dont les sommets sont les joueurs et un arc relie le
joueur i au joueur j si i a 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 hamiltonien.
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
longueur k 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 de D est un chemin hamiltonien si c'est un chemin élémentaire qui contient tous
les sommets de G.
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é avec n 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 sommet i 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 ligne i é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 sommet i.
Considérons le graphe orienté suivant :
1
2
4
3
Sa
matrice
d'adjacence
est :


0 1
 0 1

 0 1
0 0
0
0
0
1
1
2 

0 
0
Théorème 7.8 Soit D 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 sommet i
au sommet j est égal au coecient de la ligne i et de la colonne j de la matrice Ak (puissance
k -ième de A).
6
Théorème 7.9 Soit D un graphe orienté avec n sommets étiquetés 1,2,...,n. Soit A sa matrice
d'adjacence. On pose B = A + A2 + ... + An−1 .
Alors, D est fortement connexe ssi tous les coecients non diagonaux de B sont strictement
positifs.
Théorème 7.10 1) Soit A la matrice d'adjacence d'un graphe orienté D. D est sans circuit ssi
la matrice A est nilpotente.
2) Soit A la 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
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
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 joueur i : 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
s4
s5
s6
= (15 = 5 + 3 + 4 + 3, 10, 16, 7, 12, 9)
= (38, 28, 32, 21, 25, 16)
= (90, 62, 87, 41, 48, 32)
= (183, 121, 193, 80, 119, 87)
En fait, on peut remarquer que l'on a sn+1 = Asn , pour n = 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.
7
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 de u à v (s'il n'y a pas de chemins entre u et v , d(u, v) = +∞).
Le diamètre d'un graphe orienté D est 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 matrice A carrée à coecients réels est dite primitive, s'il existe un entier
k > 0 tel que tous les coecients de Ak 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 si D a 4 sommets (car à
isomorphisme près, il n'existe qu'un seul tournoi à 4 sommets qui soit fortement connexe).
Remarque 5 Le i-ème vecteur score d'un tournoi D de matrice d'adjacence A est donné par la
formule :

1

 
si = Ai  ... 
1
Théorème 7.12 (Perron-Frobenius) Si
A est une matrice primitive, alors la valeur propre
de A qui a le plus grand module est un nombre réel positif r et

( )n
A

limn→+∞

r
1

..  = s
. 
1
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é
par D.
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
8
deux sommets comme extrémités. La distance entre deux sommets x et y d'un graphe G sera
notée d(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 sommet a de G.
Résultat : une fonction d telle que pour tout sommet x de G, on ait d(x) = d(x, a).
Initialisation : Pour tout sommet x de G, faire d(x) = ∞,
d(a) = 0,
Tant que : il existe des sommets t non marqués tels que d(t) ≠= ∞
Faire
parmi les sommets non marqués, choisir un sommet x qui minimise d
Pour tout voisin y de x vériant d(y) = ∞ faire d(y) = d(x) + 1
marquer le sommet x
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 valeur v(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 de G d'extrémités x et y}
L'algorithme de Dijkstra calcule les distances à un sommet xé a des autres sommets d'un
graphe G valué.
Algorithme 2 (Dijkstra) Donnée : un graphe G = (V, E) dont les arêtes sont valuées par une
fonction v , et un sommet a de G.
Résultat : une fonction d telle que pour tout sommet x de G, on ait d(x) = dv (a, x).
Initialisation : Pour tout sommet x de G faire d(x) = ∞,
d(a) = 0
Tant que : il reste des sommets t non marqués tels que d(t) ̸= ∞ faire
parmi les sommets non marqués choisir un sommet x qui minimise d
Pour tout voisin non marqué y du sommet x, faire
d(y) := min(d(y), d(x) + v({x, y}))
9
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.
10