Fondamentaux

Les Arbres en Théorie des Graphes

Un arbre possède sept définitions équivalentes, et c'est exactement pour cela qu'il est le cas particulier le plus utile de la discipline : sept définitions, ce sont sept façons de démontrer des choses. Ce guide passe en revue le théorème d'équivalence et sa démonstration, le lemme des feuilles qui porte toute récurrence, le nombre d'arbres qui existent, et la manière de trouver le centre et le diamètre d'un arbre en temps linéaire.

24 Min de lecture Mis à jour : Septembre 2026 Niveau Débutant
Mohammed Islam Hadjoudj
Mohammed Islam Hadjoudj
Expert Operations Research Engineer

1. Un arbre a sept définitions, et elles disent toutes la même chose

Demandez à trois personnes de définir un arbre et vous obtiendrez trois réponses. La première dit que c'est un graphe connexe sans cycle. La deuxième, que c'est un graphe avec exactement un chemin entre deux sommets quelconques. La troisième, que c'est un graphe connexe avec n - 1 arêtes. Les trois ont raison, tout comme quatre autres définitions, parce que ces conditions sont équivalentes : tout graphe qui en vérifie une les vérifie toutes.

C'est inhabituel, et c'est la raison pour laquelle les arbres sont le cas particulier le plus utile de la discipline. Une structure dotée de sept caractérisations équivalentes offre sept façons différentes de démontrer quelque chose à son sujet, et en pratique on choisit celle qui rend la démonstration la plus courte.

Partons de la définition standard, celle de Diestel et de Bondy et Murty :

Un arbre est un graphe connexe acyclique. Un graphe dont toutes les composantes sont des arbres est une forêt. Un sommet de degré 1 dans un arbre est une feuille.

Tout ce qui suit concerne un graphe fini, simpleet non orienté , ce qui est le cadre standard. De toute façon, un arbre ne peut avoir ni boucle ni arête parallèle, puisque l'une comme l'autre forme un cycle.

Un arbre sur huit sommets étiquetés. Le sommet 3 est relié aux sommets 1, 2 et 4 ; le sommet 4 à 3 et 5 ; le sommet 5 à 4, 6 et 7 ; le sommet 7 à 5 et 8. Les feuilles 1, 2, 6 et 8 sont marquées en vert, les sommets internes 3, 4, 5 et 7 en bleu, et chaque sommet est annoté de son degré. Un panneau indique huit sommets, sept arêtes, une somme des degrés de quatorze et quatre feuilles.
L'exemple récurrent de tout l'article : huit sommets, sept arêtes, quatre feuilles. Chaque affirmation ci-dessous est vérifiée sur cet arbre.

Écrit en entier, l'exemple récurrent est

V = {1, 2, 3, 4, 5, 6, 7, 8}
E = { {1,3}, {2,3}, {3,4}, {4,5}, {5,6}, {5,7}, {7,8} }

degrés    1:1   2:1   3:3   4:2   5:3   6:1   7:2   8:1
n = 8     m = 7 = n - 1      somme des degrés = 14 = 2m      feuilles : 1, 2, 6, 8

2. Le théorème d'équivalence et le fonctionnement de sa démonstration

Voici le résultat complet. Il figure pour l'essentiel sous cette forme chez West, chez Bondy et Murty et chez Diestel, et il vaut la peine de le retenir, car chaque ligne est un outil.

Théorème. Pour un graphe G à n sommets, les propositions suivantes sont équivalentes :
(1) G est un arbre, c'est-à-dire connexe et acyclique.
(2) Deux sommets quelconques de G sont reliés par exactement un chemin.
(3) G est connexe et possède n - 1 arêtes.
(4) G est acyclique et possède n - 1 arêtes.
(5) G est connexe, et la suppression de n'importe quelle arête le déconnecte (minimalement connexe).
(6) G est acyclique, et l'ajout de n'importe quelle arête crée un cycle (maximalement acyclique).
(7) G est connexe et chaque arête est un pont.

La démonstration n'est pas un argument unique mais un cycle d'implications, chacune brève. Il vaut la peine d'en voir la forme, car elle explique pourquoi les conditions semblent si différentes les unes des autres tout en décrivant le même objet.

