0% ont trouvé ce document utile (0 vote)
34 vues4 pages

Chapitre 2

Transféré par

iris.dresden733
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues4 pages

Chapitre 2

Transféré par

iris.dresden733
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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