Vous êtes sur la page 1sur 40

Introduction à la

théorie des graphes

AZEBA Ahmed Amine – INSEA – cogeni2008@gmail.com


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
Elé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)

a
Exemple

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

Graphes Orientés

a d

c
b

Graphes Non Orientés a

c
b

A.A.A
Elé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

c
c
b

b
d
d

Graphe d’ordre 4 Graphe d’ordre 3 Graphe d’ordre 2


A.A.A
Elé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

c c c
b

d d d

Ce graphe n’est pas simple car il Ce graphe n’est pas simple Graphe simple
contient 2 arêtes parallèles car il contient une boucle
A.A.A
Elé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

c c c
b

d d d

Ce graphe n’est pas complet car les Ce graphe n’est pas complet Graphe complet
deux sommets b et c ne sont pas liés car il n’est pas simple
A.A.A
Elé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)

Exemple
e a
d(a) = 3

d(b) = 2

d(c) = 4 d
b

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


c
d(e) = 0 , on dit que le sommet e est isolé
A.A.A
Elé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

Exemple

d + (a) = 0 d - (a) = 2
a
 d(a) = 2
d + (b) = 1 d - (b) = 1
 d(b) = 2
d + (c) = 3 d - (c) = 1 c
b
 d(c) = 4

A.A.A
Elé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é.

Exemple a

d(a) = d(b) = d(c) = 2


d
 Graphe régulier

A.A.A
Elé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
Elé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
Elé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 e
  b
d 1 2 1 0 0 
 1 10 0 0  d
e
 
 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
Elé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
Elé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
Eléments de cours
Eléments de cours

Pondération

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 c
b
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

Principe

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

Exemples
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) = 3 (G) = 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
Exemple d
x d(x) Couleur
a 4 C1
b 2 C2 a b
c 2 C3
d 1 C2
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

Exemples

c c
d d

a b a b

e e

Ce graphe n’est pas un arbre Arbre


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

A.A.A
Algorithme de Kruskal
Algorithme de Kruskal

Exemples

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
Fortement Connexes Algorithme des 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 fortement Ce graphe est fortement connexe
connexe
A.A.A
Algorithme des Composantes
Fortement Connexes Algorithme des 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
Fortement Connexes Algorithme des CFC

Graphe réduit
b
A
B
a c d e

Le graphe réduit du graphe ci-dessus est :


f

A B

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

A.A.A
Algorithme des Composantes
Fortement Connexes Algorithme des 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
Fortement Connexes Algorithme des CFC

Exemple

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
Exercice 1

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
Exercice 2

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
Exercice 3

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

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

A.A.A
Applications
Exercice 4

Existe-t-il un graphe simple d’ordre 11 dont tous les sommets sont de degré 3 ?
Si 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
Exercice 5

Considérons les deux graphes suivants :

1 2 3 1 2 3
G1 G2

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