CH 1
CH 1
1.1 Introduction
La notion de graphes et les problèmes liés aux graphes peuvent être rencontrés dans différentes
situations de la vie réelle ainsi que dans des problèmes d’ingénierie notamment en informatique.
Les graphes représentent, d’abord, un moyen de modélisation, ainsi qu’un moyen permettant de
raisonner sur de nombreux problèmes.
Les graphes permettent de modéliser des entités reliées par des liens. La disposition des entités et
surtout des liens (ce que l’on appelle la topologie du graphe) permet d’induire plusieurs propriétés
intéressantes. Pour illustrer cela, nous allons prendre quelques exemples introductifs.
Dans la vie courante, une personne est amie avec plusieurs personnes pouvant aussi être des
amis à d’autres personnes, et ainsi de suite. Dans les réseaux sociaux par exemple, ces relations
permettent d’établir des communautés et des règles s’appliquant au partage des données. Il est
intéressant de noter (et ceci peut être montré par la théorie des graphes) que dans n’importe
ensemble de groupes d’amis, il y a toujours au moins deux personnes ayant le même nombre
d’amis.
Un réseau routier est constitué d’un ensemble de villes reliées par des routes. La visualisation
d’un tel réseau est utile si l’on veut retrouver son chemin lorsqu’on est perdu, ou si l’on veut
trouver le plus court chemin entre deux villes. La théorie des graphes permet de construire
des chemins intéressants comme celui qui passe une seule fois par chaque ville ou celui qui
passe une seule fois par chaque route.
1
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Un réseau informatique est constitué d’un ensemble de machines (des ordinateurs, des hubs,
des switches, des routeurs, des répétiteurs, etc.) et des liaisons physiques (câbles métalliques,
fibres optiques, ondes radio, etc.). Un routeur permet d’acheminer un paquet vers la bonne
sortie afin que ce dernier puisse retrouver son chemin vers la destination. On est notamment
intéressée par connaître le chemin optimal dans le réseau (en termes de temps de transmission,
énergie utilisée, nombre de sauts, etc.) ainsi que le débit maximal du réseau, ce qui permet
d’éviter des situations agaçantes comme la congestion du réseau.
Ces exemples (et bien d’autres) illustrent la notion de graphes et leur intérêt dans le monde
réel. Nous allons alors donner une série de définitions et de propriétés des graphes permettant de
répondre à des questions de la vie réelle.
D’une manière informelle, on peut définir un graphe par une représentation figurative où l’on
retrouve un ensemble de points (appelés nœuds ou sommets) reliés par un ensemble de courbes droites
ou non. Ces liens représentent généralement une relation ou une dépendance entre les sommets. Ils
sont appelés des arêtes si la relation est symétrique (on parle de graphe non-orienté), ou des arcs
sinon (on parle de graphe orienté).
2
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Un graphe non-orienté est défini par une paire (X, E) où X est l’ensemble de sommets et E est
un ensemble d’arêtes (en d’autres termes, c’est un ensemble de liens entre les sommets de X). Un
lien est représenté par une paire (s, t) avec s, t ∈ X mais l’ordre n’est pas important ici. De plus, un
lien peut figurer plusieurs fois. Les sommets sont généralement nommés, mais on peut être ramené
à nommer les arêtes aussi. Une arête reliant un sommet à lui-même est appelée une boucle.
La figure 1.1 montre le schéma d’un graphe dont les sommets sont {a, b, c, d, e} et les arêtes sont
{A = (a, b), B = (a, c), C = (b, b), E = (c, d), F = (c, d), G = (d, e), H = (b, d)}. La figure 1.2 montre
un graphe dont les sommets sont {p, q, r, s} et les arêtes sont {U = (p, r), V = (p, q), X = (p, s), Y =
(q, s), Z = (r, s)}.
A H
G
a d e
E
B
F
c
p V q
U X Y
r s
Z
3
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Remarque : le dessin d’un graphe n’est pas caractéristique, plusieurs schémas géométriques
du même graphe peuvent être dessinés. Une arête peut être rectiligne ou une courbe. Si on
peut tracer un graphe sans que deux arêtes ne s’entrecoupent, alors on dit qu’il est planaire.
Si une arête A part d’un sommet x, on dit que A est incidente à x. Deux sommets reliés par une
arête sont dits adjacents. Lorsque deux arêtes ont un somment en commun, on dit aussi qu’elles sont
adjacentes. Dans la figure 1.1, les sommets a et b sont adjacents et les arrêtes A et B sont adjacentes.
Souvent, on associe une information à une arête, on l’appelle alors la valeur de l’arête (on peut
utiliser aussi le terme étiquette ou parfois le terme poids). Un graphe possédant des valeurs aux arêtes
est dit graphe valué.
Le nombre de sommets d’un graphe G est dit l’ordre du graphe, on le note par ordre(G). Le
nombre d’arêtes d’un graphe est dit la taille du graphe, on le note par taille(G).
Soit un sommet x d’un graphe G, on note par dG (x) le nombre d’arêtes incidentes à x et on
l’appelle le degré du sommet x. Le degré d’un graphe est égal au degré maximal des degrés de ses
sommets (noté d(G)).
Dans le graphe de la figure 1.3, l’ordre du graphe est 7. Les degrés des sommets sont donnés par
le tableau suivant :
Sommet a b c d e f g
Degré (dG (x)) 4 2 2 3 2 1 0
a b
f d e
Figure 1.3 : des exemples de types de sommets (g est isolé, et f est pendant)
Le degré de ce graphe est donc égal à 4 (le degré de a). Le sommet g est dit un sommet isolé
(son degré est 0), le sommet f est dit pendant (son degré est 1). Notons que la somme des degrés des
sommets est paire. Elle est même égale au double du nombre d’arêtes. Ceci n’est pas une propriété
spécifique de ce graphe, comme le laisse voir le théorème suivant :
4
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Théorème 1
P
Pour tout graphe G = (X, E), l’égalité s∈X d(s) = 2 × taille(G) est satisfaite. La somme des
degrés des sommets d’un graphe est alors toujours paire.
Proposition 1
Une application directe de ce théorème implique que le nombre de sommets ayant un degré
impair d’un graphe est pair.
Il existe des types particuliers de graphes selon la topologie des arêtes. Ces types peuvent avoir
des propriétés spécifiques. Le tableau suivant donne certains de ces types :
Multi-graphe
Graphe simple
Dans un graphe simple, il ne peut y avoir qu’un seul lien (au plus) entre deux sommets. De
plus, il n’y a pas de boucle. Un graphe simple possède la propriété suivante : il existe toujours
deux sommets ayant le même degré.
III Le graphe de la figure 1.2 est un graphe simple.
5
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Graphe complet
Un graphe simple est dit complet si chaque sommet est relié à tout autre sommet. Le graphe
complet contenant n sommets est noté Kn . La taille du graphe Kn est n(n − 1)/2. Il s’agit aussi
d’un graphe régulier (il est (n-1)-régulier).
Graphe biparti
Les sommets d’un graphe biparti peuvent être divisés en deux ensembles disjoints X et Y tels
que les arêtes relient un sommet de X à un sommet de Y (pas d’arêtes entre les sommets du
même ensemble).
Dans un graphe biparti, si tout sommet de X est relié à tout sommet de Y, on dit qu’il est
biparti complet, il est noté par Km,n où m est le nombre de sommets de X et n est le nombre
de sommets de Y. La taille du graphe Km,n est mn. Ce graphe ne peut être régulier que si
m = n.
Graphe connexe
Un graphe connexe est un graphe qui permet de partir de n’importe quel sommet pour re-
joindre n’importe quel autre sommet en suivant une ou plusieurs arêtes.
6
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Graphe non-connexe
C’est un graphe ayant au moins un sommet ne permettant pas de rejoindre au moins un autre
sommet.
Les graphes bipartis sont utilisés pour modéliser des problèmes d’affectation d’un ensemble de
sources à un ensemble de destination. Par exemple, le premier ensemble peut correspondre à des
tâches tandis que le deuxième peut correspondre à des ressources nécessaires pour effectuer les
tâches. Les arêtes décrivent alors les possibilités d’affectation.
Parmi les graphes possibles, certains ont des applications intéressantes. On présente alors dans
la suite certains d’entre eux.
L’appellation initiale des graphes vient du fait qu’on les dessine. Leurs propriétés géométriques
peuvent alors être utilisées pour modéliser des contraintes structurelles, notamment dans un espace
à deux dimensions. Un graphe planaire a la particularité d’être clair lorsqu’on le dessine. On entend
ici la propriété suivante : en le dessinant, on ne peut pas trouver deux arêtes s’entrecoupant hormis
aux sommets. Il est important de comprendre ce que l’on entend par dessiner les arêtes : le dessin
d’une arête peut se faire par n’importe quelle courbe continue, qu’elle soit rectiligne ou non.
Les graphes planaires ont plusieurs applications. Par exemple, on peut les utiliser pour concevoir
des circuits imprimés où les liaisons électriques ne doivent pas s’entrecouper. Pour les applications
informatiques, les graphes planaires sont plus simples à visualiser sur un écran. En évitant les
chevauchements des arêtes, ils évitent aux humains d’apercevoir de faux sommets.
Prenons un exemple : le graphe de la figure 1.4 est dessiné avec deux arêtes s’entrecoupent en un
point. On peut, cependant, le redessiner selon la figure 1.5 sans aucune intersection entre les arêtes.
Il s’agit donc d’un graphe planaire.
Dans un graphe planaire, on appelle face une région du plan limitée par les arêtes, telle que
deux points arbitraires peuvent être reliés par une arête ne rencontrant ni sommet ni arête. Dans la
figure 1.5, le graphe possède 4 faces : 3 de surface finie (A, B et C) et une de surface infinie (D). Les
frontières d’une face sont l’ensemble des arêtes qui l’entourent. On définit le degré d’une face par le
7
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
nombre d’arêtes qui la limitent. Ainsi, dans le graphe de la figure 1.5, toutes les faces ont un degré
égal à trois.
C D
Théorème 2
La somme des degrés des faces d’un graphe planaire est égale au double de sa taille.
Théorème 3
(dit de planarité) Dans un graphe G, soient S l’ordre du graphe, A sa taille et R nombre de ses
faces. Si G est planaire alors S − A + R = 2.
8
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Une chaîne du sommet x0 vers le sommet xk dans un graphe G est une séquence de sommets x0 ,
x1 ,..., xk telle qu’il existe une arête entre les sommets xi−1 et xi pour tout i = 1..k. Les chaînes x0 ,
x1 ,..., xk et xk , xk−1 ,..., x1 , x0 (obtenue en inversant l’ordre des sommets de la chaîne) sont identiques.
Remarque : cette définition n’est pas très précise. En fait, elle est seulement valable pour les
graphes simples. Pour les multi-graphes, on doit également indiquer les arêtes par lesquelles
on passe d’un sommet à un autre.
9
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
longueur d’une chaîne par le nombre d’arêtes qui la composent. La longueur de la chaîne b, a, d, f
est 3. La distance entre deux sommets et égale à la longueur minimale des chaînes qui les relient. Par
exemple, la distance entre b et d est de 2. Enfin, on appelle diamètre d’un graphe la distance maximale
entre deux sommets quelconques (comparez cela avec le diamètre d’un disque). Le diamètre du
graphe considéré ici est alors de 3.
Les longueurs et les cycles nous donnent un théorème intéressant caractérisant les graphes bi-
partis. Il permet par exemple de montrer que le graphe de la figure 1.7 n’est pas biparti.
Théorème 4
Un graphe est biparti si et seulement s’il ne contient aucun cycle de longueur impaire.
a b
f d e
Dans un graphe G, on appelle cycle eulérien un cycle passant une seule fois par toutes les arêtes
du graphe. Le graphe est alors dit eulérien. On peut définir un graphe eulérien par un graphe que
l’on peut tracer (c’est-à-dire tracer toutes ses arêtes) sans lever la main et sans passer deux fois par
la même arête. Attention, pour parler de cycle eulérien, il faut que le sommet de départ soit le même
que le sommet final (sinon, c’est une chaîne eulérienne seulement comme expliqué ci-bas).
Une chaîne est dite eulérienne si elle permet de passer une seule fois par toutes les arêtes du
graphe. Si un graphe non-eulérien possède une chaîne eulérienne, alors on dit qu’il est semi-eulérien.
L’appellation "eulérien" provient d’un problème célèbre concernant la ville dite à l’époque Königs-
berg (aujourd’hui Kaliningrad) et ses ponts. La carte des points de cette ville est donnée par la figure
1.8. Le graphe correspondant est donné par la figure 1.9. Le problème consiste à passer par chacun
des ponts de la ville une seule fois. Euler était le premier à résoudre ce problème.
Euler a même démontré un théorème donnant des critères nécessaires et suffisants pour qu’un
graphe soit eulérien.
10
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
A B
A B
Théorème 5
— Un graphe connexe admet une chaîne eulérienne si et seulement si tous ses sommets
sont de degré pair sauf éventuellement deux d’entre eux.
— Un graphe connexe admet un cycle eulérien si et seulement si tous ses sommets sont de
degré pair.
Ainsi, le graphe de la figure 1.9 n’est pas semi-eulérien car il possède trois sommets ayant des
degrés impairs (A a un degré de 3, C a un degré de 3 et D a un degré de 3). Évidemment, il ne peut
pas être eulérien.
Considérons maintenant le problème de l’enveloppe montré par la figure 1.10. Dans ce graphe,
les sommets (a, b et c) ont un degré pair, mais les sommets d et e ont un degré impair. En vertu du
théorème précédent, le graphe est semi-eulérien, mais il n’est pas eulérien. Une chaîne eulérienne
est alors : d, a, c, b, e, a, b, d, e.
La construction d’une chaîne eulérienne peut se faire selon plusieurs algorithmes, l’un d’eux est
l’algorithme de Fleury, qui nécessite bien sûr que le graphe soit au moins semi-eulérien.
11
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
a b
d e
Algorithme de Fleury
5 choisir le prochain sommet en fonction des arêtes incidentes non encore visitées. Si
l’on doit choisir entre un pont et un non-pont alors on choisit un non-pont. Un pont
est une arête telle que si elle est supprimée, certaines parties du graphe ne seront plus
accessibles. Lorsqu’une arête est sélectionnée, alors elle est enlevée du graphe.
6 s’arrêter lorsqu’il n’y a plus d’arêtes.
Pour décider si une arête est un pont ou non, on peut utiliser l’algorithme suivant :
12
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Dans un graphe G, on appelle cycle hamiltonien un cycle passant une seule fois par chacun des
sommets de G. Si un tel cycle existe, alors le graphe est dit hamiltonien.
Une chaîne est dite hamiltonienne si elle permet de passer une seule fois par chacun des sommets
du graphe. Si un graphe non-hamiltonien contient une chaîne hamiltonienne, alors on dit qu’il est
semi-hamiltonien.
Les graphes hamiltoniens possèdent beaucoup d’applications. On les retrouve notamment dans
le problème du voyageur de commerce où un commerçant doit visiter toutes les villes d’un certain
réseau une seule fois tout en minimisant le coût des déplacements.
Il n’existe pas de propriété simple pour un graphe semi-hamiltonien. Mais on peut déjà dire que :
— Un graphe possédant un sommet de degré 1 ne peut pas être hamiltonien
— Si, dans un graphe, un sommet est de degré 2, alors les deux arêtes ; incidentes à ce sommet
doivent faire partie du cycle hamiltonien ;
— Les graphes complets Kn sont hamiltoniens.
Il existe deux théorèmes (en fait un théorème et son application directe) permettant de définir
des conditions suffisantes (et pas nécessaires) d’un graphe hamiltonien.
Théorème 6
Soit G un graphe simple d’ordre n > 3. Si pour toute paire (x, y) de sommets non adjacents,
on a : d(x) + d(y) > n, alors G est hamiltonien.
On peut dériver une autre caractéristique (plus forte mais plus simple à vérifier) pour un graphe
hamiltonien : pour n > 3, si pour sommet x on a d(x) > n/2 alors le graphe est hamiltonien.
Si on applique cela au graphe de la figure 1.10, on aura le tableau suivant (en jaune, ce sont les
seuls cas où les sommets ne sont pas adjacents). Étant donné que l’ordre du graphe est 5, il est alors
hamiltonien.
Sommet a(d(a) = 4) b(d(b) = 4) c(d(c) = 2) d(d(d) = 3) e(d(e) = 3)
a
b
c d(c) + d(d) = 5 d(c) + d(e) = 5
d
e
Soit G = (X, E) un graphe. On appelle graphe partiel le graphe G 0 = (X, E 0 ) tel que E 0 ⊂ E. En
d’autres termes, on enlève quelques arêtes de E.
Soit A ⊂ X un ensemble de sommets. On appelle sous-graphe induit par A le graphe (A, E(A))
dont les sommets appartiennent à A, les arêtes sont celles de A ayant les deux extrémités en A.
13
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
On appelle clique, d’un graphe G, un sous-graphe complet de G. Parmi toutes les cliques, la clique
maximale (celle ayant le plus de sommets) possèdent des propriétés intéressantes pour certains
algorithmes notamment dans la coloration. La figure 1.11 donne un graphe avec ses cliques. Il existe
deux cliques ici, l’une (en jaune) a un ordre de 3, l’autre (maximale) est d’ordre 4.
Comme exemples des sous-graphes et graphes partiels, on considère la carte des villes et routes
en Algérie. Un sous-graphe serait une vue d’une région ou d’une wilaya avec toutes leurs routes.
Un graphe partiel peut correspondre à la vue des routes nationales uniquement.
À partir de la notion des sous-graphes, on peut aussi définir la notion des composantes connexes.
Une composante connexe est un sous-graphe qui est connexe et maximal (en termes d’ordre). Le
graphe utilisé pour définir la notion du "graphe non-connexe" (en section 1.2.3) possède deux com-
posantes connexes. Un graphe connexe contient une seule composante connexe.
Un stable d’un graphe est un ensemble de ses sommets n’ayant aucune arête entre eux (pris deux
à deux). Par exemple, pour un graphe biparti tel que les sommets d’un ensemble X sont reliés aux
sommets de l’ensemble Y, ces deux ensembles sont alors des stables. La cardinalité du plus grand
stable d’un graphe G est appelée le nombre de stabilité de G (et on le note α(G)). Le nombre de
stabilité du graphe de la figure 1.11 est de 3.
Plusieurs autres opérations peuvent définies en plus de celles définies précédemment. Chacune
a un intérêt particulier dans la théorie des graphes.
Graphe complémentaire
Soit G = (X, E) un graphe simple. Le graphe complémentaire de G est un graphe dont les
sommets sont X tel qu’une arête relie le sommet x et y s’ils n’étaient pas reliés dans le graphe
G. Intuitivement, si les arêtes représentent une relation entre les sommets, alors le graphe
complémentaire représente la négation de cette relation. La figure 1.12 donne le graphe com-
plémentaire de la figure 1.10.
14
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
a b
d e
Graphe dual
Le graphe dual est construit à partir d’un graphe planaire. En effet, lorsqu’on construit les
faces d’un graphe planaire, on considère chaque face comme un sommet du graphe dual, et
chaque arête frontière comme étant une arête du graphe dual. La figure 1.13 donne un graphe
et son dual (tracé en rouge). Si on applique la transformation encore une fois au dernier, on
obtient le premier graphe. La forme duale permet par exemple de passer de la notion d’un
cycle dans un graphe à la notion de cocycle en graphe dual.
A
Dual
−−−−−−−→
B
15
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Graphe adjoint
Le graphe adjoint s’obtient à partir de n’importe quel graphe en transformant les arêtes en
sommets et les sommets en arêtes. Lorsque deux arêtes partagent un sommet dans le premier
graphe, alors les deux arrêtes seront reliés par une arête dans le graphe adjoint. La figure 1.14
donne le graphe adjoint du graphe 1.2.
U V
X Y
Un graphe peut être représenté par d’autres moyens que la représentation schématique. En par-
ticulier, les représentations matricielles sont souvent utilisées pour définir un graphe ou même le
stocker sur un support informatique.
Pour tout graphe, on peut définir deux matrices : matrice d’adjacence et matrice d’incidence. La
matrice d’adjacence, celle qui est la plus utilisée, représente le voisinage des sommets, c’est une
matrice carrée. Pour un graphe d’ordre n, elle comporte alors n lignes et n colonnes. Soient i l’indice
du sommet x et j l’indice du sommet y. L’élément de la matrice d’adjacence à la ième ligne et la jème
colonne représentent le nombre d’arêtes reliant x à y. Une boucle est comptée deux fois.
La matrice d’adjacence d’un graphe non-orienté est, par conséquent, symétrique (ce qui pose
un problème de redondance de données en la stockant). Comme exemple, la matrice adjacence du
graphe de la figure 1.1 (en adoptant l’ordre des sommets : a, b, c, d, e) est :
a b c d e
a 0 1 1 0 0
b1 2 0 1 0
c1 0 0 2 0
d 0 1 2 0 1
e 0 0 0 1 0
Les matrices d’adjacence peuvent avoir des formes particulières pour certains graphes. Par exemple,
pour un graphe complet, la matrice d’adjacence ne contient que des 1. Pour un graphe biparti, la
matrice d’adjacence peut avoir une forme particulière lorsqu’on réarrange ses sommets (comment ?).
La matrice d’incidence permet de représenter à la fois les sommets et les arêtes. Les lignes cor-
16
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
respondent aux sommets et les colonnes aux arêtes. Si une arête est incidente à un sommet alors on
met 1 à la case correspondante. Dans le cas d’une boucle, on met 2. De manière générale, ce n’est
pas une matrice carrée. Pour la matrice précédente, la matrice d’incidence est :
A B C E F G H
a 1 1 0 0 0 0 0
b1 0 2 0 0 0 1
c0 1 0 1 1 0 0
d 0 0 0 1 1 1 1
e 0 0 0 0 0 1 0
Une autre représentation non-matricielle est également utilisée et est appelée les listes des adja-
cences (reposant sur la notion de pointeurs). Elles consistent à donner pour chaque sommet la liste
de sommets adjacents. Pour les matrices précédentes, elles sont (notons que l’on a répété d et c deux
fois car il s’agit d’un multi-graphe) :
La coloration des sommets d’un graphe simple consiste à donner une couleur (abstraite) à chaque
sommet d’un graphe de sorte que deux sommets adjacents ne puissent pas avoir la même couleur.
Une coloration d’un graphe en k couleurs est une partition des sommets en k stables.
Le terme coloration provient classiquement de la coloration d’une carte géographique. En effet,
si on considère une carte de plusieurs pays, le problème consiste à colorier chaque pays de sorte que
deux pays voisins ne puissent pas avoir la même couleur.
Ce problème a beaucoup d’applications en pratique. En effet, le terme couleur ici est abstrait,
c’est-à-dire qu’il désigne plutôt une information différente des autres. Par exemple, on peut utiliser
la coloration dans les problèmes d’élaboration des emplois de temps en affectant aux cours des salles
selon l’incompatibilité entre eux.
On appelle nombre chromatique d’un graphe G (noté δ(G)) le nombre minimal de couleurs néces-
saires à le colorier. De manière générale, il est très difficile de calculer ce nombre pour un graphe
quelconque. Mais on peut encadrer ce nombre dans certains cas. Commençons d’abord par un théo-
rème très intéressant caractérisant les graphes planaires.
17
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Théorème 7
(dit des quatre couleurs) Tout graphe planaire peut être coloré avec au plus quatre couleurs
(attention, un graphe colorable avec moins de cinq couleur n’est pas forcément planaire).
Si on applique cela au graphe de la figure 1.11 (selon les noms dans la figure 1.15 et les couleurs
rouge, jaune, vert, bleu), on trie d’abord les sommets et on applique l’algorithme (NA signifie non
affecté). On voit ici que l’algorithme a bien calculé le nombre chromatique du graphe (voir aussi la
figure 1.15).
Sommet b c e f d a g
Degré 4 4 4 4 2 1 1
Initialisation NA NA NA NA NA NA NA
Itération 1 Rouge NA NA NA NA Rouge Rouge
Itération 2 Rouge Jaune NA NA Jaune Rouge Rouge
Itération 3 Rouge Jaune Vert NA Jaune Rouge Rouge
Itération 4 Rouge Jaune Vert Bleu Jaune Rouge Rouge
18
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
b e
a c f
Les graphes orientés traduisent des relations asymétriques. Comme les graphes non-orientés, ils
se définissent sur un ensemble de sommets, mais les liens entre les sommets sont associés à une
direction.
Formellement, un graphe orienté ou encore un digraphe est une paire (X, E) où X est un ensemble
de sommets et E est un sous-ensemble du produit cartésiens X × X. Pour deux sommets adjacents
x et y, le lien (x, y) est appelé un arc de x vers y. Pour l’arc (x, y), x s’appelle l’extrémité initiale de
l’arc et y son extrémité finale.
19
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Toutes les notions définies pour les graphes non-orientés peuvent être transposées aux graphes
orientés à quelques différences près. Par exemple, un graphe orienté peut également être valué.
De manière générale, les graphes orientés sont dits des p-graphes, où p est le nombre maximal
d’arcs pouvant reliant deux sommets (ils ressemblent donc aux graphes multiples non-orientés).
Dans ce cours, on s’intéressera aux 1-graphes, c’est-à-dire ceux dans lesquels un seul arc au plus
relie deux sommets. Ceci exclut bien sûr les boucles. Pour faire simple, on utilisera l’expression
"graphe orienté" pour désigner un 1-graphe.
Dans un tournoi, les joueurs s’affrontent deux à deux. On a obtenu les résultats suivants :
— Le joueur A a battu B et D ;
— Le joueur B a battu C et D ;
— Le joueur C a battu A ;
— Le joueur D a battu C.
On peut représenter les résultats par le graphe de la figure 1.17.
A B
C D
Pour un graphe orienté G = (X, E), les prédécesseurs d’un sommet x est l’ensemble de sommets
tels qu’il existe des arcs qui les relient à x. On les note par Γ − (x) et sont formellement définis par
{y ∈ X|(y, x) ∈ E}. Pour le graphe de la figure 1.17, on a : Γ − (C) = {B, D} (ils représentent les joueurs
ayant battu C).
Les successeurs d’un sommet x sont l’ensemble de sommets Γ + (x) tels qu’il existe des arêtes
reliant x à chacun des sommets dans Γ + (x) (on a alors : Γ + (x) = {y ∈ X|(x, y) ∈ E}). Pour le graphe
considéré, on a : Γ + (C) = {A}.
Les voisins d’un sommet x sont l’union de ses prédécesseurs et ses successeurs : Γ (x) = Γ + (x) ∪
Ainsi, on a : Γ (C) = {A, B, D}.
Γ − (x).
Évidemment, un graphe orienté peut être caractérisé déjà par son ordre et sa taille. Chaque
sommet peut également être caractérisé par son degré mais nous avons besoin de différencier entre
les arcs entrants et les arcs sortants.
20
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Pour un sommet x, on appelle son demi-degré extérieur la cardinalité de Γ + (x), et on le note par :
d+ (x). Le demi-degré intérieur d’un sommet x est la cardinalité de Γ − (x), et on le note par d− (x).
Le degré de x (noté dG (x)) est donné par la somme de son demi-degré extérieur et son demi-degré
intérieur.
Pour le graphe de la figure 1.17, les différents degrés sont donnés par la table suivante :
Sommet A B C D Total
d+ (x) 2 2 1 1 6
d− (x) 1 1 2 2 6
dG (x) 3 3 3 3 12
Théorème 8
Ce qui fait que la somme des degrés d’un graphe orienté est toujours paire.
Étant donné qu’un arc possède une direction, on ne peut pas utiliser les notions de chaînes et de
cycles directement dans un graphe orienté.
Dans un graphe G = (X, E), un chemin entre deux sommets x et y (on n’utilise pas le terme
chaîne) est une suite de sommets x0 , x1 ,..., xk tels que x0 = x, xk = y et (xi−1 , xi ) ∈ E pour tout i. La
notion de la direction est importante ici car si x0 , x1 ,..., xk est un chemin, alors xk , xk−1 , ..., x0 n’est
pas forcément un chemin. La longueur du chemin ici est k. Dans la figure 1.17, le chemin A, B, C est
de longueur 2. Le chemin A a une longueur de 0.
Lorsque le début d’un chemin se coïncide avec sa fin (x0 = xk ), on dit que le chemin est un
circuit. Dans le graphe considéré ici, A, B, C, A est un circuit.
La notion de cocycle pour les graphes non-orientés correspond à la notion de cocircuit pour les
graphes orientés. Soit A un ensemble de sommets d’un graphe G = (X, E). On note par w+ (A)
l’ensemble d’arcs ayant leurs extrémités initiales dans A et leurs extrémités finales dans X − A. On
note aussi par w− (A) l’ensemble d’arcs ayant leurs extrémités initiales dans X − A et leurs extrémités
finales dans A. Le cocircuit de A (noté w(A)) est donné par : w(A) = w+ (A) ∪ w− (A). Ainsi, pour le
graphe considéré, si Z = {A, B} alors le cocircuit de Z est {(A, D), (B, C), (B, D), (C, A)}.
Un graphe orienté peut aussi être représenté par une matrice d’adjacence. Cette matrice carrée
21
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
a n lignes et n colonnes, tel que n est l’ordre du graphe ; les lignes et colonnes correspondent aux
sommets. S’il y a un arc entre le sommet x et le sommet y, alors on met 1 dans la case correspondante,
sinon 0. La matrice d’adjacence du graphe de la figure 1.17 est :
A B C D
A 0 1 0 1
B0 0 1 1
C 1 0 0 0
D 0 0 1 0
On peut donc voir que la matrice d’adjacence n’est pas, en général, symétrique. La matrice
d’incidence nécessite un peu de modifications lorsqu’on la construit car on a besoin de différencier
entre les arcs entrants et les arcs sortants. Pour un graphe donné, les lignes de la matrice d’incidence
correspondent aux sommets et les colonnes aux arcs. Pour un arc entrant à un sommet, on met 1, si
l’arc est sortant, on met -1.
1 2 3 4 5 6
A −1 0 0 1 −1 0
1 −1 0
B 0 0 −1
C 0 0 1 −1 0 1
D 0 1 −1 0 1 0
Les listes d’adjacences peuvent également être utilisées pour représenter un graphe orienté. On
fera, cependant, attention ici au fait que les listes d’adjacence font figurer les successeurs des som-
mets uniquement, et non tout le voisinage étant donné que cela créera une redondance de données
(en d’autres termes, on ne représente pas les prédécesseurs).
La matrice d’adjacence possède un avantage de taille par rapport aux autres représentations. En
effet, soit M la matrice d’adjacence d’un graphe, notons avant tout que cette matrice donne les arcs
entre les sommets. On peut donc considérer qu’elle représente les chemins de longueur 1. La matrice
M est carrée, 2 2
Pon peut alors calculer le produit matriciel M = M.M. L’élément ai,j de M est calculé
par : ai,j = k Mi,k Mk,j , ce qui signifie que l’on considère un chemin du sommet i vers le sommet
j passant par le sommet k. Étant donné que l’on fait la somme, on considère alors le nombre des
chemins de longueur 2 entre i et j. En généralisant, on obtient Mn = M.Mn−1 la matrice donnant le
nombre de chemins de longueur n d’un sommet à un autre.
Puissance de M Résultat Puissance de M Résultat
0 1 0 1 2 0 1 0
0 0 1 1 1 1 0 1
M
1 0 0
M3
0 0 0 2 1
0 0 1 0 0 1 0 1
0 0 2 1 1 2 0 2
1 0 1 0 0 1 2 2
M2
0 1 0
M4
1 2 0 1 0
1 0 0 0 0 0 2 1
22
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
Un graphe orienté modélise une relation binaire sur un ensemble de sommets. On peut alors
définir certaines propriétés des relations pour les graphes. Parmi ces propriétés, on nomme la tran-
sitivité qui signifie que si un élément x est en relation avec y et que celui-ci est relation avec z, alors
x est en relation avec z.
Un graphe transitif est un graphe ayant la propriété suivante : s’il y a un arc de x vers y, et un
arc entre y et z alors, il y a un arc entre x et z, comme on peut le voir ici :
y
x z
Pour tout graphe non-transitif G, on peut construire un graphe transitif G∗ appelé fermeture
transitive du graphe. L’idée est de rendre le graphe transitif : s’il y a un arc entre x et y, un arc entre
y et z et s’il n’y a pas d’arc entre x et z, alors rajouter cet arc.
La figure 1.18 donne un exemple d’un graphe non-transitif auquel on a rajouté les arcs en rouge
pour qu’il devienne transitif. Le graphe obtenu est donc appelé la fermeture transitive du premier
graphe (celui dont les arcs sont en noir).
Dans la fermeture transitive G∗ d’un graphe G, il y a une transition entre un sommet x et y si
et seulement s’il existe un chemin entre x et y dans le graphe G. La fermeture transitive permet
alors de rechercher des chemins entre des sommets d’un graphe (ce problème s’appelle problème
d’accessibilité et possède beaucoup d’applications).
b d
a c
Figure 1.18 : la fermeture transitive d’un graphe (les arcs rouges représentent la fermeture transitive
calculée)
Il existe plusieurs algorithmes pour la construction de la fermeture transitive. L’un d’eux est
basé sur la matrice adjacence. Soit M la matrice d’adjacence d’un graphe, on a déjà vu que cette
matrice représente le nombre de chemins de longueur 1 entre les sommets du graphe. En calculant
les différentes puissances Mi de la matrice, on calcule alors le nombre de chemins de longueur i
23
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
entre les sommets du graphe. Si le graphe est d’ordre n, alors les circuits peuvent avoir une longueur
maximale de n − 1. L’algorithme de construction est alors le suivant :
1 n = ordre(G)
2 M=matrice d’adjacence de G
3 calculer M∗ = M ⊕ M2 ⊕ ... ⊕ Mn−1 ( il s’agit d’une somme booléenne, c’est-à-dire que
u ⊕ v = 1 si u 6= 0 ou v 6= 0, sinon c’est 0)
M M2 M3 M4
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Cet algorithme n’est pas efficace car il nécessite n4 itérations. Un autre algorithme plus efficace
s’appelle algorithme de Warshall et nécessite n3 itérations seulement.
1 n = ordre(G)
2 M=matrice d’adjacence de G
3 R(0) = M
4 pour k = 1..n faire
5 pour i = 1..n faire
6 pour j = 1..n faire
k−1 k−1 k−1
7 Rk
(i,j) = R(i,j) ou R (i,k) et R (k,j)
8 M∗ = R(n)
24
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
R(4) R(5)
0 1 1 1 0 0 1 1 1 0
0 0 1 1 0 0 0 1 1 0
0 0 0 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 1 0
La notion de connexité s’applique aussi aux graphes orientés. La seule différence est que la
définition se repose sur la notion de chemins.
Un graphe est dit fortement connexe (attention, on ne dit pas connexe seulement) si pour toute
paire de sommets (x, y) il existe au moins chemin entre x et y. Depuis n’importe quel sommet, on
peut alors atteindre n’importe quel autre chemin.
Une composante fortement connexe est un sous-graphe qui est fortement connexe. Un graphe forte-
ment connexe contient une seule composante connexe égale à lui-même.
Si un graphe n’est pas fortement connexe, alors on peut être intéressé par trouver ses compo-
santes connexes. Ceci se fait par un algorithme dit de marquage.
1 k=0
2 choisir un sommet x et le marquer par (+) et (-), k = k + 1
3 marquer tous les successeurs directs et indirects de x par (+)
4 marquer tous les prédécesseurs directs et indirects par (-)
5 les sommets marqués avec (+) et (-) forment la composante connexe Ck
6 retirer tous les sommets de Ck , effacer toutes les marques et recommencer 2 tant qu’il
reste des sommets dans le graphe
25
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
1 2
5 4
6 3
Lorsqu’on termine de déterminer les composantes connexes, on peut construire ce que l’on ap-
pelle le graphe réduit : c’est un graphe dont les sommets sont les composantes connexes, lorsqu’il y a
un arc entre x ∈ Ci et y ∈ Cj (i 6= j) alors on trace un arc entre Ci et Cj . Pour le dernier exemple, le
graphe réduit est donné par la figure 1.20.
C1 C2
C3
Dans un graphe orienté connexe et sans circuit, l’ordonnancement des sommets consiste à or-
ganiser les sommets en niveaux tels que les arcs vont seulement d’un niveau inférieur à un niveau
supérieur (pas forcément successifs). En d’autres termes, l’ordonnancement d’un graphe G = (X, E)
ici consiste à définir une fonction f : X → N donnant le niveau ou ce que l’on appelle le rang de
chaque sommet. Ceci permet de tracer un graphe où tous les arcs partent dans le même sens.
L’ordonnancement utilise les prédécesseurs des sommets car les sommets de rang 1 n’ont pas de
prédécesseurs.
26
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
1 rang = 1
2 déterminer les sommets non classés dont l’ensemble des prédécesseurs est vide
3 leur affecter le niveau rang
4 rang = rang + 1
5 s’il existe encore des sommets non classés dans G, aller à 2
1 2
3 4
1 2
3 4
27
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
La recherche de circuits dans un graphe orienté possède plusieurs applications. Par exemple, si
le graphe représente des processus qui attendent d’autres processus, alors l’existence d’un circuit
indique la présence d’un interblocage.
La recherche de circuits peut se faire en utilisant l’algorithme de la fermeture transitive notam-
ment avec l’algorithme de Warshall (ou même la première méthode). Dans l’algorithme, si, à une
(k)
itération donnée, on trouve un k et i tel que R(i,i) = 1 alors le graphe contient un circuit. Mais cette
procédure ne permet pas de construire le circuit.
Dans l’algorithme de classement des sommets, si un graphe contient un circuit alors on trouvera
forcément une itération dans laquelle tous les sommets possèdent des prédécesseurs (rappelons que
le graphe est fortement connexe). Ceci bloque l’algorithme de classement, mais indique la présence
d’un circuit que l’on peut construire comme suit :
1 2
5 4
6 3
28
CHAPITRE 1. NOTIONS FONDAMENTALES EN THÉORIE DES GRAPHES
On choisit ainsi la chaîne : 3, 6, 5, 4 ,3 (le choix de 3 au début est arbitraire). Le circuit est alors :
3, 4, 5, 6, 3.
29