Vous êtes sur la page 1sur 24

Algorithmique des graphes

Notions de Base

1
A quoi servent les graphes ?

2
Problèmes liés aux graphes

3
Définitions

• Graphe non-orienté : Un graphe non-orienté est un couple (X,


E) où X est un ensemble de sommets et E est inclus dans P2(X)
(ensemble des parties à deux éléments de X). Les éléments de E
sont appelés arêtes.
• Parfois, on autorise les boucles (arêtes de mêmes extrémités), ou
les arêtes multiples. L’arête {x, y} est souvent notée : xy.
• Graphe orienté : Un graphe orienté est un couple (X, U) où X est
un ensemble de sommets et U est inclus dans X × X.
• U est un ensemble d’arcs.

4
Adjacence, incidence, voisinage, degré

• Deux sommets sont adjacents s’ils sont reliés par une arête ou un arc.
• Deux arêtes (ou arcs) sont adjacentes (ts) si elles (ils) ont un sommet en
commun.
• L’arête xy est incidente aux sommets x et y.
• Le voisinage d’un sommet x est défini par Γ(x) = {y ∈ X | xy ∈ E}.
• Le degré du sommet x est alors d(x) = |Γ(x)| = Card (Γ(x)) (Graphe simple :
absence de boucle)

Dans le cas d’un graphe orienté ces notions deviennent…

5
Voisinages extérieurs et intérieurs

• Le voisinage extérieur de x est défini par Γ+(x) = {y ∈ X | (x, y) ∈ U }.


• Le voisinage intérieur est Γ−(x) = {y ∈ X | (y, x) ∈ U }.
• Le voisinage Γ(x) est la réunion de Γ+(x) et Γ−(x).
• Les degrés extérieur (sortant) d+ et intérieur (entrant) d− sont définis
par le cardinal des ensembles Γ+(x) et Γ−(x).
• Si d(x) = 0, le sommet x du graphe est dit isolé.
• Si d(x) = 1, le sommet x est dit pendant.
• Si d(x) = |X| − 1, le sommet x est dit dominant.
6
Exemple

• |X| = 5 est l’ordre du graphe


x1 x2

x3
x5

x4
7
Clique, Sous graphe, graphe partiel, graphes
isomorphes
• Une clique est un graphe simple pour lequel il existe exactement une arête entre toute paire de
sommets. On la note Kn si n est son nombre de sommets.
• Le sous-graphe SG(Y ) de G = (X, U) engendré par le sous-ensemble de sommets Y ⊂ X est le graphe
dont les sommets sont les éléments de Y et les arcs les éléments de U ayant leurs deux extrémités
dans Y : SG(Y ) = (Y, UY ) avec UY = {u ∈ U|u = (x, y), x, y ∈ Y2}.
• Le graphe partiel GP(V ) de G = (X, U) engendré par le sous-ensemble d’arcs V ⊂ U est le graphe
dont les sommets sont ceux de X et les arcs ceux de V : GP(V ) = (X, V ).
• Le sous-graphe partiel SGP de G = (X, U) engendré par le sous-ensemble de sommets Y ⊂ X et le
sous-ensemble d’arcs V ⊂ U est le graphe partiel GP(V ) du sous-graphe SG(Y ) ou le sous-graphe
SG(Y ) du graphe partiel GP(V ) : SGP = (Y, V ) avec Y ⊂ X et V ⊂ U.
• Deux graphes G = (X, U) et G0 = (X0, U0) sont dits isomorphes s’il existe deux bijections :g : X → X0
et h : U → U0 telles que ∀u = (x, y) ∈ U, h(u) = (g(x), g(y)) ∈ U0.
8
Chaîne et cycle

• Une chaîne de longueur l allant du sommet x au sommet y est une suite