ÉtapePourquoi elle est vraie
(1) → (2)La connexité donne au moins un chemin. Si deux chemins distincts reliaient la même paire, leur réunion contiendrait un cycle, ce qui contredit l'acyclicité.
(2) → (5)Un chemin entre chaque paire signifie connexe. Supprimer l'arête {u, v} détruit l'unique chemin de u à v, donc le graphe se sépare.
(5) → (1)S'il existait un cycle, n'importe laquelle de ses arêtes pourrait être supprimée sans déconnecter le graphe, puisque le reste du cycle relie toujours ses extrémités. Il n'y a donc pas de cycle.
(1) → (3)Récurrence sur n. Un arbre a une feuille (section 3) ; supprimez-la et vous obtenez un arbre à n - 1 sommets, qui par récurrence a n - 2 arêtes. Remettez la feuille et vous obtenez n - 1.
(3) → (4)Supposons que G soit connexe avec n - 1 arêtes et possède pourtant un cycle. Supprimez une arête de ce cycle : le graphe reste connexe, mais n'a plus que n - 2 arêtes, alors qu'un graphe connexe à n sommets en demande au moins n - 1. La contradiction exclut le cycle.
(4) → (1)Un graphe acyclique à k composantes et n sommets possède exactement n - k arêtes (section 4). Avec n - 1 arêtes, k = 1, il est donc connexe.
(1) ↔ (6)Ajouter {u, v} à un arbre referme en cycle l'unique chemin existant de u à v . Réciproquement, l'acyclicité maximale force la connexité, puisque deux sommets de composantes différentes pourraient être reliés sans créer de cycle.

Deux d'entre elles méritent d'être soulignées, car ce sont celles qu'on utilise vraiment.

« Connexe avec n - 1 arêtes » est le test le moins coûteux. Compter les arêtes coûte O(m) et vérifier la connexité coûte O(n + m), on peut donc décider en temps linéaire si un graphe est un arbre sans jamais chercher de cycle. Notez qu'aucune des deux moitiés ne suffit seule : un triangle plus un sommet isolé a 4 sommets et 3 arêtes mais n'est pas un arbre, pas plus qu'un 4-cycle, connexe avec 4 arêtes.

« Minimalement connexe » et « maximalement acyclique » sont le même objet vu sous deux angles. Un arbre se situe exactement sur la frontière : il a aussi peu d'arêtes que la connexité le permet et autant que l'acyclicité le permet. C'est pourquoi les arbres apparaissent dès qu'un problème demande la structure de connexion la moins coûteuse, ce qui est précisément le problème de l'arbre couvrant de poids minimum .

Les sept conditions sont vraies sur l'exemple récurrent, et chacune a été vérifiée directement : il est connexe, acyclique, a 7 arêtes pour 8 sommets, possède exactement un chemin entre chacune des 28 paires de sommets, chacune de ses 7 arêtes est un pont, et chacune des 21 arêtes absentes ferme un cycle quand on l'ajoute.

3. Le lemme des feuilles

Un petit résultat porte la plupart des démonstrations par récurrence de la discipline.

Lemme des feuilles. Tout arbre fini ayant au moins deux sommets possède au moins deux feuilles.

La démonstration est appréciée car elle n'utilise rien d'autre que la définition. Prenez un plus long chemin P dans l'arbre, disons de u à v. Un tel chemin existe car l'arbre est fini. Considérez maintenant u. Si u avait un voisin w hors de P, alors P pourrait être prolongé par cette arête, ce qui contredit sa maximalité. Si u avait un second voisin sur P, cela fermerait un cycle, ce qui contredit l'acyclicité. Donc u a exactement un voisin et est une feuille, et le même argument s'applique à v.

Deux conséquences en découlent aussitôt, et toutes deux servent constamment :

L'exemple récurrent a quatre feuilles, 1, 2, 6 et 8, confortablement plus que les deux garanties. Une vérification de bon sens utile pour déboguer du code sur les arbres : si votre structure prétend être un arbre et signale moins de deux feuilles, quelque chose cloche, et le coupable habituel est un cycle accidentel.

Le lemme est aussi exactement ce qui échoue sur les graphes infinis. Le chemin infini dans un seul sens a une seule feuille et le chemin infini dans les deux sens n'en a aucune, l'une des illustrations les plus nettes de ce qu'apporte la finitude, traitée dans le guide sur les graphes finis et infinis.

4. Les forêts, et compter les composantes gratuitement

Une forêt est un graphe acyclique, connexe ou non. Chaque composante d'une forêt est un arbre, ce qui donne une identité de comptage à connaître par cœur :

Une forêt à n sommets et k composantes possède exactement n - k arêtes.

