Vous êtes sur la page 1sur 28

GRAPHES & HEURISTIQUES

 Principaux concepts de théorie des graphes.

 Problème de recherche d’un chemin de valeur optimale.

 Problèmes du flot
Plan
2

Principaux concepts de théorie des graphes

 Définition et représentations

 Notions de base

 Algorithmes
Définitions
3

Un graphe G est un couple constitué :

• D’un ensemble X de points appelés sommets


• D’un ensemble U de flèches (lignes) appelées arcs (ou arêtes)

Le graphe G sera noté par G = (X, U)


Définitions
4

Exemple 1: graphe orienté Exemple 2: graphe non orienté

Extrémité initiale B
B Arête (A,B) Arête(C,B)
Arc (B,A) Arc (C,B)
Extrémité finale
A C
A Arc (B,C) C

Extrémités de (A,B)

G = (X, U) ; X = {A,B,C} G = (X, U) ; X = {A,B,C}


U = {(B,A) ; (B,C) ; (C,B)} U = { (B,A) ; (B,C) }

 A et B sont adjacents  Deux sommets sont dits adjacents s’il y au moins


une arête (ou un arc) qui permet de les relier

 A et B sont incidents à l’arc (B,A)


Définitions
5

Un graphe G est défini par :

• Un ensemble de sommets X
• Une application :
 Г de X en P (X) = ZX qui associe à tout sommet
l’ensemble de ses suivants,
ou
 Г -1 qui associe à tout sommet l’ensemble de ses
précédents.
Définitions
6

Exemple 1 :

B
Arc (B,A) Arc (C,B)

A Arc (B,C) C

G est défini par : X = {A,B,C}


Г (B) = {A,C}
Г (C) = {B}
Ou bien : X = {A,B,C}
Г-1(A) = {B}
Г-1 (B) = {C}
Г-1 (C) = {B}
Remarques
7

Un arc (arête) caractérise l’existence d’une possibilité


 On pourra s’intéresser à l’existence d’une communication directe (d’un
sommet à son suivant) ou indirecte (par l’intermédiaire d’autres
sommets) entre différents couples de sommets.
 On pourra associer une valuation à chaque arc (ou arête) représentant
par exemple une distance ou un coût. Il s’agira dans ce cas de
déterminer les communications les moins longues entre différents
couples de sommets.

 On pourra associer une capacité (ou une borne) à chaque arc (ou arête)
traduisant des limitations : nombre maximal (ou minimal). Il s’agit
dans ce cas de déterminer le nombre maximal d’objets à faire transiter
entre deux sommets du graphe.
Problèmes classiques modélisables par les
graphes
8

 Cheminement (le problème de plus court chemin)

 Élaboration de tournées parmi les sommets qui soient de longueur


totale minimum mais qui passe par tous les sommets (problème de
voyageur de commerce)

 Quantités maximale à faire circuler (problèmes de flots)


Représentation d’un graphe
9

 Représentation graphique

 Représentation matricielle

 Représentation par dictionnaire


Représentation graphique
10

Exemple 1 :

B
Arc (B,A) Arc (C,B)

A Arc (B,C) C

 Bonne visualisation (claire) mais non implémentable sur


ordinateur (difficile à décrire).
Représentation matricielle
11

Matrice d’adjacence sommets-sommets


A n × n où n étant le nombre de sommets (n= |X|)
aij = 1 si (i, j) ∈ U ;
= 0 sinon,

B A B C
A 0 0 0
B 1 0 1
A C C 0 1 0
Représentation par dictionnaire
12

Dictionnaire des suivants Dictionnaire des précédents


 expliciter l’application Г  expliciter l’application Г-1

A C

x Г (x) x Г-1 (x)


A - A B
B A,C B C
C B C B
Représentation d’un graphe
13

On peut passer facilement d’une

représentation à une autre


Notions de base
14

Graphes partiels et sous-graphes

• Soit G = [X, U] un graphe et soit V une partie de U (V ⊂ U), le graphe G’ =


[X, V] est appelé graphe partiel engendré par V.

Si G est le graphe représentant les routes de Tunisie, celui qui


représente les autoroutes de Tunisie est un graphe partiel.

• Soient G = [X, U] un graphe et A une partie de X (A ⊂ X), un sous-graphe


engendré par A est le graphe GA dont les sommets sont les éléments de A et dont
les arcs (ou arêtes) sont ceux de G ayant leurs deux extrémités dans A.

Si G est le graphe représentant les routes de Tunisie, celui qui représente


les routes de Bizerte est un sous-graphe.
Notions de base
15

Chaine, cycle, chemin, circuit

• Une chaine µ = [u1, u2, … ut] de longueur t est une séquence de t arcs t.q
chaque arc ui, i=2,…,t-1 a une extrémité commune avec ui-1 et l’autre
commune avec ui+1,

u4
Exemple : x2 x3 x5
µ = [u1, u2,u3] est une chaine de u7
u1 u3 u5
longueur 3 et d’extrémités x2 et x3.

x1 x4 x6
u2 u6
Notions de base
16

