Vous êtes sur la page 1sur 17

Arbres

Dr. Salim Kebir


Maître de conférences à l’ESTI Annaba

4 janvier 2021

1 / 15
Définitions

Définition
Un arbre est un graphe connexe sans cycle
Exemple Les graphes G et H sont des arbres car ils sont connexes et sans cycle
a a

b e
b d

c d c
Définition
Dans un arbre, on appelle feuille un sommet de degré 1
Exemple les sommets b,d et e sont des feuilles dans l’arbre G. Les sommets a, b et d
sont des feuilles dans l’arbre H.

2 / 15
Quelques propriétés des arbres

• Un arbre à n sommets contient n − 1 arêtes


• Si on supprime une arête d’un arbre il devient un graphe non connexe
• Si on ajoute une arête à un arbre, cela crée inévitablement un cycle
• Tout couple de sommets et relié par une et une seule chaîne
• Tout arbre est un graphe biparti. Mais le contraire n’est pas vrai

b e

c d

3 / 15
Codage de Prüfer pour les arbres

Algorithme : Algorithme de codage de Prüfer


Data : G = (V , E ) : Arbre
S←[];
while l’arbre contient plus de 2 sommets do
Identifier la feuille v ayant une étiquette minimale ;
Ajouter à la suite S le seul sommet s adjacent à v ;
Enlever le sommet v de l’arbre ;
end
Retourner S ;

4 / 15
Exemple d’application de l’algorithme de codage de Prüfer

3 4 2

6 5

5 / 15
Exemple d’application de l’algorithme de codage de Prüfer

3 4 2

6 5

S = [4, 4, 4, 5]

5 / 15
Algorithme de décodage de Prüfer

Algorithme : Algorithme de décodage de Prüfer


Data : S = [s1 , s2 , · · · , sn−2 ]
I ← [1, 2, · · · , n] ;
while S 6= [ ] do
Identifier le plus petit élément i tel que i ∈ I et i ∈
/S ;
Créer l’arête {i, s} tel que s est le premier élément de S ;
Supprimer i de I et s de S ;
end
Créer une arête avec les deux éléments restants de I ;

6 / 15
Exemple d’application de l’algorithme de décodage de Prüfer

S = [6, 6, 3, 3]

7 / 15
Exemple d’application de l’algorithme de décodage de Prüfer

S = [6, 6, 3, 3]
1
2 6

3 5
4

7 / 15
Arbres couvrants

Définition
un arbre couvrant d’un graphe connexe est un arbre inclus dans ce graphe et qui
connecte tous les sommets du graphe.
La recherche d’un arbre couvrant dans un graphe connexe quelconque consiste à
supprimer tous les cycles tout en gardant le graphe connexe.
Exemples
a a a a

b e b e b e b e

c d c d c d c d
Graphe G Exemples d’arbres couvrants du graphe G

8 / 15
Arbres couvrants de poids minimal/maximal
Définition
Un graphe est pondéré si on affecte à chaque arête (ou arc) un poids.
Exemple Le graphe de la figure suivante est un graphe pondéré car un poids est
affecté à chaque arête.

5
e d
19 9
14 4
b c a
8 4

Définition
Dans un graphe pondéré et connexe, un arbre couvrant de poids minimal est un
arbre couvrant dont la somme des poids des arêtes est minimale.
9 / 15
Exemples d’arbres couvrants de poids minimal

Exemple Dans le figure suivante, le graphe G contient exactement 3 arbres couvrants.


a a a
a
5 9 9 5
5 9

b c b c b c
3 3 b c 3
P P P
Graphe G poids = 12 poids = 14 poids = 8

⇒Arbre couvrant
de poids minimal
du graphe G

10 / 15
Recherche d’arbre couvrant de poids minimal

Algorithme : Algorithme de Kruskal


Data : G : Graphe connexe
[e1 , e2 , e3 , · · · ] ← Liste des arêtes de G triées dans l’ordre croissant de leur poids ;
Supprimer toutes les arêtes du graphe G ;
i ←1;
while G n’est pas connexe do
Ajouter l’arête ei au graphe si elle ne forme pas un cycle ;
i ←i +1 ;
end

11 / 15
Exemple d’application de l’algorithme de Kruskal
2 g 19
b j
6 3 8
c 14 5
1 2 15 h
a i
d 4
2 4
8 9
f
8 11
2
e

12 / 15
Exemple d’application de l’algorithme de Kruskal

ei Arête Poids Ajout Explication


e1 {a, c} 1 Oui Ne forme pas de cycle
e2 {a, d} 2 Oui Ne forme pas de cycle
e3 {e, i} 2 Oui Ne forme pas de cycle
e4 {b, g} 2 Oui Ne forme pas de cycle
e5 {c, d} 2 Non Forme le cycle a − c − d − a
e6 {b, d} 3 Oui Ne forme pas de cycle
e7 {h, i} 4 Oui Ne forme pas de cycle
e8 {h, f } 4 Oui Ne forme pas de cycle
e9 {i, j} 5 Oui Ne forme pas de cycle
e10 {a, b} 6 Non Forme le cycle a − b − d − a
e11 {a, e} 8 Oui Ne forme pas de cycle
Graphe connexe ⇒ Fin de l’algorithme
P
poids 31

13 / 15
Exemple d’application de l’algorithme de Kruskal
2 g
b j

3
c 5

a 1 h
d 4 i
2 4

f
8
2
e

14 / 15
Arbre couvrant de poids maximal

Remarque Pour trouver un arbre couvrant de poids maximal, le principe reste le même
mais il faut au départ trier les arêtes selon l’ordre décroissant de leur poids.

15 / 15

Vous aimerez peut-être aussi