La démonstration tient en une ligne : chaque composante est un arbre, donc une composante à ni sommets apporte ni - 1 arêtes, et la somme sur les k composantes donne n - k. En posant k = 1 , on retrouve le cas de l'arbre.

Lue à l'envers, l'identité devient un outil plutôt qu'un fait :

k = n - m        le nombre de composantes d'une forêt,
                 calculé à partir de sa seule taille, sans aucun parcours

C'est réellement utile. Si vous savez qu'un graphe est acyclique, compter ses sommets et ses arêtes vous dit en combien de morceaux il se trouve, sans lancer de recherche. C'est aussi l'identité derrière l'invariant standard de la structure union-find : chaque union réussie fusionne deux composantes et ajoute une arête, donc le compteur courant n - (unions effectuées) est à tout instant le nombre de composantes.

Une mise en garde. L'identité suppose l'acyclicité. Pour un graphe quelconque, on a toujours m ≥ n - k , avec égalité exactement lorsque le graphe est une forêt, donc un graphe ayant plus de n - k arêtes contient nécessairement un cycle. Cette inégalité est le moyen le plus rapide de prouver qu'un graphe a un cycle sans le trouver : si m ≥ n, il y a un cycle quelque part.

5. Les arbres couvrants

Un arbre couvrant d'un graphe connexe G est un sous-graphe qui est un arbre et contient tous les sommets de G. C'est le squelette minimal qui maintient le graphe d'un seul tenant.

Tout graphe fini connexe en possède un, et la démonstration constructive mérite d'être connue car c'est aussi un algorithme : tant qu'un cycle existe, supprimez l'une de ses arêtes. Supprimer une arête d'un cycle ne peut pas déconnecter le graphe, puisque le reste du cycle relie toujours ses extrémités, et le procédé s'arrête car chaque étape retire une arête. Ce qui reste est connexe et acyclique. De façon équivalente, et plus pratique, l'arbre des arêtes de découverte produit par tout parcours BFS ou DFS est déjà un arbre couvrant, obtenu en O(n + m).

Trois faits sur les arbres couvrants qui reviennent sans cesse :

Pour les graphes infinis, l'énoncé « tout graphe connexe possède un arbre couvrant » reste vrai, mais il nécessite l'axiome du choix, auquel il est d'ailleurs équivalent. Cette frontière est discutée dans le guide sur les graphes finis et infinis .

6. Compter les arbres étiquetés : la formule de Cayley

Combien d'arbres différents peut-on construire sur un ensemble fixé de n sommets étiquetés ? La réponse est l'un des résultats les plus cités de la combinatoire, publié par Arthur Cayley en 1889.

Formule de Cayley. Le nombre d'arbres étiquetés à n sommets est nn-2.

Les premières valeurs croissent vite, et il vaut la peine de les voir car les plus petites se vérifient à la main :

nnn-2Vérification
21L'unique arête, rien d'autre n'est possible
33Un chemin à 3 sommets, une fois pour chaque choix du sommet central
416Vérifié par énumération exhaustive de tous les sous-ensembles d'arêtes
5125Vérifié de la même manière
61296Déjà hors de portée d'une vérification à la main

Les valeurs pour n = 4 et n = 5 ci-dessus ne sont pas tirées d'un livre ; elles ont été obtenues en énumérant tous les sous-ensembles de n - 1 arêtes parmi les C(n, 2) candidates et en gardant les connexes, ce qui donne exactement 16 et 125.

Un mot sur le sens de « étiqueté », car la distinction est tout l'objet de la section 9. Cayley compte les arbres dont les sommets sont distinguables, donc le chemin 1 - 2 - 3 et le chemin 2 - 1 - 3 sont des arbres différents bien qu'ils aient la même forme. Retirez les étiquettes et il n'existe qu'une seule forme d'arbre à trois sommets.

Il existe plusieurs démonstrations de la formule, dont un argument de double comptage sur les forêts enracinées et un argument par déterminant via le théorème matrice-arbre. La plus éclairante est une bijection, et elle est assez courte pour être déroulée entièrement.

7. La bijection de Prüfer, déroulée de bout en bout

Heinz Prüfer a donné en 1918 une démonstration de la formule de Cayley en construisant une bijection explicite entre les arbres étiquetés à n sommets et les suites de longueur n - 2 à valeurs dans {1, …, n}. Comme il existe exactement nn-2 telles suites, la formule en découle immédiatement.