Chaine, cycle, chemin, circuit

• Un cycle est une chaine dont les extrémités coïncident

u4
Exemple : x2 x3 x5
µ = [u6, u5,u4,u3] est un cycle u7
u1 u3 u5

x1 x4 x6
u2 u6
Notions de base
17

Chaine, cycle, chemin, circuit

• Un chemin est une chaine µ = [u1, u2, … uq] tel que chaque arc ui a son
extrémité finale qui coïncide avec l’extrémité initiale de ui+1, i=1,…, q-1
c’est une chaine dont tous les arcs sont orientés dans le même sens.

u4
Exemple : x2 x3 x5
µ = [u2, u6,u5,u4] est un chemin u7
u1 u3 u5

x1 x4 x6
u2 u6
Notions de base
18

Chaine, cycle, chemin, circuit

• Un circuit est un cycle µ = [u1, u2, … uq] tel que  ui, i = 1…. q-1,
l’extrémité terminale de ui coïncide avec l’extrémité initiale de ui+1,  c’est
un chemin dont les extrémités coïncident.

u4
Exemple : x2 x3 x5
µ = [u7, u5,u4] est un circuit u7
u1 u3 u5

x1 x4 x6
u2 u6
Notions de base
19

Chaine, cycle, chemin, circuit

Une chaine est dite :


• Élémentaire : si elle ne passe qu’une fois en chacun de ses sommets (elle ne
contient pas deux fois le même sommet),

u4
Exemple : x2 x3 x5
µ = [u2, u6,u5,u4] est élémentaire u7
u1 u3 u5

x1 x4 x6
u2 u6
Notions de base
20

Chaine, cycle, chemin, circuit

Une chaine est dite :


• Simple : si elle ne passe qu’une fois en chacun de ses arcs (chaîne qui
n’utilise pas deux fois la même arête)

u4
Exemple : x2 x3 x5
µ = [u2, u3, u7, u6] est simple mais u7
u1 u3 u5
non élémentaire

Remarque : x1 x4 x6
u2 u6
Élémentaire => simple
Notions de base
21

Chaine, cycle, chemin, circuit

Une chaine est dite :


• Hamiltonienne : si elle passe une fois et une seule par chacun des sommets
du graphe.
Notions de base
22

Ascendant, descendant, racine, antiracine

• Un sommet x est ascendant d’un sommet y s’il existe un chemin de x à y.

• Un sommet x est descendant d’un sommet y s’il existe un chemin de y à x.

• x est racine de G(X,U) si  y ≠ x, x est ascendant de y.

• x est antiracine de G(X,U) si  y ≠ x, x est descendant de y.


Notions de base
23

Connexité, forte connexité

• G est connexe si pour tout couple de sommets x et y, il existe une chaine


joignant x et y.
• G est fortement connexe si pout tout couple de sommets x et y, il existe un
chemin joignant x et y.
Exemple :
x1 x2
G est connexe, pas fortement
connexe. Les sous-graphes x1,x2,x3 x5
et x4,x5 sont fortement connexes.

x3 x4
Notions de base
24

Connexité, forte connexité

• Une composante connexe est un sous-graphe maximal connexe (Si G n’est

pas connexe, les sous-graphes de G non connexes et maximaux avec cette

propriété s’appellent des composantes connexes).


Algorithme de détection de l’existence
d’un circuit
25

Idée

 Un sommet qui n’a pas de suivants ne peut pas faire partie d’un circuit.
 Un sommet qui n’a pas de précédents ne peut pas faire partie d’un circuit.

Algorithme
(0) Représenter G par son dictionnaire des suivants (ou précédents).
Tant que possible :
(1) Chercher un sommet dont la liste des suivants (précédents) est
vide,
(2) Supprimer ce sommet partout où il apparait dans le dictionnaire.
A la fin, si tous les sommets sont supprimés => il n’existe pas de circuits, sinon
Algorithme de détection de l’existence
d’un circuit
26

Exemple :

xi Г (xi)
x4 x1 x2, x3
x2 x2 x3, x5
x3 x5, x6
x1 x5 x4 x2, x7
x7
x5 x4, x7,x6
x6 x7
x3 x7 -
x6

Remarque : si on remplace (x4,x2) par (x2,x4), il n’y aura pas de circuit


Algorithme vérifiant qu’un sommet xo
est racine de G
27

Idée

• Tester si l’on peut atteindre tout sommet à partir de x o


Algorithme
(0) Représenter G par son dictionnaire des suivants.
(1) Marquer xo
Tant que possible :
(2) Marquer tout sommet non encore marqué qui se trouve dans la liste
d’un sommet marqué
A la fin, si tous les sommets sont marqués => xo est racine, sinon xo n’est pas
racine
Algorithme vérifiant qu’un sommet xo
est racine de G
28

Exemple
x1

xi Г (xi)
x3 x1 x2, x3
x2
x2 x5
x3 x6
x4 -
x5 x4, x7
x5 x6 x6 x8
x7 -
x8 -

x7 x8
x4

Vous aimerez peut-être aussi