THÉORIE DES GRAPHES
Meriem Mejri
Polytech Intl
Chapitre 1
Définitions et concepts de base
Introduction
Problème ayant une écriture formelle compliqué
Graphe
La théorie des graphes dispose d’un certain nombres d’outils de modélisation
permettant de représenter simplement la structure, les connexions, les
cheminements possibles dans un système complexe en exprimant les
relations entre ses composantes
Exemple : réseau de communication, réseau routier ou ferroviaire, diagramme de
succession des tâches pour un projet, etc.
3
Graphes et chemins
4
Graphes et chemins
Graphes orientés
Un graphe orienté est un couple (S, A), où S est un ensemble fini non vide et A
une relation sur S. Un élément de S est appelé un sommet et un élément (un
couple) de A est appelé un arc. La composante a d’un arc (a, b) est dite
l’origine de l’arc et la composante b est dite la cible ou la destination de l’arc.
Un arc de la forme (a, a) s’appelle une boucle. Un sommet qui n’apparaît dans
aucun arc est dit isolé. Si (a, b) ∈ A, les sommets a et b sont dits adjacents.
G = (S, A)
Où
S = {a, b, c, d, e}
A = {(b, b), (b, c), (b, d), (c, e), (e, c), (e, d)}
Fig 1.1- Un graphe orienté G
5
Graphes et chemins
Graphes non orientés
Un graphe non orienté est un couple (S, A), où S est un ensemble fini non vide
et A un ensemble de couples non ordonnés d’éléments de S. Un élément de S
est appelé un sommet et un élément de A est appelé une arête. Une arête est
représentée par un ensemble de deux sommets. Un sommet qui n’apparaît
dans aucune arête est dit isolé. Si {a, b} ∈ A, les sommets a et b sont dits
adjacents.
G = (S, A)
Où
S = {a, b, c, d}
A = { {a, b}, {a, d}, {b, d}, {c, d} }
G’ = (S, A’)
Où
S = {a, b, c, d}
A’ = { (a, b), (b, a), (a, d), (d, a), (b, d), (d, b), (c, d), (d, c) }
Fig 1.2- Un graphe non orienté G et une représentation équivalente par un graphe orienté G’
6
Graphes et chemins
Degré d’un sommet ou d’un graphe
On dit que l’arête {a, b} et l’arc (a, b) sont incidents aux sommets a et b. Le
degré d’un sommet s, noté deg.s, est le nombre d’arêtes ou d’arcs dans
lesquels s apparaît (c’est-à-dire le nombre d’arêtes ou d’arcs incidents), les
boucles comptant pour 2. Le degré d’un graphe est le degré du sommet qui a
le degré le plus élevé.
Exemple :
deg.a = 0,deg.b = 4, deg.c = 3, deg.d = 2 , deg.e = 3 deg.G = 4
(le degré de tout sommet isolé, comme a, est 0).
Fig. 1.1
deg.a = 2,deg.b = 2, deg.c = 1, deg.d = 3 deg.G = 3
Fig. 1.2
7
Graphes et chemins
Degré d’un sommet ou d’un graphe (suite)
Puisque tout arc incident (de même pour les arêtes) contribue 2 aux degrés
des sommets, on obtient le théorème suivant.
Théorème 1 - La somme des degrés des sommets d’un graphe (orienté ou
non) est égal au double du nombre total d'arêtes.
Preuve : Chaque arête a deux extrémités elle est donc comptée deux fois
quand on somme les degrés de tous les sommets.
Propriété 1 - La somme des degrés de tous les sommets d’un graphe est un
nombre pair.
Propriété 2 : Dans un graphe (orienté ou non), le nombre de sommets de
degré impair est pair.
8
Graphes et chemins
Degré d’un sommet ou d’un graphe (suite)
Application
Est-il possible que chacun de ces 7 ordinateurs soit relie avec exactement
trois autres ordinateurs ?
Fig. 1.3
9
Graphes et chemins
Degré d’un sommet ou d’un graphe (suite)
Correction
Si chaque ordinateur est relié avec exactement trois autres ordinateurs alors
la somme des degrés des 7 sommets est 21 (7×3).
Or, d'après la propriété 1, la somme des degrés des sommets d'un graphe est
un nombre pair donc la situation est impossible.
Fig. 1.4
10
Graphes et chemins
Chemins
Un chemin dans un graphe orienté est une séquence (suite) de sommets et
d’arcs telle que
1. la séquence débute par un sommet et se termine par un sommet;
2. les sommets et les arcs alternent;
3. chaque arc est précédé par son sommet origine et est suivi par son
sommet cible ;
4. aucun arc n’apparaît plus d’une fois. Par exemple, dans la figure ci-contre,
(c,(c, e), e,(e, d), d)
et
(b,(b, c), c,(c, e), e(e, c), c)
sont des chemins, mais pas
(b,(b, c), c,(c, e), e(e, c), c,(c, e), e)
ni
(b,(b, c), c,(e, c), c).
11
Graphes et chemins
Chemins (Suite)
La longueur d’un chemin est le nombre d’arcs de ce chemin :
longueur de (c,(c, e), e) = 1 et longueur de (c) = 0 .
La description des chemins peut être simplifiée en donnant seulement la suite de
sommets, puisque les arcs peuvent être ajoutés à partir de la séquence de
sommets. Les séquences de sommets suivantes sont donc des chemins du
graphe ci-contre :
(b, c, e) (longueur 2)
(d) (longueur 0)
Un chemin pourrait aussi être décrit en donnant seulement la séquence d’arcs.
Un chemin simple est un chemin dans lequel aucun sommet n’apparaît plus
d’une fois, sauf que le premier et le dernier peuvent être les mêmes. Par exemple,
(b), (b, c, e, d), (c, e, c)
sont des chemins simples du graphe ci-dessus, mais pas (b, c, e, c).
12
Graphes et chemins
Chemins (Suite)
Un chemin est un cycle s’il contient au moins un arc et que le premier et le
dernier sommet du chemin sont identiques.
Remarque. Des définitions similaires peuvent être données pour les graphes
non orientés.
Un graphe non orienté est dit connexe s’il y a un chemin entre n’importe
quelle paire de sommets. Un graphe orienté est dit connexe si, en
transformant ses arcs en arêtes non orientées, on obtient un graphe non
orienté connexe.
Par exemple, le graphe de gauche ci-dessous n’est pas connexe, mais les deux
autres le sont.
13
Graphes et chemins
Chaîne – Cycle – Chemin – Circuit
Chaîne – Cycle Chemin – Circuit
• Une chaîne entre deux nœuds est • Un chemin est une chaîne dont
une séquence d’arêtes telle que les arcs sont orientés dans le
chaque arête de la séquence ait même sens.
une extrémité commune avec
l’arête suivante.
• Un cycle est une chaîne dont les • Un circuit est un chemin dont
extrémités coïncident. les extrémités coïncident.
14
Graphes et chemins
Chaîne – Cycle – Chemin – Circuit
Application
B
D
A
E
C
Le graphe représenté par les arcs (C,A), (C,E) et (E,D) représente une
chaîne reliant A et D
Le graphe représenté par les arcs (A,B), (B,C), (C,E) et (E,D) représente un
chemin reliant A et D
(C,B), (B,D), (E,D) et (C,E) constituent un cycle
(A,B), (B,C) et (C,A) constituent un circuit
15
Graphes et chemins
Graphe partiel et Sous-graphes
Pour un graphe G = (S, A)
Graphe partiel
Le graphe G' = (S, A’) est un graphe partiel de G, si A' ⊆ A.
Autrement dit, on obtient G' en enlevant une ou plusieurs arêtes au graphe G.
Sous-graphe
Le graphe G’ = (S’, A’) est un sous graphe de G, si S' ⊆ S et A' ⊆ A. L'ensemble
des arêtes A’ est formé de toutes les arêtes de G’ ayant leurs deux extrémités
dans S’. Autrement dit, on obtient G' en enlevant un ou plusieurs sommets au
graphe G, ainsi que toutes les arêtes incidentes à ces sommets.
Un graphe partiel d'un sous-graphe est un sous-graphe partiel de G.
On appelle clique un sous-graphe complet de G.
On appelle stable un sous-graphe de G sans arêtes.
16
Graphes et chemins
Graphe partiel et Sous-graphes
17
Représentation matricielle
des graphes
Les matrices sont l’une des structures de données utilisées
en informatique pour représenter les graphes et les
relations.
18
Représentation matricielle des graphes
Matrice d’incidence
La matrice d'incidence est une matrice n x p, où n est le nombre de sommets
du graphe et p est le nombre de liens (arêtes ou arcs).
Cette matrice est définie de deux façons différentes selon que le graphe est
orienté ou non orienté.
Si le graphe est non orienté, la matrice est appelée « matrice d'incidence
sommets-arêtes ».
Si le graphe est orienté, la matrice est appelée « matrice d'incidence
sommets-arcs ».
p
19
Représentation matricielle des graphes
Matrice d’incidence sommets-arêtes
Soit le graphe non orienté G = (S,A), n = Nombre de sommets, p = Nombre
d’arêtes
La matrice d’incidence sommets-arêtes : X=(xij) (i=1..n et j=1..p) est définie par :
chaque colonne correspond à un arête de G
Chaque ligne correspond à un sommet de G
X est à coefficients entiers 0 ou 1
◊ 1 si le sommet Si est une extrémité de l’arête Aj
◊ 2 si l'arête Aj est une boucle sur le sommet Si
◊ 0 sinon
20
Représentation matricielle des graphes
Matrice d’incidence sommets-arêtes
Application
Déterminer la matrice d’incidence pour le graphe non orienté suivant
21
Représentation matricielle des graphes
Matrice d’incidence sommets-arêtes
Correction
Le graphe possède 5 sommets et 6 arêtes, la matrice d'incidence
aura donc 5 lignes et 6 colonnes :
• le sommet 1 est l'aboutissement des arêtes 1 et 5
• le sommet 2 est l'aboutissement des arêtes 1, 2 et 6
• le sommet 3 est l'aboutissement des arêtes 2 et 3
• le sommet 4 est l'aboutissement des arêtes 3 et 4
• le sommet 5 est l'aboutissement des arêtes 4, 5 et 6
Ce qui donne la matrice d'incidence :
On remarque que chaque colonne a une somme égale à 2, puisque chaque arête a deux
extrémités.
22
Représentation matricielle des graphes
Matrice d’incidence sommets-arcs
Soit le graphe orienté G = (S,A), n = Nombre de sommets, p = Nombre d’arcs
La matrice d’incidence sommets-arcs : X=(xij) (i=1..n et j=1..p) est définie par :
chaque colonne correspond à un arc de G
Chaque ligne correspond à un sommet de G
X est à coefficients entiers 0 ou 1 ou –1
◊ -1 si l'arc Aj sort du sommet Si
◊ 1 si l'arc Aj entre dans le sommet Si
◊ 0 sinon
23
Représentation matricielle des graphes
Matrice d’incidence sommets-arcs
Application
Déterminer la matrice d’incidence pour le graphe orienté suivant
24
Représentation matricielle des graphes
Matrice d’incidence sommets-arcs
Correction
Le graphe possède 5 sommets et 6 arcs, la matrice d'incidence aura donc
5 lignes et 6 colonnes :
• le sommet 1 est l'aboutissement des arcs 1 (qui sort) et 5 (qui entre)
• le sommet 2 est l'aboutissement des arcs 1 (qui entre), 2 (qui sort)
et 6 (qui entre)
• le sommet 3 est l'aboutissement des arcs 2 (qui entre) et 3 (qui sort)
• le sommet 4 est l'aboutissement des arcs 3 (qui entre) et 4 (qui sort)
• le sommet 5 est l'aboutissement des arcs 4 (qui entre), 5 (qui sort) et 6 (qui sort)
Ce qui donne la matrice d'incidence :
On remarque que chaque colonne a une somme nulle, puisqu'un arc sort forcément d'un
sommet pour entrer dans un autre, même s'il s'agit du même sommet (cas d'une boucle).
25
Représentation matricielle des graphes
Matrice d’adjacence
Soit le graphe G = (S, A), où n est le nombre de sommets du graphe
La matrice d’adjacence est une matrice n x n
La matrice d’adjacence sommets-sommets: X=(xij) (i=1..n et j=1..n) est définie
par:
chaque colonne correspond à un sommet de G
Chaque ligne correspond à un sommet de G
X est à coefficients entiers 0 ou 1
◊ 1 s’il existe un arc xij entre les sommets i et j
◊ 0 sinon
26
Représentation matricielle des graphes
Matrice d’adjacence
Application
Fig. 1.1
Pour un graphe non orienté, cette matrice est symétrique.
Fig. 1.2
27
Représentation matricielle des graphes
Représentation matricielle des graphes
Exercice
Déterminer les différentes matrices associées à ce graphe
u1
A B
u2 u4
u3
C D
u5
28
Représentation matricielle des graphes
Représentation matricielle des graphes
Correction
La matrice d’incidence sommet – arc est donnée par :
1 1 0 0 0
1 0 1 1 0
0 0 0 1 1
0 1 1 0 1
La matrice d’incidence sommet – arrête (je suppose que c’est un graphe non orienté ) est
donnée par : 1 1 0 0 0
1 0 1 1 0
0 0 0 1 1
0 1 1 0 1
La matrice d’adjacence sommet – sommet est donnée par :
0 1 0 1
0 0 1 1
0 0 0 0
0 0 1 0
29
Opérations sur les graphes et les
matrices
30
Représentation matricielle des graphes
Opérations sur les graphes et les matrices
Nous allons définir cinque opérations sur les graphes et sur les matrices
d’adjacence de ces graphes. Ce sont des opérations qui s’appliquent aussi aux
relations.
Soient les graphes orientés G = (S, A) , G1 = (S, A1) et G2 = (S, A2) .
A des fins d’illustration, nous utiliserons les deux graphes qui suivent :
Leurs matrices sont:
31
Représentation matricielle des graphes
Union
G1 ∪ G2 = (S, A1) ∪ (S, A2) = (S, A1 ∪ A2)
M1 ∪ M2 est définie par (M1 ∪ M2)[i, j] = M1[i, j] ∨ M2[i, j]
C’est-à-dire que l’union des matrices est obtenue en faisant la disjonction des
entrées correspondantes. Notez que l’opérateur ensembliste ∪ est surchargé
pour pouvoir l’appliquer non seulement à des ensembles, mais aussi à des
graphes et à des matrices.
32
Représentation matricielle des graphes
Intersection
G1 ∩ G2 = (S, A1) ∩ (S, A2) = (S, A1 ∩ A2)
M1 ∩ M2 est définie par (M1 ∩ M2)[i, j] = M1[i, j] ∧ M2[i, j]
C’est-à-dire que l’union des matrices est obtenue en faisant la conjonction des
entrées correspondantes.
33
Représentation matricielle des graphes
Complément
∼G = ∼(S, A) = (S, ∼A)
∼M est défini par (∼M)[i, j] = ¬(M[i, j])
C’est-à-dire que le complément d’une matrice est obtenu en faisant la
négation des entrées.
34
Représentation matricielle des graphes
Inverse (Transposé)
G−1 = (S, A) −1 = (S, A−1)
M−1 est défini par (M−1 )[i, j] = M[j,i]
C’est-à-dire que l’inverse d’une matrice est obtenu en transposant la matrice.
35
Représentation matricielle des graphes
Produit
G1 ◦ G2 = (S, A1) ◦ (S, A2) = (S, A1 ◦ A2)
M1 ◦ M2 est défini par (M1 ◦ M2)[i, j] = (∨k |: M1[i, k] ∧ M2[k, j])
Le produit des matrices est obtenu en faisant une opération similaire au
produit matriciel en algèbre linéaire, en remplaçant + par ∨ et · par ∧.
Rappelons que le produit de matrices en algèbre linéaire est défini par
(M1M2)[i, j] = ( #k |: M1[i, k] · M2[k, j]) .
Par exemple, l’entrée [1, 2] vient de (1 ∧ 0) ∨ (1 ∧ 1) ∨ (1 ∧ 0) ∨ (0 ∧ 1) = 1.
36
Classes de graphes
particulières
37
Classes de graphes particulières
Graphes complets
Un graphe complet à n sommets, noté Kn, est un graphe non orienté
sans boucle tel qu’il y a une arête entre chaque paire de sommets
distincts.
38
Classes de graphes particulières
Graphes bipartites
Un graphe bipartite (ou biparti) est un graphe non orienté tel que
l’ensemble des sommets peut être partitionné en deux sous-
ensembles disjoints X et Y tels que chaque arête du graphe a la forme
{x, y}, avec x ∈ X et y ∈ Y .
39
Isomorphisme
40
Isomorphisme
Isomorphisme
Deux graphes (S, A) et (S’’, A’’) sont dits isomorphes (ce qui signifie avoir la
même forme) ssi il existe une application bijective f: S → S’’
telle que (∀ v, w |: (v, w) ∈ A ≡ (f.v, f.w) ∈ A’’) dans le cas des graphes orientés,
et (∀ v, w |: {v, w} ∈ A ≡ {f.v, f.w} ∈ A" ) dans le cas des graphes non orientés.
41
Graphe eulérien
42
Graphe eulérien
Graphe eulérien
Un des plus anciens problèmes de théorie des graphes,
le problème des sept ponts de Königsberg (qui s'appelle
aujourd'hui Kaliningrad), consiste à essayer de traverser
les sept ponts de la ville une et une seule fois, en
partant et en revenant au même endroit.
Ce problème peut être modélisé facilement
par un graphe, où chaque sommet
correspond à une région, et chaque arête à
un pont, comme présenté sur la figure.
En 1736, le mathématicien Leonhard Euler caractérisa de façon très précise les
graphes pour lesquels il existe un cycle passant une et une seule fois par chaque
arête, c'est pourquoi on donna son nom à ce type de graphe.
43
Graphe eulérien
Graphe eulérien
Un parcours eulérien ou chemin eulérien, ou encore une chaine
eulérienne d'un graphe est un chemin qui passe par toutes les arêtes, une fois
par arête.
Si un tel chemin revient au sommet de départ, on parle de circuit
eulérien ou cycle eulérien, ou encore tournée eulérienne.
Un graphe qui admet un circuit eulérien est dit eulérien. S'il admet
un parcours eulérien, il est dit semi-eulérien.
a a
b c
b c
d-c-b-e-d-b-a-c-e d a-b-d-f-e-d-c-a
e f
d e
Graphe semi-eulérien Graphe eulérien
44
Graphe eulérien
Graphe eulérien
Théorème de Euler :
Un graphe est eulérien si et seulement si tous ses sommets sont de degré pair
et toutes ses arêtes sont connexe.
Un graphe est semi-eulérien si et seulement si tous ses sommets sauf deux
sont de degré pair et toutes ses arêtes sont connexe.
1
2 1 1 2
6
2 5 3
3
4
4
5 3 4 5
Graphe non connexe
Graphe eulérien Graphe semi-eulérien
Graphe non eulérien
45
Graphe Hamiltonien
46
Graphe Hamiltonien
Graphe Hamiltonien
En 1857, le mathématicien irlandais Sir William Rowan Hamilton inventa un
jeu mathématique, appelé « tour du monde » . Le jeu se présentait sous la
forme d'un dodécaèdre de bois, c'est-à-dire un polyèdre à 12 faces en forme
de pentagone régulier, comme dans la figure ci-dessous. Les 20 sommets de
ce dodécaèdre portaient les noms des différentes villes du monde. Le jeu
consistait à partir d'une ville quelconque et à voyager le long des arêtes du
dodécaèdre de manière à passer une fois seulement par les 19 autres villes,
puis de revenir au point de départ.
En hommage à Hamilton, de tels graphes portent son nom.
47
Graphe Hamiltonien
Graphe Hamiltonien
Un chemin hamiltonien est un chemin dans le graphe qui passe par tous les
sommets une et une seule fois.
Si ce chemin est fermé (i.e. il existe une arête reliant le sommet de départ au
sommet d'arrivée), on parlera de cycle hamiltonien.
Un graphe est dit hamiltonien s'il possède un cycle hamiltonien.
Un graphe est dit semi-hamiltonien s'il ne possède que des chaînes
hamiltonienne.
Graphe semi-hamiltonien Graphe hamiltonien
chemin Hamiltonien: 1-2-4-3 circuit Hamiltonien: 0-1-2-3-4-0
48
Graphe Hamiltonien
Graphe Hamiltonien
Contrairement aux graphes eulériens, il n’existe pas de caractérisation simple des
graphes hamiltoniens ou semi-hamiltoniens. On peut cependant énoncer
quelques propriétés et conditions suffisantes.
1. Un graphe possédant un sommet de degré 1 ne peut être hamiltonien.
2. Si un sommet dans un graphe est de degré 2, alors les deux arêtes incidentes à
ce sommet doivent faire partie du cycle hamiltonien.
3. Les graphes complets sont Hamiltoniens
4. Théorème (Ore) Soit G = (S, A) 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.
5. Théorème (Dirac) Soit G = (S, A) un graphe simple d’ordre n 3 . Si pour tout
sommet x de G, on a d ( x) n , alors G est hamiltonien.
2
En effet, un tel graphe vérifie les conditions du théorème précédent, si x et y ne
sont pas adjacents, on a bien : d ( x) d ( y ) n n n
2 2
49
Graphe Hamiltonien
Graphe Hamiltonien
Exemple
G1 n’est pas hamiltonien, car il possède un sommet de degré 1.
G2 est hamiltonien : a-b-c-d-e-a est un cycle hamiltonien.
(La condition du théorème de Dirac n’est pas nécessaire : G2 est d’ordre 5, et
5
d (a) 2 ). La réciproque des théorèmes précédents n’est pas toujours vraie.
2
50
Graphe
Graphe Hamiltonien - Graphe eulérien
Application
Dessinez un graphe d’ordre 5 qui est :
1. hamiltonien et eulérien
2. hamiltonien et non eulérien
3. non hamiltonien et eulérien
4. non hamiltonien et non eulérien
51
Graphe
Graphe Hamiltonien - Graphe eulérien
Correction
1. hamiltonien et eulérien 2. hamiltonien et non eulérien
1 1
2 3
2 3
4 5 4 5
3. non hamiltonien et eulérien 4. non hamiltonien et non eulérien
1 2 3 1
2 5
4 5
3 4
52