You are on page 1of 8

Chapitre 3

ARBRES - COARBRES ET ARBORESCENCE

3.1 ARBRES

Dé…nition 3.1 Un arbre est un graphe connexe sans cycles.

ARBRES

Dé…nition 3.2 Une foret est un graphe sans cycles (ie: c’est un graphe où chaque
composante connexe est un arbre).

Forêt

Théorème 3.3 Soit G = (X; U ) un graphe d’ordre n 2: Les assertions suivantes


sont équivalentes et caractérisent un arbre:
ARBRES 46

i) G est connexe et sans cycles,

ii ) G est sans cycle avec n 1 arcs,

iii ) G est connexe avec n 1 arcs,

iv ) G est sans cycle et en ajoutant un arc on crée un cycle et un seul,

v ) G est connexe et si on supprime un arc quelconque il n’est plus connexe,

vi ) Tout couple de sommets est relié par une chaîn et une seule.

Preuve. En Exercice.

Théorème 3.4 Tout arbre d’ordre n 2 admet au moins deux sommets pendants.

Preuve. En Exercice

Théorème 3.5 Un graphe G = (X; U ) admet un graphe partiel qui soit un arbre si et
ssi il est connexe.

Preuve. CN: Si G n’est pas connexe, alors tout graphe partiel de G n’est pas
connexe. Donc G n’admet pas d’arbres cpmme graphe partiel.
CS: Si G est connexe, cherchons s’il existe un arc dont la suppression ne décon-
necte pas le graphe.
- Si un tel arc n’existe pas, G est un arbre en vertu de la propriété v) du
Théorème 3.3.
- Si un tel arc existe, on le supprimera et on cherchera un nouvel arc à éliminer.
Dès qu’on ne pourra plus supprimer d’arcs, on aura un arbre dont l’ensemble
des sommets est précisement X.

Remarque 3.6 De ce théorème, on en déduit un algorithme simple pour construire


un arbre maximal (appelé aussi arbre couvrant) H dans un graphe connexe G.
ARBRES 47

2 4

1 6

3 5

Théorème 3.7 Soit G un graphe connexe, H un arbre maximal de G. Si ui est un


arc de G ne …gurant pas dans H, son adjonction à H détermine un cycle et un
seul (d’après propriété iv), et les di¤érents cycles i constituent une base de cycles
indépendants (appelée base de cycles associée à l’arbre H).

Preuve. Les cycles i sont indépendants car chacun d’eux contient un arc que
les autres ne contiennent pas. D’autre part, le nombre de cycles créés est égal au nombre
d’arcs de G moins le nombre d’arcs de H ie: m (n 1) = m n + p = (G) :nombre
cyclomatique de G. Donc les cycles i forment une base de cycles de G.

Remarque 3.8 Ce Théorème nous donne un algorithme simple pour construire une
base de cycles d’un graphe G connexe. Si G n’est pas connexe, on traitera séparement
chacune de ses composantes connexes.

Exemple 3.9 Déterminer la base de cycles associée à l’arbre H (en gras) du graphe
suivant:

U7
1 2

U1 U11
U9

U2
5 U4
6

U8 U10

U5
U3
4 3

U6
COARBRES 48

3.2 COARBRES

Dé…nition 3.10 Soit G = (X; U ) un graphe. Un coarbre de G est un graphe partiel