d’arêtes µ(x, y) = (u1, u2, . . . , ul) tels que ∀i ∈ {1, . . . , l − 1}, ui et ui+1 sont
adjacents. Le sommet x (resp. y) est appelé l’extrémité initiale (resp.
terminale) de la chaîne µ. Une chaîne est dite élémentaire si elle ne passe
jamais deux fois par le même sommet. Une chaîne est dite simple si elle
ne passe jamais deux fois par la même arête.
• Remarques : Une chaîne simple de longueur |E| =m ( (i.e. maximale) est
une chaîne eulérienne. Un cycle est une chaîne dont les extrémités initiale
et terminale coïncident. Un cycle élémentaire est un cycle minimal, au
sens de l’inclusion, i.e. ne contenant strictement aucun cycle.

9
Chemin et circuit
• Un chemin de longueur l allant du sommet x au sommet y est une suite d’arcs
µ[x, y] = (u1, u2, . . . , ul) tels que ∀i ∈ {1, . . . , l − 1}, ui et ui+1 sont adjacents et
l’extrémité terminale de ui est l’extrémité initiale de ui+1. Le sommet x (resp. y)
est appelé l’extrémité initiale (resp. terminale) du chemin µ.
• Un chemin est dit élémentaire s’il ne passe jamais deux fois par le même sommet.
Un chemin est dit simple s’il ne passe jamais deux fois par le même arc.
• Remarque : Un chemin élémentaire de longueur n − 1 (i.e. maximale) est un
chemin hamiltonien. Un circuit est un chemin dont les extrémités initiale et
terminale coïncident. Un circuit élémentaire est un circuit minimal, au sens de
l’inclusion, i.e. ne contenant strictement aucun circuit. Un circuit hamiltonien est
un chemin hamiltonien µ[xi1, xin] = (xi1, xi2, . . . , xin) complété par (xin, xi1).

10
Connexité, composantes connexes

• Connexité simple : Un graphe G est dit connexe si ∀(x, y) ∈ X2 x ≠ y, ∃µ(x,


y).
• Proposition : La relation R définie par xRy ⇔ x = y ou ∃µ(x, y) est une
relation d’équivalence.
• Les classes d’équivalence induites sur X par R constituent une partition de X
en X1, X2, . . . , Xp. Le nombre p de classes d’équivalence est appelé le
nombre de connexité du graphe. Un graphe est dit connexe si et seulement
si son nombre de connexité est ´egal à 1. Les sous-graphes G1, G2, . . . , Gp
engendrés par les sous-ensembles X1, X2, . . . , Xp sont appelés les
composantes connexes de G. Chaque composante connexe est un graphe
connexe.
11
Forte connexité, composantes fortement
connexes
• Connexité forte :Un graphe G est dit fortement connexe si ∀(x, y) ∈ X2 x ≠
y, ∃µ[x, y].
• Proposition : La relation R’ définie par xR’ y ⇔ x = y ou ∃µ[x, y] et ∃µ[y, x]
est une relation d’équivalence.
• Les classes d’équivalence induites sur X par R’ constituent une partition de
X en X1, X2, . . . , Xq. Le nombre q de classes d’équivalence est appelé le
nombre de connexité forte du graphe. Un graphe est dit fortement connexe
si et seulement si son nombre de connexité forte est égal à 1. Les sous-
graphes G1, G2, . . . , Gq engendrés par les sous-ensembles X1, X2, . . . , Xq
sont appelés les composantes fortement connexes de G.

12
Définitions supplémentaires

• Diamètre d’un graphe : est la plus grande distance possible qui


puisse exister entre deux de ses sommets ; la distance entre deux
sommets étant définie par la longueur d'un plus court chemin
entre ces deux sommets.
• Rang d’un sommet x : longueur du plus long chemin aboutissant
à x.
• le rayon d'un graphe est l'excentricité minimale de ses sommets,
c'est-à-dire la plus petite distance à laquelle puisse se trouver un
sommet de tous les autres.
• Le centre d'un graphe est formé de l'ensemble de ses sommets
d'excentricité minimale.
13
Exemple
1
8
6
x1 x2 x4 x5

2 5
Isthme 7
3 4

x3

14
Représentation d’un Graphe : matrice
d’incidence sommets-arcs
• Soit G = (X, U) un graphe orienté sans boucle d’ordre n, la matrice
d’incidence sommets-arcs est une matrice A = (aij(n×m) ) à
coefficients entiers 0, +1 ou −1 telle que chaque colonne correspond
à un arc et chaque ligne à un sommet. Si u = (x, y) est un arc du
graphe G alors la colonne u a tous ses termes nuls sauf :
➢ axu = +1
➢ ayu = −1

15
Matrice d’incidence sommets-arcs de
l’exemple

+1 -1 -1 0 0 0 0 0
-1 +1 0 +1 +1 0 0 0
0 0 +1 -1 0 0 0 0
0 0 0 0 +1 +1 -1 0
0 0 0 0 0 -1 +1 0
16
Matrice d’adjacence

• Soit G = (X, U) un graphe d’ordre n, la matrice d’adjacence


A = (aij(n×n) ) à coefficients 0 ou 1 est définie comme suit :
➢ axy = 1 ⇐⇒ (x, y) ∈ U
➢ axy = 0 sinon.

17
Matrice d’adjacence de l’exemple

0 1 0 0 0
1 0 1 1 0
1 0 0 0 0
0 0 0 0 1
0 0 0 1 1
18
Liste d’adjacence

• On mémorise pour chaque sommet la liste de ses prédécesseurs ou de


ses successeurs en utilisant des listes chaînées.
• Pour l’exemple :
• x1 → x2 → NIL
• x2 → x1 → x3 → x4 → NIL
• x3 → x1 → NIL
• x4 → x5 → NIL
• x5 → x4 → x5 → NIL

19
Pour
l’implémentation
en Python

20
Le dictionnaire

• La structure dictionnaire est avantageuse :


G={"x1" : {"x2"},
"x2" : {"x1", "x3", "x4"},
"x3" : {"x1"},
"x4" : {"x5"},
"x5" : {"x4", "x5"}}
21
>>> G
{'x1': {'x2'}, 'x2': {'x1', 'x4', 'x3'}, 'x3': {'x1'},
'x4': {'x5'}, 'x5': {'x5', 'x4'}}
>>> len(G["x2"])
3
Exemple de >>> "x1" in G["x5"]
False
commandes >>> for v in G["x2"]:
print(v)
x1
x4
x3

22
Ajout et suppression d’arcs

>>> G["x1"].add("x5")
>>> G["x1"]
{'x5', 'x2'}
>>> G["x1"].remove("x5")
>>> G["x1"]
{'x2'}

23
Travail à faire pour la prochaine séance

• Ex 1 : Vous possédez 2 seaux de 3 et 5 litres respectivement chacun. Comment


faites-vous pour ramener 4 litres d'eau ?
• Ex 2 : Un berger, en compagnie d'un loup, de sa chèvre et d'un chou sur une rive,
veut traverser une rivière. Pour cela, il dispose d'une petite barque qui ne peut
contenir que lui et un autre objet ou animal. De plus, si la chèvre et le chou sont
ensemble sur une rive quand le berger s'éloigne, la chèvre mange le chou.
• Ex 3 : Soit G = (X,E) un graphe non orienté simple d’ordre n et de taille m.
1- Calculez σ𝑥∈𝐸 𝑑(𝑥).
2- Est-il possible que tous les sommets aient des degrés différents
24

Vous aimerez peut-être aussi