L'arbre d'exemple à huit sommets à côté d'un tableau de codage en six étapes. À chaque étape, la plus petite feuille restante est retirée et son voisin est noté : la feuille 1 donne 3, la feuille 2 donne 3, la feuille 3 donne 4, la feuille 4 donne 5, la feuille 6 donne 5, la feuille 5 donne 7, ce qui laisse la suite de Prüfer 3, 3, 4, 5, 5, 7. Une note indique que chaque sommet apparaît une fois de moins que son degré.
Le codage retire à répétition la plus petite feuille et note son voisin. Six retraits ramènent huit sommets à deux, et c'est pourquoi la suite a pour longueur n moins 2.

Codage. Tant qu'il reste plus de deux sommets, trouvez la feuille de plus petite étiquette, notez l'étiquette de son unique voisin et supprimez la feuille. Arrêtez-vous quand il reste deux sommets. Sur l'exemple récurrent, cela donne, étape par étape :

retirer la feuille 1  →  noter 3      restants : 2,3,4,5,6,7,8
retirer la feuille 2  →  noter 3      restants : 3,4,5,6,7,8
retirer la feuille 3  →  noter 4      restants : 4,5,6,7,8
retirer la feuille 4  →  noter 5      restants : 5,6,7,8
retirer la feuille 6  →  noter 5      restants : 5,7,8
retirer la feuille 5  →  noter 7      restants : 7,8

suite de Prüfer :  (3, 3, 4, 5, 5, 7)        longueur 6 = n - 2

Décodage. L'inverse applique la même idée à rebours. Donnez à chaque sommet un compteur égal à un plus son nombre d'apparitions dans la suite, ce qui sera son degré. Prenez ensuite à répétition le plus petit sommet non encore utilisé dont le compteur vaut 1, reliez-le à la première entrée restante de la suite et décrémentez les deux compteurs. Quand la suite est épuisée, reliez les deux sommets dont le compteur vaut encore 1. Appliqué à (3, 3, 4, 5, 5, 7) , ce procédé redonne exactement l'ensemble d'arêtes d'origine, et c'est ce qui fait de la correspondance une bijection et non un simple résumé.

La propriété la plus utile du codage est la suivante :

Le sommet v apparaît dans la suite de Prüfer exactement deg(v) - 1 fois. En particulier, les feuilles sont précisément les étiquettes qui n'apparaissent jamais.

Vérifiez-le sur l'exemple récurrent. Le sommet 3 est de degré 3 et apparaît deux fois ; le sommet 5 est de degré 3 et apparaît deux fois ; les sommets 4 et 7 sont de degré 2 et apparaissent une fois chacun ; et les feuilles 1, 2, 6 et 8 n'apparaissent pas du tout. Cette correspondance transforme les questions sur les suites de degrés en questions sur la fréquence des symboles dans une chaîne, et c'est pourquoi les suites de Prüfer sont l'outil standard pour compter les arbres à degrés prescrits et pour tirer un arbre étiqueté uniformément au hasard : générez une suite aléatoire de longueur n - 2 et décodez-la.

8. Le théorème matrice-arbre

La formule de Cayley compte les arbres couvrants du graphe complet. Le théorème matrice-arbre de Kirchhoff, antérieur de quatre décennies et issu de ses travaux sur les réseaux électriques en 1847, compte les arbres couvrants de n'importe quel graphe.

Construisez la matrice laplacienne du graphe L = D - A, où D est la matrice diagonale des degrés et A la matrice d'adjacence. Alors :

Théorème matrice-arbre. Supprimez une ligne quelconque et la colonne correspondante de L. Le déterminant de la matrice (n-1) × (n-1) restante est le nombre d'arbres couvrants du graphe. Le choix de la ligne et de la colonne supprimées n'a aucune importance.

Trois calculs rendent le théorème concret, et tous trois ont été effectués plutôt que cités :

GrapheArbres couvrantsVérification croisée
K4, le graphe complet à 4 sommets16Concorde avec Cayley : 44-2 = 16
C4, le 4-cycle4Supprimez l'une quelconque des 4 arêtes et il reste un arbre couvrant
L'arbre de l'exemple récurrent1Un arbre est son propre et unique arbre couvrant

Le cas du cycle est celui à garder comme intuition : un cycle à k sommets possède exactement k arbres couvrants, un pour chaque arête que l'on choisit de retirer. Le théorème explique aussi une remarque du guide sur les multigraphes : les arêtes parallèles changent réellement le nombre d'arbres couvrants, car elles entrent dans le laplacien comme multiplicités hors diagonale, si bien que deux sommets reliés par deux arêtes parallèles ont deux arbres couvrants au lieu d'un.

