Vous êtes sur la page 1sur 40

Introduction à

la théorie des
graphes
Introduction

Introduction

Eléments de cours

Algorithme de
coloriage

Algorithme de Kruskal

Algorithme des CFC

Applications
Introduction
Introduction

Qu’est ce qu’un
Graphe ?

Pourquoi la théorie des


graphes ?

A.A.A
Introduction
Eléments de
cours

Eléments de
cours

A.A.A
léments de cours
Eléments de
cours

Définition d’un
Graphes
Un graphe G est défini par :

• Un ensemble de sommets X.
• Un ensemble d’arêtes U.

On utilise alors la notation : G = (X, U)

Exemp
a
le
X = {a, b, c, d} u1 u2
U = {u1, u2, u3, u4} u3
b c
Avec : u1 = (a,b) u2 = (a,c)
u3 = (a,d) u4 = (b,d) u4
d
A.A.A
léments de cours
Eléments de
cours

Graphes Orientés

a d

c
b

Graphes Non a
Orientés

b c

d
A.A.A
léments de cours
Eléments de
cours

Ordre d’un Graphe

L’ordre du graphe G(X,U), noté |G|, est le nombre de


sommets du graphe.

On a alors : |G| = card(X)

a a
a

c c
b
b
d d

Graphe Graphe Graphe


d’ordre 4 d’ordre 3 d’ordre 2
A.A.A
léments de cours
Eléments de
cours

Graphe Simple

Un graphe G est dit simple, si et seulement s’il ne contient


ni boucle ni arêtes parallèles.

a a a

b c c c

d d d

Ce graphe n’est pas Ce graphe n’est pas Graphe


simple car il contient 2 simple car il simple
arêtes parallèles contient une boucle A.A.A
léments de cours
Eléments de
cours

Graphe
Complet
Un graphe G est dit complet si et seulement s’il est simple
et si chacun de ses sommets est lié à tous ses autres
sommets.

a a a

b c c c

d d d

Ce graphe n’est pas Ce graphe n’est pas Graphe


complet car les deux complet car il n’est complet
sommets b et c ne sont pas pas simple A.A.A
léments de cours
Eléments de
cours

Degré d’un
sommet
On appelle degré d’un sommet d(x), le nombre de liaisons
du sommet x.
d : X ---> N
x ----> d(x)

Exemp
le
e a
d(a) = 3

d(b) = 2

d(c) = 4
b d
d(d) = 1 , on dit que le sommet d est pendant

d(e) = 0 , on dit que le sommet e est isolé


c
A.A.A
léments de cours
Eléments de
cours

Degré positif et degré


négatif
Pour les graphes orientés, on définit les deux notions :

- degré positif d + (x) : nombre d’arcs sortants du


sommet x

- degré négatif d - (x) : nombre d’arcs entrants au


sommet x
Exemp
le
d + (a) = 0d - (a) = 2
 d(a) = 2
a
d + (b) = 1d - (b) = 1
 d(b) = 2
d + (c) = 3 d - (c) = 1 c
 d(c) = 4
b

A.A.A
léments de cours
Eléments de
cours

Graphe Régulier

Un graphe G est dit régulier si et seulement si tous ses


sommets ont le même degré.

Exemp
a
le

c
d(a) = d(b) = d(c) = 2
d  Graphe régulier

A.A.A
léments de cours
Eléments de
cours

Source / Puit

Un sommet x est dit source si d + (x) > 0 et d - (x) = 0

Un sommet x est dit puit si d - (x) > 0 et d + (x) = 0

A.A.A
léments de cours
Eléments de
cours

Notion d’adjacence

On dit que deux sommets x et y sont adjacents si x et y


sont liés par au moins un arc u.

On dit aussi que x et y sont deux extrémités terminales de


l’arc u.
b
a

Pour les graphes orientés on parle aussi d’extrémité


initiale et extrémité finale.

b
a

A.A.A
léments de cours
Eléments de
cours

Matrice d’adjacence / Graphes non


orientés
Matrice carrée
d’ordre n a b c d e a
a  0 1 0 1 1
 
b  1 0 1 2 1
A= c
 0 1 0 1 0
  b e
d 1 2 1 0 0
e
 1 10 0 0  d
 
 Matrice symétrique
c
∑ Aij = 2m – N
à

