0% ont trouvé ce document utile (0 vote)
145 vues14 pages

Cours TG1

Ce document introduit les notions de base sur les graphes. Il définit ce qu'est un graphe, ses composants principaux comme les sommets et les arcs, et présente des concepts clés tels que la connexité, les chemins et les circuits. Le document décrit également des représentations de graphes comme les matrices et listes d'adjacence.

Transféré par

Loukman Belmahnouf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
145 vues14 pages

Cours TG1

Ce document introduit les notions de base sur les graphes. Il définit ce qu'est un graphe, ses composants principaux comme les sommets et les arcs, et présente des concepts clés tels que la connexité, les chemins et les circuits. Le document décrit également des représentations de graphes comme les matrices et listes d'adjacence.

Transféré par

Loukman Belmahnouf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

Chapitre 1 : Notions de base sur les graphe

1. Introduction
Un petit dessin vaut mieux qu’un grand discours,
Napoléon.

Pour résoudre de nombreux problèmes concrets, on est amené à tracer sur le


papier des petits dessins qui représentent (partiellement) le problème à résoudre. Bien
souvent, ces petits dessins se composent de points et de lignes continues reliant deux à
deux certains de ces points. On appellera ces petits dessins des graphes, les points des
sommets et les lignes des arcs ou arêtes, selon que la relation binaire sous-jacente est
orientée ou non.

2. Notions de base

Définition 1. Un graphe G est défini par : un ensemble S appelé ensemble des


sommets {x1,x2,x3,...} un sous-ensemble A du produit cartésien S×S appelé
ensemble d’arcs (ou arêtes) A = {(x,y) ∈ S ×S / le sommet x est en relation avec le
sommet y}. On note G = (S,A).

Remarques.
- Si S est un ensemble fini, alors le graphe G est dit fini.
- Un sommet est isolé lorsqu’aucune arête ne le relie aux autres sommets
Définition 2. On appelle ordre d’un graphe fini le nombre de ses sommets.
On note : n=|S|
Définition 3. On appelle taille d’un graphe fini le nombre de ses arêtes.
On note : m=|A|

Notation 1. Un arc u = (x,y) est noté x → y , x est appelée origine ou extrémité


initiale y est appelée destination ou extrémité finale. On parle alors de graphe
orienté (GO).

Notation 2. Lorsque le sens de parcours n’a pas de signification on dit que le graphe
est non orienté (GNO). u = (x,y) est alors appelée une arête, notée x – y

1
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

Exemple.

G=(S,A)
S={a,b,c,d,e,f,g}
A={(a,b),(a,c)},(a,e),(b,c),(b,f),
(c,d),(d,g),(g,f),(f,b),(f,d),(e,f)

Définition 4. Successeur et prédécesseur d’un sommet


 On note Γ+ l’application :
Γ+ : S → S
x → Γ+(x) = {y ∈ S /(x,y) ∈ A}
où Γ+(x) représente l’ensemble des successeurs de x.
 On note Γ− l’application :
Γ− : S → S
x → Γ−(x) = {y ∈ S /(y,x) ∈ A}
où Γ−(x) représente l’ensemble des prédécesseurs de x.
Remarque Un graphe G = (S,A) est entièrement déterminé par chacun des couples
(S,Γ+) et (S,Γ−).

Définition 5. Incidence et adjacence


Soit u = (x,y) une arête.
 On dit que u est incidente à x (et à y). Soit u = (x,y) un arc. On dit que u est
incident à x vers l’extérieur et incident à y vers l’intérieur.
 On dit que les sommets x et y sont adjacents à l’arc ou arête u.

Définition 6. Degré d’un sommet et degré d’un graphe


 On appelle demi degré intérieur d’un sommet x (degré sortant), et on note
d−(x), le nombre d’arcs incidents à x vers l’intérieur.
 On appelle demi degré extérieur d’un sommet x (degré entrant), et on note