9. Les arbres non étiquetés : une question bien plus difficile

La formule de Cayley est nette parce que les étiquettes rendent les arbres faciles à distinguer. Demandez plutôt combien d'arbres il existe à isomorphisme près, c'est-à-dire combien de formes distinctes existent, et le problème devient réellement difficile.

nArbres étiquetés (nn-2)Arbres non étiquetés
111
211
331
4162
51253
612966
71680711

Les deux colonnes racontent des histoires complètement différentes. Le nombre étiqueté a une forme close d'une ligne ; le nombre non étiqueté n'en a aucune. On ne connaît aucune formule pour le nombre d'arbres à n sommets à isomorphisme près, seulement un traitement par séries génératrices et un résultat asymptotique dû à Richard Otter en 1948, qui montre que ce nombre croît comme C · αn n-5/2 pour des constantes calculées numériquement.

La raison de cet écart est la symétrie. Diviser le nombre étiqueté par n! ne serait correct que si chaque arbre avait un groupe d'automorphismes trivial, et la plupart n'en ont pas : un chemin peut être retourné, les feuilles d'une étoile peuvent être permutées arbitrairement, et chaque symétrie fait que plusieurs étiquetages se confondent en une même forme. Compter les orbites sous le groupe symétrique est précisément la partie difficile, et c'est pourquoi le problème exige la machinerie d'énumération de Pólya plutôt qu'une formule.

Pour qui programme, la forme pratique de cette distinction est le test d'isomorphisme d'arbres : décider si deux arbres ont la même forme. Contrairement à l'isomorphisme de graphes en général, cela se résout en temps linéaire, en hachant canoniquement chaque sous-arbre de bas en haut à partir des feuilles et en comparant les résultats au centre. Que le problème général soit difficile alors que le cas des arbres est facile est une illustration de plus du motif qui traverse tout cet article.

10. Centre, rayon et diamètre

On appelle excentricité d'un sommet sa plus grande distance à tout autre sommet. Le rayon est la plus petite excentricité du graphe, le diamètre la plus grande, et le centre est l'ensemble des sommets qui atteignent le rayon. Pour les arbres, ces notions se comportent de façon remarquablement nette, comme l'a établi Camille Jordan en 1869.

Théorème de Jordan. Le centre d'un arbre est formé soit d'un sommet, soit de deux sommets adjacents.

Jamais trois, jamais deux sommets non adjacents. Comparez avec un cycle, où tous les sommets sont au centre, et la netteté du cas des arbres apparaît clairement.

L'arbre d'exemple à huit sommets présenté en trois étapes d'effeuillage. La première étape retire les feuilles 1, 2, 6 et 8. La deuxième retire les nouvelles feuilles 3 et 7. Il reste la paire 4 et 5, adjacents, qui forment le centre. Un panneau latéral liste toutes les excentricités : les sommets 1, 2 et 8 ont une excentricité de 5, les sommets 3, 6 et 7 de 4, et les sommets 4 et 5 de 3, donc le rayon vaut 3 et le diamètre 5.
Retirez les feuilles, puis les nouvelles feuilles, et continuez. Ce qui survit est le centre, qui pour cet arbre est la paire adjacente 4 et 5.

La démonstration fait aussi office d'algorithme. Supprimez à répétition toutes les feuilles courantes simultanément. Chaque tour diminue de exactement 1 l'excentricité de chaque sommet restant, il préserve donc les sommets minimaux, et le procédé s'arrête avec un ou deux sommets. Sur l'exemple récurrent :

départ                   1 2 3 4 5 6 7 8
retirer les feuilles 1, 2, 6, 8   →   restants  3 4 5 7
retirer les feuilles 3, 7         →   restants  4 5      ← le centre

excentricités   1:5  2:5  3:4  4:3  5:3  6:4  7:4  8:5
rayon 3     diamètre 5     centre {4, 5}, adjacents comme l'exige Jordan

Le résultat de l'effeuillage a été confronté à un calcul direct des huit excentricités, et les deux concordent exactement : les sommets d'excentricité minimale sont précisément 4 et 5. L'algorithme s'exécute en O(n), c'est pourquoi il est la manière standard d'enraciner un arbre « au milieu », par exemple avant le hachage canonique d'un test d'isomorphisme.

Une identité supplémentaire est vraie dans les arbres et mérite d'être retenue :

rayon = ⌈diamètre / 2⌉        ici : 3 = ⌈5 / 2⌉