m étant le nombre d’arcs du graphe (y compris


les boucles) et N le nombre de boucles
A.A.A
léments de cours
Eléments de
cours

Matrice d’adjacence / Graphes non


orientés

• Matrice symétrique

• ∑ Aij = 2m – N

•La somme des nombres d’une même ligne (ou d’une même
colonne) donne le degré du sommet correspondant.

•Si le graphe est simple la matrice sera composée que par


des 0 et 1 et la diagonale ne contiendra que des zéros

A.A.A
léments de cours
Eléments de
cours

Matrice d’adjacence / Graphes


orientés

1 1 1 0 0
0 0 1 0 0
  a d
A = 0 1 0 1 0
 
1 0 0 1 1 c
1 0 0 1 0  b

Matrice non symétrique


e

• ∑ Aij = m
Avec m = card(U)

A.A.A
léments de cours
Eléments de
cours

Pondérati
on
Soit G = (X,U) un graphe a
On définit dans U l’application l : 2
9
13
l: U ---> R
u ----> l(u) : pondération
b c
12
10
d
 Selon la nature du problème, l(u) peut représenter une
longueur, un coût, un poids, …

A.A.A
Algorithme de
Coloration

Algorithme de
coloration

A.A.A
Algorithme de
Coloration Algorithme de
Coloration

Princip
e

Le principe est de colorier les sommets d’un graphe, de telle


façon à attribuer:

• Pour deux sommets adjacents deux couleurs différentes

• Un nombre de couleur minimal


Exempl
es
c

a b
a b

A.A.A
Algorithme de
Coloration Algorithme de
Coloration

Nombre
chromatique

Le nombre chromatique est le plus petit nombre de


couleurs nécessaires pour colorier le graphe.

èSi un graphe G contient un sous-graphe G’ complet d’ordre


p, alors son nombre chromatique est supérieur ou égal à p.
(G) >=  (G’)

c
c
d
(G) (G)
=3 =4
a b
a b
A.A.A
Algorithme de
Coloration Algorithme de
Coloration

Algorithme de
Coloration
1. Classer les sommets du graphe dans une liste dans l'ordre
décroissant de leur degré.

2. En parcourant la liste dans l'ordre, attribuer une couleur non


encore utilisée au premier sommet non encore coloré, et
attribuer cette même couleur à chaque sommet non encore
coloré et non adjacent à un sommet de cette couleur.

c
Exemp d
le
x d(x) Couleur
C1
a
b
4
2
C2 a b
C3
c 2 C2
d 1
e 1 C2
e
A.A.A
Algorithme de
Coloration Algorithme de
Coloration

Algorithme de
Coloration

Il est à noter que le nombre de couleurs minimal obtenu


par l’algorithme de coloration n’est pas nécessairement
optimal. Ce dernier donne une coloration parmi plusieurs
possibles.

 Le nombre de couleurs trouvés par l’algorithme est supérieur


ou égal au nombre chromatique.

Le nombre chromatique du graphe est le plus petit nombre


possible de couleurs. 

A.A.A
Algorithme de
Kruskal Algorithme de
Kruskal

Algorithme de
Kruskal

A.A.A
Algorithme de
Kruskal Algorithme de
Kruskal

Algorithme de
Kruskal

Le principe de cet algorithme est de dégager d’un graphe non


orienté pondéré un arbre de poids minimal.

Un arbre est un graphe sans cycles.

Pour former donc notre arbre à partir du graphe, on emprunte


les arêtes dans l’ordre croissant de leur poids sans former
aucun cycle.

Pour un graphe d’ordre n (n sommets), on s’arête lorsqu’on


aura emprunté n-1 arêtes.

A.A.A
Algorithme de
Kruskal Algorithme de
Kruskal

Exempl
es

c c
d d

a b a b

e e

Ce graphe n’est pas Arbr


un arbre car il e
5 sommets  4
contient un cycle arêtes

A.A.A
Algorithme de
Kruskal Algorithme de
Kruskal

Exempl
es

On considère le graphe suivant et on essaie de chercher un


arbre de poids minimal.

1 c
d
3
2 3
5
a b
5
5
e
Effectivement, pour 5 sommets on obtient 4 arêtes.
Poids de l’arbre = 1 + 2 + 3 + 5 = 11