K = (X; W ) de G qui ne contient pas de cocycle élémentaire de G, et si on ajoute un
arc u 2 U nW , le graphe G0 = (X; W [ fug) contient un unique cocycle élémentaire de
G.

1 2

4 3

Théorème 3.11 Soit G = (X; U ) un graphe et (V; W ) une partition de U en deux


classes: V [ W = U , V \ W = : Une CNS pour que (X; W ) soit un coarbre est que
(X; V ) soit un arbre.

Théorème 3.12 Soit G = (X; U ) un graphe connexe, F = (X; W ) un coarbre. Si ui


est un arc de G ne …gurant pas dans F , son adjonction à F détermine un seul cocycle
i
, et les di¤érents cocycles i constituent une base de cocycles indépendants.

Remarque 3.13 Ce Théorème donne un algorithme simple pour construire une base
de cocycles d’un graphe connexe G.

Exemple 3.14 Déterminer en reprenant l’exemple 3.9, une base de cocycles.

3.3 PROOBLEME DE L’ARBRE COUVRANT DE POIDS MINIMUM

3.3.1 Introduction
Etant donné un graphe G = (X; U ) connexe et une application p : U ! R où p(u)
est le poids de l’arc u:
PROOBLEME DE L’ARBRE COUVRANT DE POIDS MINIMUM 49

Soit G0 = (X; U 0 ) un graphe partiel de G, on dé…nit le poids de G0 par:


X
p(G0 ) = p(u):
u2U 0

Le problème de l’arbre couvrant de poids minimum consiste à trouver un graphe


partiel T = (X; B) de G qui soit un arbre tel que:

p(T ) = M in fp(T 0 ), T 0 arbre de Gg

(ie: p(T 0 ) est minimal parmi les poids de tous les arbres couvrants possibles de
G):

Remarque 3.15 On montre facilement que si touts les arcs (arêtes) sont de poids
di¤érents, l’arbre couvrant de poids minimum est unique.

Ce problème possède de nombreuses applications pratiques (connexions éléc-


triques, réseaux téléphoniques, etc..) et plusieurs algorithmes sont proposés pour le
résoudre, les plus simples étant ceux de Kruskal et de Prim.

3.3.2 Algorithme de Kruskal

L’Algorithme de Kruskal est un algorithme "glouton" permettant de construire un


arbre couvrant de poids minimum:

Algorithm 1 (Kruskal)

1. Les arcs sont numérotés dans l’ordre croissant des poids:

p(u1 ) p(u2 ) ::: p(un ):

Poser B = ; i = 1; aller en (2).

2. - Si (X; B [ fui g) contient un cycle, aller en (3).

- Sinon, poser B = B [ fui g; aller en (3).

3. - Si i = m, terminé.

- Sinon, poser i = i + 1, aller en (2).


PROOBLEME DE L’ARBRE COUVRANT DE POIDS MINIMUM 50

Exemple 3.16 Appliquer l’algorithme au graphe suivant:

-3 2
-1
2

5 3

-1 1
-4 0

Remarque 3.17 L’algorithme de Kruskal est remarquable par sa simplicité. Chaque


arc est examiné une seule fois. Par contre, son implémentation est plus compliquée car
on doit d’abord trier la liste des arêtes puis tester si aucun cycle n’est créé à chaque
étape, ce qui peut donner lieu à des calculs trés longs.

3.3.3 Algorithme de Prim


L’algorithme de Prim consiste à bâtir progressivement un arbre à partir d’un sommet
quelconque et en y gre¤ant, à chaque étape, l’arête de poids minimal parmi celles qui
permettent de maintenir un graphe partiel qui soit un arbre.

Dé…nition 3.18 (Contrction d’arc) Soit u = xy un arc de G = (X; U ): On note par


Cu (G) le graphe obtenu à partir de G en identi…ant x et y (on remplace les extrémités
x et y de u par un sommet unique xy).
ARBORESCEBNCE 51

12
1 2

4
3 4 3

Théorème 3.19 Soit G = (X; U ) un graphe et u = xy 2 U: Une CNS pour que G soit
un arbre est que Cu (G) soit un arbre.

Algorithm 2 (PRIM)

1. Pose B = , G = (X; U ) graphe connexe,

2. - Si G ne comporte qu’un sommet, terminé (X; B) est un arbre couvrant de poids


minimum.

- Sinon, soit x un sommet de G et u un arc tel que: p(u) = M in p(e):


e2!(x)
Poser B = B [ fug; G = Cu (G), aller en (1).

Exemple 3.20 Appliquer l’algotithme au graphe de l’exemple 3.16.

3.4 ARBORESCEBNCE

Dé…nition 3.21 Soit G = (X; U ) un graphe, le sommet r 2 X est dit racine de G si


8x 2 X; il existe un chemin de r à x:

Remarque 3.22 Si G est un graphe fortement connexe, alors tout sommet est racine.

Dé…nition 3.23 Une arborescence A = (X; T ) est un arbre muni d’une racine.
ARBORESCEBNCE 52

Théorème 3.24 Soit G = (X; U ) un graphe d’ordre n 2: Les propriétés suivantes


sont équivalentes et caractérisent une arbrorescence de racine r:

i) G est un arbre admettant le sommet r comme racine.

ii) 8x 2 X, il existe un chemin unique dans G joignant r à x.

iii) G admet r comme racine et est minimal pour cette propriété (si on supprime un
arc, r n’est plus une racine).

iv) G est connexe et de plus dG (r) = 0 et dG (x) = 1; 8x 6= r:

v) G est sans cycle et de plus dG (r) = 0 et dG (x) = 1; 8x 6= r:

vi) G admet r comme racine et est sans cycle.

vii) G admet r comme racine et possède n 1 arcs.

Preuve. (triviale).

FIN du Chapitre 3.