Elle découle du fait que le diamètre d'un arbre est réalisé par un chemin unique, et que le centre se trouve au milieu de ce chemin. Dans un graphe quelconque, seule l'inégalité plus faible radius ≤ diameter ≤ 2 · radius est vraie.

11. Les distances dans les arbres et l'astuce du double BFS

Comme il existe exactement un chemin entre deux sommets quelconques, la distance dans un arbre est plus simple que dans toute autre classe de graphes. Il n'y a rien à optimiser : l'unique chemin est le plus court chemin, donc ni poids, ni file de priorité, ni Dijkstra ne sont nécessaires pour le trouver.

Cette unicité donne un algorithme élégant et très utilisé pour le diamètre :

Double BFS. Lancez un parcours en largeur depuis un sommet quelconque et soit a un sommet le plus éloigné trouvé. Lancez un second parcours depuis a et soit b un sommet le plus éloigné de celui-ci. Alors le chemin de a à b est un diamètre, et dist(a, b) est la longueur du diamètre.

Deux passes linéaires, pas de poids, pas d'astuce. Sur l'exemple récurrent, en partant du sommet 1, le parcours atteint le sommet 8 comme sommet le plus éloigné, et un second parcours depuis 8 renvoie le sommet 1 à distance 5, ce qui correspond au vrai diamètre calculé comme le maximum de toutes les excentricités.

La raison pour laquelle cela marche mérite d'être énoncée, car l'astuce échoue sur les graphes quelconques et on la transpose pourtant. L'affirmation clé est qu'un sommet le plus éloigné depuis n'importe quel point de départ est toujours une extrémité d'un diamètre. Dans un arbre, c'est vrai parce que les chemins uniques forcent le sommet le plus éloigné à se trouver au bout du plus long chemin ; dans un graphe avec cycles, l'affirmation est tout simplement fausse, et la méthode en deux passes peut sous-estimer. Sur un graphe quelconque, calculer le diamètre exige les distances entre toutes les paires.

D'autres faits sur les distances qui sont vrais dans les arbres et, en général, nulle part ailleurs :

12. Arbres libres, enracinés et ordonnés

Tout ce qui précède portait sur les arbres libres : des graphes connexes acycliques sans sommet distingué et sans ordre entre les voisins d'un sommet. L'informatique travaille presque toujours avec quelque chose de plus structuré, et l'ouvrage de Knuth, The Art of Computer Programming , distingue soigneusement les trois niveaux, car les dénombrements diffèrent à chacun d'eux.

ObjetStructure supplémentaireNombre d'exemples à 3 nœuds
Arbre libreAucune. Simplement un graphe connexe acyclique1 forme
Arbre enracinéUn sommet est désigné comme racine, ce qui oriente chaque arête en s'éloignant d'elle2 formes : un chemin enraciné à une extrémité ou au milieu
Arbre ordonnéLes enfants de chaque nœud ont un ordre de gauche à droite2 formes, et la distinction se fait sentir à partir de 4 nœuds

Enraciner ne modifie pas le graphe, cela modifie la question. L'ensemble d'arêtes sous-jacent est identique ; ce qu'apporte une racine, c'est une orientation, et avec elle tout le vocabulaire de parent, enfant, ancêtre, descendant, profondeur et hauteur, que le guide complémentaire sur les arbres enracinés traite en détail avec les parcours standard.

La différence de dénombrement est la façon la plus nette de voir qu'il s'agit vraiment d'objets différents. Les arbres binaires ordonnés à n nœuds sont comptés par les nombres de Catalan, qui donnent 1, 1, 2, 5, 14, 42 pour n = 0 à 5, alors que les arbres libres ayant le même nombre de sommets sont bien moins nombreux. Chaque élément de structure supplémentaire que l'on impose multiplie le nombre d'objets distincts.

Une remarque pratique qui découle de la section 10 : quand un algorithme a besoin d'une racine et qu'aucune n'est fournie, enraciner au centre est généralement le bon choix par défaut. Cela minimise la hauteur, qui borne la profondeur de toute récursion exécutée sur l'arbre.

13. Où les arbres apparaissent en informatique

Les arbres sont la structure la plus courante en informatique qui soit réellement un graphe, et il vaut la peine de distinguer les cas où l'arbre constitue les données de ceux où il est un certificat produit par un algorithme.

Les arbres comme données. La hiérarchie est l'essentiel :

Les arbres comme certificats. Ici, l'arbre est la sortie d'un algorithme et encode une preuve :

