Académique Documents
Professionnel Documents
Culture Documents
Chapitre 4 :
GRAPHES ET RESEAUX
Rive nord
île 1
11 île 2
11
Rive sud
s1
s2
s4
s3
Les habitants se demandaient s’il était possible, en partant d’un quartier quelconque de la
ville, de traverser tous les ponts sans passer deux fois par le même et de revenir à leur point de
départ.
L’idée d’Euler était très simple et marqua le début de la théorie des graphes. Tout d’abord, il
remplaça la carte du village par le diagramme de figure 2.2 . Sur ce graphe les sommets s1 et
s3 représentent les deux rives de la rivière, les sommets s2 et s4 représentent les deux îles, et
les sept arêtes reliant ces sommets correspondent aux sept ponts.
Euler a donc démontré que la réponse à cette question est négative.
Dés lors la théorie des graphes s’est alors développée dans diverses disciplines telle que la
chimie, la biologie, les sciences sociales…
-1-
Un graphe permet de représenter la structure, les connections d’un ensemble complexe en
exprimant les relations entre ses éléments : réseau de communication, réseaux routiers,
circuits électriques…
Les graphes permettent donc de modéliser une grande variété de problèmes en se ramenant à
l’étude de sommets et d’arcs. Les derniers travaux en théorie des graphes sont souvent
effectués par des informaticiens, du fait de l’importance qu’y revêt l’aspect algorithmique.
s1 u S2
figure 2.1 : Diagramme sagittal
si
Application multivoque
sj est successeur de si si ( s i , s j ) U , l’ensemble des successeurs de si est noté ( s i ) . (si est
prédécesseur de s j , 1 ( s j ) l’ensemble des prédécesseurs de s j ) :
: S
P( S )
s i ( s i ) S
Exemple 1 :
s1 s4
s5
s2 s3
Figure 2.2 :
Remarques 1:
- G peut être parfaitement déterminé par S , .
- On peut également définir une fonction telle que ( s i ) représente l’ensemble des
arcs sortant de s i et réciproquement pour ( s i ) les arcs entrants.
Remarque :
Dans le cas non orienté, au lieu de noter G =(S,U) et u=( e i,ej) on préfère souvent G=(S,E) et
e=[ si,sj ] .
Un multigraphe G=(S,E) (ou G=(S,U)) est un graphe pour lequel il peut exister plusieurs
arêtes entre deux sommets.
Un graphe est simple :
o S’il n’est pas multigraphe
o S’il n’existe pas de boucles.
-3-
s2
s2
s1
s1
On appelle p-graphe, un multigraphe dont le nombre maximum d’arcs liant deux sommets ne
peut jamais excéder p.
Exemple 2 : Donner un exemple de chaque type de graphes suivants :
Lorsque p=1, le p-graphe devient un 1-graphe, les arcs de U étant tous distincts, U devient un
ensemble de cardinal m.
adjacence et incidence
Définitions :
o Deux sommets distincts d’un graphe G=(S,U) sont dits adjacents si et seulement si ils
sont joints par un arc : Si si , s j S et s i , s j U alors si est adjacent à s j .
o Deux arcs distincts d’un graphe sont dits adjacents si et seulement si ils ont au moins
une extrémité commune.
Un arc u= si , s j U d’un graphe G S, U est dit incident à si vers l’extérieur et incident à
s j vers l’intérieur.
Dans un graphe G, le nombre d’arcs incidents à un sommet s vers l’extérieur, noté d G (s) ,
Le degré d’un sommet s d’un graphe G, noté d G (s) , est défini comme le nombre total d’arcs
Le degré d’un sommet d’un graphe non orienté est le nombre d’arêtes qui lui sont
incidentes.
Dans le cas d’un 1-graphe, on peut tout aussi bien définir le degré d’un sommet à
l’aide de l’application multivoque puisque :
Autres terminologies :
o Graphe complémentaire :
G= S, U et G S , U , s i , s j U s i , s j U et s i , s j U s i , s j U , G est le
graphe complémentaire de G.
o Graphe partiel :
G= S, U et V U , G p S , V est un graphe partiel de G.
o Sous-graphe :
G= S, U et S ' S , G ' S ' , V est un sous-graphe de G, où V est la réstriction de la
fonction caractéristique de U à S’ :
V ( x, y ) /( x, y ) U ( S 'S ' )
o Sous-graphe partiel : combiner les deux
-5-
o Graphe réflexif : s i , s i U , s i S
o Graphe symétrique : s i , s j U s j , s i U
o Graphe asymétrique : s i , s j U s j , s i U
o Graphe antisymétrique : s i , s j U et s , s U s s
j i i j
o Graphe complet : s i , s j U s j , s i U
Notons qu’un graphe complet et antisymétrique s’appelle un tournoi, car il symbolise le
résultat d’un tournoi où chaque joueur est opposé une fois à chacun des autres joueurs.
Isomorphisme de graphes :
Deux graphes G= S, U et G S , U sont dit isomorphes si il existe une bijection f de U
dans U telle que (f(x),f(y)) est une arête de G si et seulement si (x,y) est une arête de G.
Exercice : Trouver les 11 graphes simples non isomorphes d’ordre 4.
Remarques :
Si G est non orienté alors A(G) est symétrique
Si g es simple, A(G) est une matrice booléens
Une consultation complète de A(G) occupe une place mémoire d’ordre n 2 , cette
représentation est coûteuse en mémoire.
Pour les graphes simples numérisés, on peut remplacer « 1 » par la valeur numérique
de l’arc.
Exemples 3.1:
0 1 0 0 0 0
1 0 2 1 0 1
s2 s3
0 2 1 1 0 0
s1 A(G )
0 1 1 0 0 1
0 0 0 0 0 0
0 1 0 1 0 0
s5 s4 s6
s1 0 2 1
A(G ) 0 0 1
s3 0 1 1
s2
Proposition 3.1 :
Deux graphes G et G’ sont isomorphes si et seulement si ils ont, à une permutation près, la
même matrice d’adjacence :
A(G ) P 1 A(G ' ) P P une matrice de permutation
-7-
On rencontre des classes de matrices TU assez fréquemment dans les cas où A est la matrice
d’incidence d’un graphe :
Soit G= S, U un graphe à n sommets et m arcs, on lui associe une matrice D(G) à n lignes
(correspondant aux sommets s1 , s 2 ,..., s n ) et m colonnes (associées aux arcs u1 , u 2 ,..., u m ) :
D(G ) (d ij ) ij avec
1 si le sommet s i est l ' extrémité ter min ale de u j
d ij 1 si le sommet s i est l ' extrémité initiale de u j
0
sin on
Exemple 3.2:
On obtient facilement :
s2
1 0 1
D(G ) 1 1 0
0 1 1
s1 s3
s2
3
5
s1 5 s4
1
2
s3
Les valuations des arcs sont les coûts de déplacement du sommet de départ vers le sommet
d’arrivée de l’arc. Le chemin le plus court de s1 vers s4 est défini comme le chemin dont la
somme des valuations des arcs parcourus est minimale. On peut le trouver à l’aide d’un
PLNE zéro-un de la façon suivante :
min 3 x12 x13 5 x 23 5 x 24 2 x 34
x12
1 1 0 0 0 1
1 0 x13 0
1 1 0 x
PLNE
0 1 1 0 1 23 0
x 24
0 0 0 1 1 1
x 34
x ij 0 ,1
A est une matrice TU.
Extremité finale
Place mémoire utilisée (n+1)+m
-9-
IV. COLORATION DES SOMMETS D’UN GRAPHE
Définition 4.1 :
Soit un graphe G= S, E un graphe non orienté. Un sous-ensemble X S est un ensemble
stable s’il ne comprend que des sommets non adjacents deux à deux : i, j X (i, j ) E .
Comme tout sous-ensemble d’un ensemble stable est un ensemble stable, il est naturel de
chercher le cardinal maximum d’un ensemble stable. Ce nombre, noté (G ) , est le nombre de
stabilité.
Définition 4.2 :
La coloration des sommets d’un graphe consiste en affectation de couleurs à tous les sommets
du graphe de telle sorte que deux sommets adjacents ne soient pas porteurs de la même
couleur.
Le nombre chromatique (G ) est défini comme le nombre minimum de couleurs distinctes
nécessaires à la coloration des sommets de G.
Un graphe G tel que (G ) k qui est colorable en k couleurs est dit k-chromatique. Une
k-coloration des sommets est une partition S1 , S 2 ,..., S k de l’ensemble des sommets en k
ensembles stables.
Cependant, le nombre d’ensembles stables maximaux sera souvent trop important pour que
cette procédure soit effectivement applicable.
Il est dès lors utile, en pratique, de recourir à des algorithmes de coloration heuristique mais
simple, qui mènent à une coloration des sommets non nécessairement minimale. L’algorithme
de W&P présenté ci-dessous en est un exemple. Cet algorithme est défini ici à partir d’une
matrice d’adjacence A(G). L’expression « colorier le ligne i de la couleur c k » est substituée à
« attribuer xi la couleur c k ».
k=1
N=A
A
Non
N=
- 11 -
optimale de (G ) . A défaut d’une valeur exacte, des bornes inférieures (G ) et supérieures
(G ) peuvent cependant être établies pour (G ) , aux quelles il peut être utile de comparer
k. Citons alors quelques bornes inférieures (G ) :
n
(G ) où d min est le degré minimum des sommets du graphe,
n d min
n
(G )
(G )
n2
(G )
n 2 2m
(G ) (G ) où le cardinal de plus grand clique de G
(un clique de G est un sous-graphe complet de G).
Exemple :
Colorons les sommets du graphe G présenté ci-dessous :
s1 s2 0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
1 1 0 1 0 0 0 1
s6 s3
0 0 1 0 1 0 0 1
A
0 1 0 1 0 1 0 0
1 0 0 0 1 0 0 0
1 1 0 0 0 0 0 0
s5 s4 s8 0 0 1 1 0 0 0 0
si s1 s2 s3 s4 s5 s6 s7 s8
d(si) 4 4 4 3 3 2 2 2
Un chemin est dit simple s’il ne comporte pas deux fois le même arc.
Un chemin est dit élémentaire s’il ne passe pas deux fois par le même sommet.
Un chemin est dit eulérien s’il emprunte une et une seule fois chaque arc du graphe.
Un chemin est dit hamiltonien s’il emprunte une et une seule fois chaque sommet du graphe.
Un chemin dont le sommet initial coïncide avec le sommet terminal s’appelle un circuit.
Tous les qualificatifs relatifs aux chemins s’appliquent aussi aux circuits.
- 13 -
Remarque 5.1 :
lorsqu’on travaille sur un graphe non orienté, on parle plutôt de chaîne au lieu de
chemin, et de cycle au lieu de circuit.
Lorsqu’on travaille avec un 1-graphe, on peut également décrire un chemin à l’aide
d’une séquence de sommets. Dans ce cas, une telle description est équivalente à une
séquence d’arcs.
Exemple 5.1 :
s1 s2 s1 s4
s3 s4 s5
s2 s3
Par rapport au graphe de la figure 5.1a, la séquence s1 , s 2 , s 5 est un chemin qui relie les
sommets s1 et s 5 . Ici, nous pouvons décrire ce chemin à l’aide d’une séquence de sommets
car nous avons affaires à 1-graphe. Ce chemin est à la fois simple et élémentaire. Par contre,
le chemin s1 , s 2 , s 2 , s 4 , s1 est simple mais non élémentaire, et il correspond à un circuit. Le
Par rapport au graphe de la figure 5.1b, la séquence [ u12 , u 21 , u11 , u13 , u 34 ] est un chemin qui
relie les sommets s1 et s 4 . Ce chemin est simple mais n’est pas élémentaire (il passe deux
circuit. Le chemin [ u13 , u 32 , u 21 , u11 , u12 , u 21 ] est aussi un circuit simple non élémentaire.
5.2. Connexité
Définitions 5.2 :
Une chaîne est l’équivalent d’un chemin mais pour un graphe non orienté. Une chaîne de
longueur q est une séquence u1 , u 2 ,..., u q d’arcs (ou d’arêtes) telle que chaque arc u i de la
séquence possède une extrémité en commun avec l’arc précédent, et l’autre extrémité en
commun avec l’arc suivant.
Un graphe G= S, U est dit (faiblement) connexe si et seulement si, pour toute paire de
sommets s i et s j , il existe une chaîne s i ,..., s j reliant ces deux sommets.
Un graphe G= S, U est dit fortement connexe si et seulement si, pour toute paire de
sommets s i et s j , il existe un chemin s i ,..., s j reliant ces deux sommets.
Une composante connexe d’un graphe G= S, U est définie comme une classe de la relation
d’équivalence ≡ dans SxS telle que : x≡y si et seulement si, x=y ou s’il existe une chaîne de x
à y. (i.e. : c’est un sous ensemble de sommets tels qu’il existe une chaîne entre deux sommets
quelconques.
Un graphe est connexe s’il comporte une composante connexe et une seule. Chaque
composante connexe est un graphe connexe.
Remarques :
Un graphe biparti est 2-colorable.
Un graphe biparti ne possède aucun cycle impair (i.e. à nombre impair d’arêtes).
Proposition 6.1 :
L’indice chromatique d’un graphe biparti est égal au maximum des degrés des sommets.
6.2. Couplage
Un couplage C d’un graphe G= S, U est un sous-ensemble d’arêtes deux à deux sans
extrémité commune. Un sommet s S est dit saturé dans un couplage C si s est l’extrémité
- 15 -
d’une des arêtes de C. un couplage est parfait si ses arêtes contiennent tous les sommets du
graphe (en d’autre termes, sature tous les sommets de S). un couplage parfait a un cardinal
maximal.
Application : un problème d’affectation désigne la recherche d’un couplage maximal dans
un graphe biparti.
s2 s3
s5
s4 s6 s10 s8
s7 s12 s11
s9
Figure 6.1 : Arborescence
allant du sommet s i au sommet s j (se que l’on peut prouver par récurrence sur k) :
s2
0 1 1 0 1
0 1 1 0 0
s1 s3 A(G ) 0 0 0 1 0
1 0 0 0 1
1 0 1 0 0
s5 s4
Figure 7.1 :
- 17 -
1 1 2 1 0 1 2 2 2 2 4 3 5 2 3
0 1 1 1 0 2
1 1 1 1 1 2 3 1 2
A 2 (G ) 1 0 0 0 1 A3 (G ) 1 1 2 0 1 A 4 (G ) 1 2 3 2 1
1 1 2 0 1
1 2 3 2 1 3 3 4 3 3
0 1 1 1 1 2 2 3 4 2 3
1 2 1 1
Dans un graphe de n sommets, les plus grands chemins élémentaires comportent, évidement,
s’il existent, n-1 arcs.
Dans le graphe de la figure 7.1 on a qu’un circuit hamiltonien s1 , s 2 , s 3 , s 4 , s 5 , s1 , alors
qu’on avait plusieurs chemins hamiltoniens.
on peut également calculer les puissances de A(G) en utilisant comme loi multiplicative le
produit logique, et comme loi additive la somme logique ; ainsi A ( k ) (G ) sera encore une
matrice booléenne.
Dans ces conditions, si a ( k ) ij 1 signifie qu’il existe au moins un chemin de longueur k entre
Le sommet s i et le sommet s j . Dans l’exemple choisi, on a le résultat suivant :
1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
0 1 1 1 0 1
1 1 1 1 1 1 1 1 1
A ( 2 ) (G ) 1 0 0 0 1 A (3) (G ) 1 1 1 0 1 A ( 4 ) (G ) 1 1 1 1 1
1 1 1 0 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1 1
1 1 1 1
0 0 1 0
s1 1 0 1 0
s3 A(G )
0 1 0 1
0 0 0 0
s2 s4
Figure 7.2 :
Exemple 7.1 :
Un exemple de graphe valué où les sommets pourraient représenter des villes et les arêtes les
routes reliant ces villes. La valeur associée à chaque arête correspondrait alors à la distance
entre deux villes le long d’une route donnée :
25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6
Figure 7.3 :
Définitions 7.4 :
Soit G= S , E , un graphe valué. On définit le poids de G, comme somme des poids de
chacun de ses arêtes (arcs) :
- 19 -
(a)
aE
Si G est connexe, on appelle arbre maximal (graphe partiel de G qui est un arbre) de poids
minimum, l’arbre maximal de G dont le poids est minimum.
Il existe plusieurs algorithmes pour trouver l’arbre maximal de poids minimum d’un graphe
valué. Nous en présentons un ici, l’algorithme dit de Kruskal.
7.3. Algorithme de Kruskal
soit G= S , E , un graphe connexe valué où S n . Alors, l’algorithme suivant nécessite
exactement n-1 étapes pour produire un arbre maximal de poids minimum de G. à l’étape k,
on définit l’ensemble E k formé de k arêtes distinctes de G :
E k a1 , a 2 ,..., a k
La définition suivante de l’algorithme de Kruskal est inductive.
Etape k=1 : soit l’arête a1 E dont la valeur ( a1 ) est minimum. On choisit alors E k a1
Etape k+1 : soit E k l’ensemble des arêtes obtenues à l’étape k. à l’étape k+1, il s’agit de
choisir l’arête a E \ E k dont la valeur (a) est minimum et qui n’engendre aucun cycle avec
E k 1 a1 , a 2 ,..., a k , a k 1
A la fin des n-1 étapes, le graphe G= S , E n 1 , est un arbre maximal de poids minimum.
Exemple 7.2 :
Appliquons l’algorithme de Kruskal sur l’exemple de la figure 7.3. la première étape consiste
à choisir l’arête dont le poids minimum. C’est l’arête s 6 , s 7 dont la valeur est 5 :
25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6
Figure 7.3a :
Ensuite, parmi les arêtes restantes, il s’agit d’en choisir une de poids minimum et qui
n’engendre aucun cycle. La deuxième arête s 6 , s 7 est de poids minimum mais engendre le
cycle s 6 , s 7 , s 6 ; on ne peut donc pas le choisir. Notre deuxième choix est donc l’arête
Figure 7.3b :
Ensuite on choisit l’arête s 2 , s 3 car c’est elle dont la valeur est maintenant minimum et elle
n’engendre aucun cycle. De même, on choisit par la suite l’arête s 5 , s 6 . On obtient le graphe
suivant :
25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6
Figure 7.3c :
A cette étape, on voudrait maintenant choisir l’arête s1 , s 3 , mais celle-ci engendrerait le
donc être rejetée. On choisit donc l’arête s 2 , s 5 qui nous donne le graphe suivant :
- 21 -
25
s4
s1 11 12
s7
7 s3
8 28 16
s2 17 5 7
s5
9 s6
Figure 7.3d :
A ce graphe, on ne peut plus ajouter aucune arête sans créer de cycle. En vertu de l’algorithme
de Kruskal, on peut donc affirmer que ce graphe (celui en trait plein) correspond à un arbre
maximal de poids minimum. La somme des valeurs des ses arêtes égale à
5+7+8+9+12+17=48