Vous êtes sur la page 1sur 16

Graphes pour les Sciences dIngenieurs

Cours et Exercices

Adil Bellabdaoui
adil.bellabdaoui@um5.ac.ma
www.decision.ma/

25 octobre 2017
2
Chapitre 5

Arbre et Foret

Les arbres et forets sont des graphes particuliers, tres populaires en algorith-
miques et en informatique.

5.1 Arbre et Foret


Definition 5.1
Un arbre est un graphe connexe sans cycle.
Une foret est un graphe sans cycle.

Exemple 5.2

Figure 5.1 Trois arbres

Remarques 5.3
Etant une foret un graphe sans cycle, chacune de ses composantes connexes
est acyclique, en plus, elle est connexe (par definition). La definition dune foret
correspond donc bien au sens usuel dun ensemble darbres, chacune de ses com-
posantes connexes etant un arbre.

Il existe de nombreuses caracterisations pour les arbres que nous detaillons


dans la propriete ci-dessous.
Si nous regardons la propriete de connexite, les arbres apparassent comme
des graphes connexes minimaux, au sens ou retirer la moindre arete les
deconnecte.

45
46 CHAPITRE 5. ARBRE ET FORET

Si nous regardons les arbres sous langle des graphes acycliques, ils sont
maximaux, au sens ou ajouter la moindre arete cree un cycle.

Il existe egalement une relation tres forte entre le nombre daretes et le


nombre de sommets dun arbre :
un arbre T =(X,U) comporte exactement | X | - 1 aretes.
Un graphe connexe comporte au moins | X | - 1 aretes (cf propriete 3.2
des graphes connexes).
Un graphe sans cycle comporte au plus | X | - 1 aretes (cf propriete 4.2
des graphes acycliques).

Propriete 5.4 Caracterisations dun Arbre


Pour un graphe T dordre n, il y a equivalence entre les proprietes :
1. T est un arbre
2. Tout couple de sommets est relie par une chane unique
6. T est un graphe connexe a n - 1 aretes
4. T est connexe, et la suppression de toute arete le deconnecte
5. T est acyclique a n - 1 aretes
3. T est acyclique et lajout de toute arete le rend cyclique.

Theoreme 5.5 Foret


Dans une foret de m aretes et n sommets,
1. On a m n - 1, avec legalite ssi la foret est formee dun seul arbre.
2. Chaque composante de la foret est un arbre. Sn
3. Une foret F est une union disjointe darbres Ti , avec F = i=1 Ti .

5.2 Arbre couvrant


Definition 5.6
Un arbre couvrant pour un graphe G = (X,E) est un arbre construit unique-
ment a partir des aretes de E et qui connecte (couvre) tous les sommets de
X.

Remarques 5.7
-Un arbre couvrant dun graphe G est donc un graphe T tel que :
LegrapheT estunarbre
U narbrecouvrantpourungrapheGn0 estpasuniquesauf siGest
LegrapheT estungraphepartieldeG.
- Dans le cas general, il existe exactement trois arbres non-isomorphes a 5
sommets.

5.3 Probleme de larbre couvrant de poids mi-


nimum
Definition 5.8
Un graphe value est un graphe pour lequel chaque arete est associee a un
5.3. PROBLEME DE LARBRE COUVRANT DE POIDS MINIMUM 47

Figure 5.2 Unicite dun arbre

nombre reel appele poids. Si ce nombre est postif, on parle alors de graphe
pondere.

Definition 5.9
Le probleme de larbre couvrant de poids minimum (MST, Minimum Span-
ning Tree) consiste a trouver un arbre couvrant dont la somme des poids de
ses aretes est minimum. La seule condition, necessaire et suffisante, pour quun
graphe admette un arbre couvrant est quil soit connexe.

Remarque 5.10. Il existe 2 algorithmes celebres pour resoudre le probleme


de larbre couvrant de poids minimum. Chacun de ces 2 algorithmes utilise plus
particulierement lune des caracterisations des arbres pour trouver un MST :
soit en considerant les arbres comme des graphes connexes avec le mi-
mimum daretes. Un tel algorithme maintient au fur et a mesure de la
construction un sous-graphe connexe qui grossit petit a petit : Algo-
rithme de Prim,
soit en considerant les arbres comme des graphes acycliques avec le maxi-
mum daretes. Un tel algorithme maintient au fur et a mesure de la
construction un graphe partiel acyclique : Algorithme de Kruskal.

5.3.1 Algorithme de Kruskal