d+(x), le nombre d’arcs incidents à x vers l’extérieur.
 Le degré d’un sommet x est égal à d(x) = d−(x) + d+(x). (Pour un graphe non
orienté, le degré d’un sommet est le nombre d’arêtes qui lui sont incidentes.)
 Le degré d’un graphe est le degré maximum de tous ses sommets.

2
Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

Propriété. Soit G un graphe, S l’ensemble de ses sommets et A le nombre d’arêtes de


G. Alors la somme des degrés vérifie :

3. Chemin, chaîne, circuit et cycle

 Un chemin est une suite d’arcs dont l’extrémité finale de chacun est l’extrémité
initiale du suivant (sauf pour le dernier). Exemple : a → b → c → d → g
 Si le graphe n’est pas orienté, on parle alors de chaîne.
 Un chemin simple est un chemin qui ne passe pas plus d’une fois par le même
arc.
 Un chemin élémentaire est un chemin qui ne passe pas plus d’une fois par le
même sommet.
 La longueur d’un chemin est le nombre d’arcs qui constituent le chemin.
 Un circuit est un chemin qui se ferme sur lui-même (son origine et son
extrémité sont confondues).
 Si le graphe n’est pas orienté, on parle alors de cycle.
 Un chemin (resp. circuit) hamiltonien est un chemin (resp. circuit) qui passe
par tous les sommets du graphe une fois et une seule.
 Un chemin (resp. circuit) eulérien est un chemin (resp. circuit) qui passe par
tous les arcs du graphe une fois et une seule.
 On appelle distance entre deux sommets la longueur de la plus petite chaîne les
reliant.
 On appelle diamètre d’un graphe la plus longue des distances entre deux
sommets.
 Une chaîne dont les sommets de départ et de fin sont les mêmes est appelée
chaîne fermée.

4. Connexité et forte connexité

Définitions :
 Un graphe est dit connexe s’il existe une chaîne entre toutes paires de sommets du
graphe. (Si le graphe est orienté, cette notion s’évalue sur le graphe non orienté qui
s’en déduit naturellement.)

3
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

 Si le graphe n’est pas connexe on peut identifier plusieurs sous-graphes connexes


maximaux (au sens de l’inclusion) appelés composantes connexes. Chaque
composante connexe est une classe d’équivalence pour la relation xRy ⇔ ―il existe
une chaîne entre x et y‖.
 Un graphe orienté est dit fortement connexe si pour toute paire de sommets (x,y)
il existe un chemin de x vers y ET de y vers x. Si le graphe n’est pas fortement
connexe on peut identifier plusieurs sous-graphes fortement connexes maximaux
appelés composantes fortement connexes. Chaque composante fortement connexe
est une classe d’équivalence pour la relation xRy ⇔ ―il existe un chemin de x vers y
ET de y vers x‖.
 Un graphe est « k-connexe » si on peut le déconnecter en retirant k sommets et
qu’on ne peut pas en en supprimant k – 1 ; son « degré de connexité » est alors k.

5. Matrice d’adjacence et listes d’adjacence :

Définition 1. (matrice d’adjacence) Soient E = {x1;x2;...;xp}, F = {y1;y2;...;yn} et


R = (E,F,U) une relation alors on appelle matrice d’adjacence de R la matrice