A.A.A
Algorithme des
CFC

Algorithme des
composantes
fortement connexes

A.A.A
Algorithme des
Composantes Algorithme des
Fortement Connexes CFC

Graphe fortement
connexe
Un graphe est dit fortement connexe si, entre tous
sommets x et y quelconques, il existe un chemin c = {u1 , …
, um} qui commence en x et se termine en y.

a b a b

c c
Ce graphe n’est pas Ce graphe est fortement
fortement connexe connexe
A.A.A
Algorithme des
Composantes Algorithme des
Fortement Connexes CFC

Composantes fortement
connexes

b
A
B
a c d e

Ce graphe n’est pas fortement connexe mais on dit qu’il


contient deux composantes fortement connexes
A = {a, b, c} et B = {d, e, f}
A.A.A
Algorithme des
Composantes Algorithme des
Fortement Connexes CFC

Graphe
réduit
b
A
B
a c d e

Le graphe réduit du graphe ci-


f
dessus est :

A B

Avec : A = {a, b, c} et B = {d, e, f}

A.A.A
Algorithme des
Composantes Algorithme des
Fortement Connexes CFC

Algorithme des Composantes


fortement connexes

ü Choisir un sommet x

ü Marquer x par le signe +


• Marquer du signe + tout successeur de x et tout
successeur d’un sommet marqué d’un +

ü Marquer x par le signe -


• Marquer du signe - tout prédécesseur de x et tout
prédécesseur d’un sommet marqué d’un –

 L’ensemble des sommets marqués du signe + et - constituent


la composante fortement connexe maximale issue du
sommet s.

A.A.A
Algorithme des
Composantes Algorithme des
Fortement Connexes CFC

Exempl
e
Cherchons les composantes fortement connexes du
graphe suivant, en appliquant notre algorithme :

b
+
-

+- +
+ a + c +d +e -
- -

f +
+ -
A.A.A
Applications

A.A.A
Applications
Exercic
e1
A, B, C, D, E, F, G et H désignent huit poissons. Dans le tableau ci-
dessous, une croix signifie que les poissons ne peuvent pas
cohabiter dans un même aquarium:

1. Formuler ce problème comme un problème de coloration dans un


graphe où les poissons représenteront les sommets du graphe.
2. Utiliser l’algorithme donné au cours pour trouver une coloration.
3. a) Que peut on dire du sous graphe G’ engendré par {A, C, D, H}.
b) En déduire le nombre chromatique.

A.A.A
Applications
Exercic
e2
1 2 3 4 5

6 7 8 9 10

11 12 13 14

15 16 17 18
1. Trouver les composantes fortement connexes.
2. Tracer le graphe réduit.
3. Changer l’orientation d’un seul arc pour que tout le graphe devienne
fortement connexe.
A.A.A
Applications
Exercic
e3
2 5 4 7
1 2 3 4 5
1 3 10 8 2 9
7
4 9 11
6 7 8 9 10
5 8
4 8 7 13
5 2 9
11 12 13 14
9 7 4 10
2 12
9 3 10
15 16 17 18

ouver dans le graphe suivant l’arbre de poids minimum et calculer son poids

A.A.A
Applications
Exercic
e4

iste-t-il un graphe simple d’ordre 11 dont tous les sommets sont de degré 3 ?
oui, dessinez-en un.
àLe graphe est d’ordre 11 donc il contient 11 sommets

Et on a chaque sommet est de degré 3

Donc ∑d(x) = 11 * 3 !!! Absurde !!

Car la somme totale des degrés d’un graphe est toujours paire

A.A.A
Applications
Exercic
e5
Considérons les deux graphes suivants :

1 2 3 1 2 3
G G
1 2

On désigne par A1 (resp. A2) la matrice d’adjacence de G1 (resp. G2).

1. Donner A1 et A2
2. Calculer A1n et A2n pour tout entier naturel n non nul.
3. Retrouver les valeurs de A1n et A2n sans calcul, à partir des
graphes G1 et G2 seulement.
4. Considérons un graphe G orienté et simple et A sa matrice
d’adjacence. Donner une condition nécessaire et suffisante pour que
An devienne nulle à partir d’un certain entier n.

A.A.A
MERCI
Applications

Merci pour votre


attention

Vous aimerez peut-être aussi