Algorithme 5.11 (Kruskal)
Etape 1. Classer les aretes par ordre croissant de poids ; U = {u1 , u2 , u3 , ....,
um }.
Etape 2. Commencer avec un graphe vide : T = et i = 1.
Etape 3. Regarder si lajout de ui au graphe cree un cycle.
(a) Si ce nouveau graphe est sans cycle, ajouter ui a T ; T := T U {ui }.
(b) Si ce nouveau graphe contient un cycle, rejeter ui qui ne sera pas retenue
dans larbre.
Etape 4. Incrementer i de 1.
Si |T| = n - 1 Stop, sinon retourner a letape 3.
48 CHAPITRE 5. ARBRE ET FORET

Exemple dillustration
Faisons tourner cet algorithme sur lexemple de la figure 5.3 avec n = 6 et m = 9.

Figure 5.3 Graphe connexe avec n = 6 et m = 9

Apres classement des aretes par ordre croissant de poids, on obtient U =


{u1 , . . . , u9 } de la figure 5.4.

On pose T = et i = 1.
Donc on commence par ajouter u1 dans notre arbre : T = {u1 } et i = 2.
Ensuite on ajoute u2 : T = {u1 , u2 } et i = 3.
On peut ajouter aussi u3 et u4 sans creer de cycle, donc T = {u1 , u2 , u3 , u4 } et
i = 5.
A ce stade on obtient la figure 5.5 :
5.3. PROBLEME DE LARBRE COUVRANT DE POIDS MINIMUM 49

Figure 5.4 Illustration Kruskal (1)

Figure 5.5 Illustration Kruskal (2)


50 CHAPITRE 5. ARBRE ET FORET

On tente alors dajouter u5 , mais (u3 , u5 ) forment un cycle. u5 est donc re-
jete, et i = 6.

Par contre u6 peut aussi etre ajoutee. On obtient T = {u1 , u2 , u3 , u4 , u6 }, et


i = 7. Comme |T| = 5 = n - 1, lalgorithme est termine. On a A = (X, T) un
arbre de recouvrement minimal (voir la figure 5.6).

Figure 5.6 Illustration Kruskal (3)

On peut maintenant evaluer le cout du reseau a mettre en place : cest le


poids de notre arbre de recouvrement minimal. Donc si pi est le poids de larete
ui : cout total = p1 + p2 + p3 + p4 + p6 = 1 + 1 + 1 + 2 + 2 = 7.

Attention ! ! !
- Notez quun arbre de recouvrement minimal nest pas obligatoirement unique.
Dautres peuvent peser le meme poids. On va dailleurs en trouver un autre
pour notre probleme lorsquon va utiliser lalgorithme de Prim dans la section
suivante.
- Si toutes les aretes sont de poids differents, la solution est unique.

5.3.2 Algorithme de Prim


Algorithme 5.12 (Prim)
Etape 1. Commencer avec un ensemble de sommets A contenant un des som-
mets de X (au choix, par exemple x1 ) : A = {x1 }. Et commencer un T lensemble
des aretes a vide : T =
Etape 2. Calcul Q, lensemble des aretes du cocycle de A : Q = w(A).
Etape 3. Choisir dans Q une des aretes de poids minimal u.
(a) ajouter u a T.
(b) u relie un sommet xi de lensemble A a un sommet xj hors de A. Ajouter
5.3. PROBLEME DE LARBRE COUVRANT DE POIDS MINIMUM 51

xj a A.
Etape 4. Si |T| = n - 1, Stop, sinon retourner en 3.

Exemple dillustration
- Pour demarrer lexemple dillustration precedent presente dans la figure 5.7, on
va choisir dinitialiser A avec le sommet 1 :
- A = {1}
- Q = w(A) = w(1) = {u1 , u4 }
-T=

Figure 5.7 Illustration Prim (1)

- On doit choisir une arete de moindre poids dans q. Larete u4 (de poids 2) est
donc exclue. On va prendre u1 . Elle est reliee a 2 qui rentre donc dans lensemble
A (voir figure 5.8).
- T = {u1 }
- A = {1, 2}
- Q = w(A) = {u2 , u4 , u8 , u9 }

- Les trois aretes de Q ; u4 , u8 et u9 de poids respectivement 2, 3 et 4 ; sont


eligibles. On va choisir u2 . Son extremite 6 entre donc dans A (voir la figure
5.9).
- T = {u1 , u2 }
- A = {1, 2, 6}
- Q = w(A) = {u4 , u6 , u8 , u9 }

- A cette etape, exclue. deux aretes u4 et u6 (de poids 2) peuvent convenir. On


choisit u4 et on ajoute son extremite 3 dans lensemble A (voir la figure 5.10).
T = {u1 , u2 , u4 }
A = {1, 2, 3, 6}
Q = w(A) = {u6 , u7 , u8 , u9 }
52 CHAPITRE 5. ARBRE ET FORET