Une précision s'impose, car la terminologie induit en erreur : l'historique des commits Git n'est pas un arbre. Un commit de fusion a deux parents, donc l'historique est un graphe orienté acyclique. Les objets « tree » de Git sont tout autre chose, à savoir les instantanés de répertoires. La différence entre un DAG et un arbre est précisément qu'un arbre possède un chemin unique entre deux nœuds quelconques, et une fusion détruit cela.

14. Erreurs courantes

15. Glossaire

TermeSignification
ArbreUn graphe connexe acyclique ; de façon équivalente, n'importe laquelle des sept conditions de la section 2
ForêtUn graphe acyclique ; chaque composante est un arbre. Avec n sommets et k composantes, elle possède n - k arêtes
FeuilleUn sommet de degré 1. Tout arbre fini ayant au moins 2 sommets en a au moins 2
Arbre couvrantUn sous-graphe qui est un arbre et touche tous les sommets du graphe hôte
PontUne arête dont la suppression déconnecte le graphe. Dans un arbre, toute arête en est un
ExcentricitéLa plus grande distance d'un sommet à tout autre
Rayon, diamètreL'excentricité minimale et maximale. Dans un arbre, rayon = ⌈diamètre / 2⌉
CentreLes sommets d'excentricité minimale. Dans un arbre, un sommet ou deux sommets adjacents
Formule de CayleyIl existe nn-2 arbres étiquetés à n sommets
Suite de PrüferUn codage de longueur n - 2 d'un arbre étiqueté ; le sommet v apparaît deg(v) - 1 fois
LaplacienL = D - A ; tout cofacteur compte les arbres couvrants du graphe
Arbre libre et arbre enracinéUn arbre libre n'a pas de sommet distingué ; enraciner ajoute une racine et oriente chaque arête en s'éloignant d'elle

16. Questions fréquentes

Qu'est-ce qu'un arbre en théorie des graphes ?

Un graphe connexe sans cycle. Six autres conditions décrivent exactement le même objet : exactement un chemin entre chaque paire de sommets ; connexe avec n-1 arêtes ; acyclique avec n-1 arêtes ; minimalement connexe, la suppression de n'importe quelle arête le déconnecte donc ; maximalement acyclique, l'ajout de n'importe quelle arête crée donc un cycle ; et connexe avec chaque arête un pont. N'importe laquelle peut servir de définition, et c'est pourquoi il est si commode de démontrer des choses sur les arbres.

Pourquoi un arbre a-t-il exactement n - 1 arêtes ?

Par récurrence, en utilisant le fait que tout arbre fini ayant au moins deux sommets possède une feuille. Supprimez une feuille et son unique arête : ce qui reste est toujours connexe et acyclique, donc c'est un arbre à n-1 sommets, qui par récurrence a n-2 arêtes. Remettre la feuille donne n-1. Le même comptage s'étend aux forêts : une forêt à n sommets et k composantes possède exactement n-k arêtes, donc le nombre de composantes se lit comme n moins le nombre d'arêtes.

Combien existe-t-il d'arbres à n sommets ?

Cela dépend de l'étiquetage des sommets. Avec étiquettes, la formule de Cayley de 1889 donne exactement n puissance n-2 : cela fait 16 arbres à 4 sommets et 125 à 5. Sans étiquettes, en comptant les formes distinctes, il n'existe aucune formule close : les nombres valent 1, 1, 1, 2, 3, 6, 11 pour n = 1 à 7, et seul un résultat asymptotique dû à Otter en 1948 est connu. L'écart existe parce que les arbres ont des symétries, si bien que de nombreux étiquetages se confondent en une même forme.

À quoi sert une suite de Prüfer ?

C'est une bijection entre les arbres étiquetés à n sommets et les suites de longueur n-2 sur les étiquettes, ce qui démontre immédiatement la formule de Cayley puisqu'il existe n puissance n-2 telles suites. Elle est aussi pratique : comme un sommet apparaît exactement deg(v)-1 fois dans la suite, les questions sur les suites de degrés deviennent des questions de fréquence de symboles, et l'on peut tirer un arbre étiqueté uniformément au hasard en générant simplement une suite aléatoire puis en la décodant.

Comment trouver le centre ou le diamètre d'un arbre ?