booléenne MR telle que MR = (mi,j) avec mi,j={

Exemple.

4
Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

Définition 2. (listes d’adjacence) Soit G = (S,A) un graphe orienté d’ordre n et de


taille m dont les sommets x1;x2;...xn sont ordonnés. Le graphe G peut être représenté par
des listes d’adjacence (LS,TS) qui sont définies par :
 LS = liste de longueur m appelée ≪ liste des successeurs ≫, elle contient les
successeurs du sommet 1 (rangé dans l’ordre croissant) puis du sommet 2 ...et si
un sommet n’a pas de successeur on passe au sommet suivant.
 TS = liste de longueur n+1 appelée ≪ liste des têtes successeurs ≫ qui indique la
position du premier successeur de chaque sommet dans LS la liste TS est définie
comme suit :
 TS(1) = 1
 pour x ∈ S — si x à des successeurs alors TS(x) = numéro de la case de LS du
premier successeur de x — sinon TS(x) = T

Les listes d’adjacences occupent une place mémoire de taille n + m + 1 c’est le minimum
d’informations pour représenter un graphe comparé à la matrice d’adjacence occupe
une place n2 et la liste des arcs occupe une place 2m.

Définition3. Fermeture transitive


On appelle fermeture transitive d’un sommet x l’ensemble des sommets y (y
compris x) reliés par un chemin à x.
On appelle fermeture transitive d’un graphe G le graphe Ĝ construit de la
manière suivante :
 Les sommets de Ĝ sont ceux de G
 Chaque sommet de Ĝ porte une boucle
 Il y a dans Ĝ un arc de x vers y ssi il existe un chemin entre x et y dans G

5
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

Remarque La matrice M^ associée à Ĝ est donnée par : M^ = M^[k] = M(0) + M(1) + ...
+ M(k) (on s’arrête quand M^[k] = M^[k+1] , M(0) = Id)

Définition4. Fermeture transitive et composante fortement connexe


Proposition Deux sommets xi et xj appartiennent à la même composante fortement
connexe si et seulement si les lignes (ou les colonnes) i et j de M^ sont identiques.
Remarque Un graphe G est fortement connexe si et seulement si tous les éléments de
la matrice M^ sont égaux à 1.

6. Types de graphe

Def1. (Graphe simple) Un graphe est dit simple si : il n’y a pas de boucle (u = (x,x)) il
n’y a pas plus d’un arc (ou pas plus d’une arête) pour relier deux sommets.
Un graphe simple G = (S,A) est dit nul si S et A sont vides.
un graphe simple G est dit trivial si il admet un seul sommet et aucune arête, on le note
par T1. On appelle graphe trivial d’ordre n le graphe admettant n sommets et aucune
arête, on le note par On ou Tn

Déf2. (graphe valué ou pondéré) Un graphe valué G = (S,A,ν) est un graphe (S,A)
(orienté ou non-orienté) muni d’une application ν : A → Le graphe peut être
représenté par la matrice des valuations : W ∈ Mn( ) telleque

Wi,j ={
( ) ∈
Pour un graphe valué on ajoutera les valuations sur chaque arc ou arête.

6
Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

On rencontrera dans les applications de la théorie des graphes plusieurs types de


valuations associées aux arcs d’un graphe : poids, longueur, coût, capacité,...

Déf3. (graphe complet) On appelle « graphe complet à n sommets », souvent noté


Kn, le graphe d’ordre n ayant le plus d’arcs/arêtes possibles.
Exemple.

 On appelle « tournoi » un graphe complet orienté. Une flèche peut alors


représenter la relation « a gagné sur ».
Quel est le nombre d’arêtes dans le cas d’un graphe complet Kn ?

Déf4. (sous-graphe et graphe partiel) Soit G = (S,A) un graphe (orienté ou pas)


alors

7
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

 un graphe partiel de G est un graphe G′ ayant pour sommets tous les sommets de G
et pour arcs/arêtes seulement un sous-ensemble de A, ce qui s’écrit : G′ = (S,A′)
avec A′ ⊂ A
 un sous-graphe de G est un graphe G′ ayant pour sommets un sous ensemble S′ des
sommets de G et en ne conservant que les arcs/arêtes joignant les sommets de S′ ce
qui s’écrit : G′ = (S′,A′) avec S′ ⊂ S et A′ = {(x,y) ∈ A|x ∈ S′ et y ∈ S′}
 Un sous-graphe H de G est dit graphe induit de G si les sommets de H qui sont
adjacents dans G ils le sont dans H.
Exemple. graphe partiel de G induit par A′ = A \ {(2,2);(3,2);(4,3)}

sous-graphe de G induit par S′ = {1;2;4}

Deux exemples importants de sous-graphe et de graphe partiel sont les cliques et les
stables :

Déf5. (clique et stable) Soit G = (S,A) un graphe (orienté ou pas) alors


• une clique est un sous-graphe complet de G
• un stable est un sous-graphe de G sans arcs/arêtes
La recherche du plus grand stable ou de la plus grande clique d’un graphe est un
problème très important en théorie des graphes
Exemple. Trouver le plus grand stable et la plus grande clique d’un graphe

8
Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

Dans la graphe G l’ensemble de sommets {1;5;7} induit une clique maximale alors que
{2;4;5} induit un stable maximal (il y en a d’autres).

Déf6. (graphe planaire) Un graphe G = (S,A) est dit planaire s’il existe un graphe
équivalent à ce graphe où aucun arc/arêtes n’en coupe d’autre.

Exemple. Rendre le graphe suivant planaire il faut déplacer les sommets 2 et 4

Est-ce encore possible si on ajoute l’arête {2;5} au graphe?


Un graphe ayant pour nombre chromatique γ(G) = 5 ne peut donc pas être planaire.
Mais attention, la réciproque de ce théorème est fausse : un graphe avec γ(G) = 4 n’est
pas forcément planaire!

Autres graphes :
Arbre. Ce sont des GNO connexes sans cycle (acyclique). Ou encore des GNO connexes
dont le nombre de sommets est égal au nombre d’arêtes plus 1.

9
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

Graphe biparti. Un ensemble I de sommets d’un graphe est « indépendant » si aucun


élément de I n’est connecté à un autre élément de I. Un graphe « biparti » est un graphe
qui représente des relations entre deux ensembles indépendants I et J. On définit de
même un graphe multiparti.

Hypergraphe. Quand les relations ne sont pas toutes binaires, on parle


d’hypergraphe; on peut alors le transformer en graphe biparti.

Graphe régulier Un graphe est dit régulier si tous les sommets ont le même degré.
Si le degré commun est k, alors on dit que le graphe est k-régulier.
Si r = 3 le graphe est dit cubique. Si G est régulier d’ordre n et deg(G) = n−1 alors le
graphe G est le graphe complet d’ordre n.

7. Etude de la connexité :

Trouver les composantes connexes d’un graphe est assez facile visuellement, mais
trouver les composantes fortement connexes est plus difficile. Les algorithmes suivants
permettent de construire les composantes connexes et fortement connexes dans
G=(S,A).

a. Construction de la composante simplement connexe de x


i) Marquer le sommet x *

10
Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

ii) Marquer tout sommet adjacent à un sommet déjà marqué.