Figure 5.8 Illustration Prim (2)

Figure 5.9 Illustration Prim (3)


5.4. ARBORESCENCE 53

Figure 5.10 Illustration Prim (4)

- Encore une autre fois, deux aretes u2 et u7 (de poids 2) peuvent convenir. En
choisissant larete u7 , on ajoute son extremite 4 (voir la figure 5.11).
- T = {u1 , u2 , u4 , u7 }
- A = {1, 2, 3, 4, 6}
- Q = w(A) = {u3 , u5 , u6 }

- Enfin, on choisit larete u3 de poids 1 et on complete notre arbre. Le nombre


daretes vaut n - 1 et A enrichi de sommet 5 lextremite de u3 couvre maintenant
tout lensemble. Lalgorithme se termine donc ici (voir figure 5.12).
- T = {u1 , u2 , u3 , u4 , u7 }
- A = {1, 2, 3, 4, 5, 6}
- Q = w(A) =

Larbre trouve ici nest pas le meme que dans la section precedente, mais il
pese bien le meme poids (7). Aussi bien pour Kruskal que pour Prim, il y a des
choix a faire (par exemple, lorsquil y a plusieurs aretes avec le meme minimum),
et il y a donc plusieurs bonnes solutions.

5.4 Arborescence
Souvent, pour manipuler un arbre, nous particularisons un sommet du graphe
que nous appelons racine.
Dans le cas des graphes non orientes, le choix dune racine r dans larbre
est arbitraire.
54 CHAPITRE 5. ARBRE ET FORET

Figure 5.11 Illustration Prim (5)

Figure 5.12 Illustration Prim (6)


5.4. ARBORESCENCE 55

Dans le cas des graphes orientes, la racine est definie de maniere unique
comme le sommet sans predecesseur de larbre.

Le choix dune racine revient dans un certain sens a orienter larbre, la racine
apparaissant comme lancetre commun a la maniere dun arbre genealogique. Le
vocabulaire de la theorie des graphes sen inspire directement : on parle de fils,
de pere et de frere.

Definition 5.13
Une arborescence est un graphe oriente ayant un sommet r appele racine
tel que pour tout sommet s, il existe un chemin unique de r vers s.

Remarque 5.14 En particulier, le support non oriente dune arborescence


est :
- connexe,
- sans cycle.
56 CHAPITRE 5. ARBRE ET FORET

5.5 Serie 5
Exercie 5.1
Trouver tous les arbres ayant 6 sommets.

Exercice 5.2. Arbres couvrants

Montrez que :
1. Un graphe partiel dun graphe connexe G est un arbre couvrant de G si et
seulement si il est connexe et minimal avec cette propriete relativement a la
suppression daretes.
2. Un graphe partiel dun graphe connexe G est un arbre couvrant de G si
et seulement si il est acyclique et maximal avec cette propriete relativement a
lajout daretes.

Exercie 5.3

Montrer quun graphe G sans boucle est un arbre si et seulement si, pour
toute paire x, y de sommets distincts de G, il existe une et une seule chane
elementaire de x a y.

Exercie 5.4
Tout arbre dordre n (n 2) a au moins deux sommets pendants.
Idee 1 : Montrer que lorigine et la fin dune plus longue chane elementaire
dans un arbre non trivial ont degre un.
Idee 2 : Appliquer la propriete 5.1 et Lemme des poignees de mains.

Exercice 5.5. Caracterisation des arbres


Montrer quun graphe G est un arbre si et seulement si deux des trois conditions
suivantes sont verifiees :
1. G est connexe,
2. G est acyclique,
3. On a m = n - 1.

Idee : en appliquant les proprietes 3.2 et 4.2

Exercice 5.6. Caracterisations dun arbre

Pour un graphe T dordre n, il y a equivalence entre les proprietes :


1. T est un arbre
2. Tout couple de sommets est relie par une chane unique
6. T est un graphe connexe a n - 1 aretes
4. T est connexe, et la suppression de toute arete le deconnecte
5. T est acyclique a n - 1 aretes
3. T est acyclique et lajout de toute arete le rend cyclique.

Exercice 5.7. Caracterisation des arbres


Montrer par recurrence quun graphe G est un arbre dordre n a (n-1) aretes.

Exercice 5.8
5.5. SERIE 5 57

Soit G un graphe connexe. Montrer que G est un arbre si et seulement si pour


toute arete e de G, le graphe G {e} nest pas connexe.

Exercice 5.9
1. Montrer quun arbre est biparti.
2. Montrer plus generalement quun graphe est bipartite si et seulement si tous
ses cycles sont de longueur paire.
120 CHAPITRE 5. ARBRE ET FORET