Pour le centre, supprimez à répétition toutes les feuilles courantes à la fois jusqu'à ce qu'il reste un ou deux sommets ; ce sont le centre, et Jordan a démontré en 1869 que le centre d'un arbre est toujours un sommet ou deux sommets adjacents. Pour le diamètre, lancez un parcours en largeur depuis un sommet quelconque, prenez un sommet le plus éloigné trouvé, et lancez un second parcours depuis celui-ci : la plus grande distance de la seconde passe est le diamètre. Les deux sont en temps linéaire. L'astuce du double parcours n'est valable que sur les arbres et peut sous-estimer sur un graphe avec cycles.

Quelle est la différence entre un arbre, un arbre couvrant et un DAG ?

Un arbre est un graphe non orienté, connexe et acyclique. Un arbre couvrant est un arbre situé à l'intérieur d'un graphe connexe plus grand et qui atteint tous ses sommets, si bien qu'un graphe a de nombreux arbres couvrants alors qu'un arbre est son propre et unique arbre couvrant. Un DAG est orienté et n'a aucun circuit, mais il peut tout à fait avoir plusieurs chemins entre deux nœuds, ce qu'aucun arbre ne peut. Ce dernier point explique pourquoi un historique de commits Git, où une fusion a deux parents, est un DAG et non un arbre.

17. Références

Sources des définitions, théorèmes et attributions ci-dessus, avec les ouvrages de référence où ce matériel est développé, classées par ordre chronologique.

  1. Kirchhoff, G. (1847). "Über die Auflösung der Gleichungen, auf welche man bei der Untersuchung der linearen Vertheilung galvanischer Ströme geführt wird." Annalen der Physik 148(12), 497 à 508. Le théorème matrice-arbre.
  2. Jordan, C. (1869). "Sur les assemblages de lignes." Journal für die reine und angewandte Mathematik 70, 185 à 190. Le centre d'un arbre est un sommet ou deux sommets adjacents.
  3. Cayley, A. (1889). "A Theorem on Trees." Quarterly Journal of Pure and Applied Mathematics 23, 376 à 378.
  4. Prüfer, H. (1918). "Neuer Beweis eines Satzes über Permutationen." Archiv der Mathematik und Physik 27, 142 à 144. La bijection de la section 7.
  5. Borůvka, O. (1926). "O jistém problému minimálním." Práce Moravské Přírodovědecké Společnosti 3, 37 à 58.
  6. König, D. (1936). Theorie der endlichen und unendlichen Graphen. Leipzig : Akademische Verlagsgesellschaft.
  7. Otter, R. (1948). "The Number of Trees." Annals of Mathematics 49(3), 583 à 599. Asymptotique des arbres non étiquetés.
  8. Kruskal, J. B. (1956). "On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem." Proceedings of the American Mathematical Society 7(1), 48 à 50.
  9. Prim, R. C. (1957). "Shortest Connection Networks and Some Generalizations." Bell System Technical Journal 36(6), 1389 à 1401.
  10. Harary, F. (1969). Graph Theory. Reading, Massachusetts : Addison-Wesley.
  11. Knuth, D. E. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms, 3e édition, section 2.3. Reading, Massachusetts : Addison-Wesley. La distinction entre arbres libres, enracinés et ordonnés.
  12. West, D. B. (2001). Introduction to Graph Theory, 2e édition. Upper Saddle River : Prentice Hall. Le chapitre 2 développe les arbres et les distances.
  13. Bondy, J. A. et Murty, U. S. R. (2008). Graph Theory. Graduate Texts in Mathematics 244. Londres : Springer.
  14. Cormen, T. H., Leiserson, C. E., Rivest, R. L. et Stein, C. (2009). Introduction to Algorithms, 3e édition. Cambridge, Massachusetts : MIT Press.
  15. Diestel, R. (2017). Graph Theory, 5e édition. Graduate Texts in Mathematics 173. Berlin : Springer. La section 1.5 traite des arbres et des forêts.

Construisez un arbre et essayez de le casser

Disposez l'exemple à huit sommets, comptez les arêtes, puis ajoutez une arête n'importe où et regardez un cycle apparaître. Supprimez plutôt une arête et regardez l'arbre se couper en exactement deux morceaux. Les deux sont le théorème d'équivalence en action.

Ouvrir le visualiseur

Construisez un Arbre et Essayez de le Casser

Disposez l'exemple à huit sommets, comptez les arêtes, puis ajoutez une arête n'importe où et regardez un cycle apparaître. Supprimez-en une à la place et regardez l'arbre se couper en exactement deux morceaux. C'est le théorème d'équivalence, rendu visible.

Lancer le Visualiseur d'Arbres Couvrants