Poursuivre (ii) jusqu’à ce que l’on ne puisse plus marquer aucun sommet. Alors
les sommets marqués sont ceux de la composante connexe de x.

b. Construction de la composante fortement connexe de x


i) Marquer + et – le sommet x
ii) Marquer + tout successeur (non encore marqué +) d’un sommet déjà
marqué +. Marquer - tout prédécesseur (non encore marqué -) d’un
sommet déjà marqué -.
Lorsque plus aucun sommet ne peut être marqué ni + ni -, les sommets marqués
à la fois + et – sont ceux de la composante fortement connexe de x.

Def1. Graphe k-connexe


Un graphe G est dit k-connexe si et seulement si G est connexe d’ordre n > k + 1 et il
n’existe pas d’ensemble X ⊂ S de cardinal k − 1 tel que le sous graphe engendré par S −
X n’est pas connexe. En d’autres termes, en supprimant moins de k sommets, le graphe
sera toujours connexe.

Def2. Graphe réduit


A tout graphe orienté G = (S,A) on associe le graphe simple GR = (SR,AR) appelé graphe
réduit de G défini comme suit : SR = {A chaque C.F.C Ci de G correspond un sommet Ci}
AR = {(Ci,Cj)/i ≠ j et ∃x ∈ Ci et ∃y ∈ Cj et (x,y) ∈ A}
Remarque. Un graphe fortement connexe possède une seule C.F.C. Le graphe réduit
d’un graphe ne possède pas de circuits.
Exemple. Voir cours

8. Décomposition d’un graphe en niveaux :

