Vous êtes sur la page 1sur 4

Chapitre2 : Arbre couvrant de poids minimum

I. Arbres
On suppose que le graphe est non orienté sauf contre-indication.

1. Préliminaires

Théorème

Soit G(X,E) un graphe d’ordre n

1. Si G est connexe alors |E|≥n-1


2. Si G est sans cycle alors |E|≤n-1

Définition
Un arbre est un graphe connexe et sans cycle, donc il admet (n-1) arêtes.

Corollaire
Un graphe connexe possède un graphe partiel qui est un arbre.

Définition
Un sommet pendant est un sommet de degré 1.

Théorème
Un arbre contient au moins 2 sommets pendants.

II. Problème de l’arbre couvrant de poids minimum

Définition

Soit G=(X,E) un graphe connexe et simple et p l’application :


P:Eℝ
ep(e)
 P(e) s’appelle poids de l’arête e.
 Si G’=(X,E’) est un graphe partiel de G alors p(G’)= ∑
 Par convention : Si E’= alors p(G’)=0
Exemple :
Soit le graphe G(X,E) suivant : n=4 ; m=5

P(G)=0
E’={(ac),(bc),(bd)}
G’=(X,E’)  p(G’) = p(ac)+p(bc)+p(bd)=1+0+(-1)=0 (G’ : graphe partiel de G qui est un
arbre de poids minimum)

Problématique :
Trouver un graphe partiel de G qui est un arbre de poids minimum
 Solutions :
- Algorithme de Kruskal
- Algorithme de Prim

A. Algorithme de Kruskal
Les arêtes du graphe G(X, E) sont supposées numérotées suivant l’ordre croissant de
leurs poids : p(e1)≤p(e2) ≤p(e3) ≤… ≤p(em)

Pseudo-code :
Poser E’= et i=1
1.a. Si(X,E’ {ei}) contient un cycle  aller en 3.
b. Sinon, aller en 2.
2. Poser E’← E’ {ei} et aller en 3.
3. a. Si (|E’|=n-1) alors terminer
b. Sinon, i←i+1 et aller en 1.

 Le graphe G’(X,E’) est un arbre de poids minimum


Exemple :
Soit le graphe G(X,E) suivant : n=5 ; m=7

p(e1)≤p(e2) ≤p(e3) ≤… ≤p(em)


 Trouver un graphe partiel de G qui est un arbre de poids minimum en utilisant
l’algorithme de Kruskal
Exécution :
 E’= ; i=1
(X,{e1}) ne contient pas un cycle  E’={e1} ; i=2
 E’={e1}; i=2
(X,{e1, e2}) ne contient pas un cycle  E’={e1, e2}; i=3
 E’={e1, e2}; i=3
(X,{e1, e2, e3}) ne contient pas un cycle  E’={e1, e2, e3}; i=4
 E’={e1, e2, e3}; i=4
(X,{e1, e2, e3, e4}) contient un cycle  E’={e1, e2, e3}(pas de m-à-j); i=5
 E’={e1, e2, e3}; i=5
(X,{e1, e2, e3, e5}) ne contient pas un cycle  E’={e1, e2, e3,e5}; |E’|=4=n-1
arrêt de l’algorithme
Le graphe G’(X,E’) suivant est un arbre de poids minimum, p(G’)=-2-
1+1+4=2

Algorithme de Prim

Pseudo-code :
X={x1,x2,…,xn}
Sv←{x1}// Sv : Ensemble de sommet traités
Ea← // Ensemble d’arètes de l’arbre de poids minimum
Pour i de 1 à |X|-1 faire
 Choisir une arête e entre les sommets u et v tel que uSv et vX-Sv avec e de
poids minimum
 Ea←Ea {e}
 Sv←Sv {v}
Fin Pour

Exemple :

Soit le graphe G(X, E) suivant ; |X|=n=6 ; |E|=m=10


 Trouver un graphe partiel de G qui est un arbre donc admettant 5 arêtes en
utilisant l’algorithme de Prim
 Méthode simple :
a b c d e f
a 0 3 ∞ ∞ 6 5
b 3 0 1 ∞ ∞ 4
c ∞ 1 0 6 ∞ 4
d ∞ ∞ 6 0 8 5
e 6 ∞ ∞ 8 0 2
f 5 4 4 5 2 0
 G’ (X,E’) avec E’={(ab),(bc),(bf),(fe),(fd)} est un arbre de poids minimum.

Vous aimerez peut-être aussi