Une décomposition en niveaux (tri topologique) d’un graphe orienté sans circuit est
réalisée en organisant les sommets d’un graphe en k niveaux (couches ou layer) de la
manière suivante :
• Les sommets sans prédécesseurs sont de niveau 0
• tout sommet x a un niveau supérieur aux niveaux de ses prédécesseurs :
niveau(x) = max y∈Γ−(x)
niveau(y) + 1

11
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

On peut ensuite re-dessiner le graphe G en disposant les sommets de gauche à droite


dans l’ordre croissant des niveaux.
Pour décomposer en niveau un graphe G on utilisera l’algorithme suivant :
procedure DecompositionNiveaux
N←1
S` ← S
Tant que S` = ∅ do
Pour tout sommet x de S` sans prédécesseur faire
Niv(x) ← N
Fin pour
enlever de S` tous les sommets de niveau N
N ←N + 1
Fin tant que
fin procedure

Exemple. Voir cours et TD

9. Parcours de graphes orientés :

Le parcours d’un graphe est un problème type de théorie des graphes auquel peuvent se
ramener de nombreux autres problèmes d’algorithmique.

Déf1. (parcours d’un graphe) Soit G = (S,A) un graphe et x ∈ S un sommet, un


parcours du graphe G à partir de x est une visite de chaque sommet accessible depuis x.
Le résultat d’un parcours est un ensemble de chemins partants de x allant vers les
sommets accessibles depuis x. Un parcours peut être représenté par sous-graphe de G
qui est un arbre de racine x (ou une forêt si certains sommets de G ne sont pas
accessibles depuis x).
Déf2. (parcours en largeur) Soit G = (S,A) un graphe et x ∈ S un sommet, un
parcours en largeur du graphe G à partir de x est un parcours dans lequel un sommet y
est marqué avant le début de traitement de ses successeurs. Si on veut récupérer la liste
des prédécesseurs P qui permet de retrouver l’arbre de parcours en largeur depuis le
sommet x on utilisera l’algorithme suivant :

12
Université de JIJEL 2ème année licence Informatique-Module : TG 01/01/2021

Le parcours en largeur est très utile pour trouver les distances depuis un sommet donné
dans un graphe.

Théorème1. (parcours en largeur et distances) Soit G = (S,A) un graphe et x un


sommet, alors les niveaux des sommets dans le parcours en largeur depuis le sommet x
sont exactement les distances de x à ces sommets.

Déf3. (parcours en profondeur) Soit G = (S,A) un graphe et x ∈ S un sommet, un


parcours en profondeur du graphe G à partir de x est un parcours dans lequel un
sommet y n’est marqué qu’après le début du traitement de ses successeurs.
Comme pour le parcours en largeur on peut écrire précisément l’algorithme permettant
de récupérer l’arbre de parcours en profondeur :

Cet algorithme admet aussi une formulation récursive plus simple à programmer :

13
Université de JIJEL 2ème année licence Informatique-Module : TG 14/11/2019

Le parcours en profondeur ne permet pas de calculer les distances depuis un sommet!


Au contraire le parcours en profondeur essaye de construire les chemins les plus long
possibles depuis un sommet donné.
Le parcours en profondeur sert, entre autre, à classer les arcs en différentes catégories.

Déf4. (classification des arcs) le parcours en profondeur d’un graphe G depuis le


sommet x permet de définir quatre types d’arc :
 arcs couvrants : les arcs retenus pour le parcours en profondeur
 arcs directs : les arcs n’appartenant pas au parcours en profondeur mais reliant
un sommet à un descendant
 arcs rétrograde : les arcs n’appartenant pas au parcours en profondeur mais
reliant un sommet à un ascendant (ou à lui-même)
 arcs traversiers : les arcs n’appartenant pas au parcours en profondeur mais
reliant deux branches distinctes de l’arbre

Cette classification permet de détecter des circuits dans un graphe.

Théorème2. (détection des circuits) Dans un graphe G = (S,A) et x un sommet. Si


dans le parcours en profondeur de G à partir de x il existe un arc rétrographe alors il
existe au moins un circuit dans le graphe G.

14

Vous aimerez peut-être aussi