Article de reference

Arbre binaire aléatoire

Deux distributions aléatoires sont appliquées aux arbres binaires à trois sommets, correspondant aux arbres de recherche binaires à trois clés , et . Ces cinq arbres se voient a...

Cet article est intéressant. Cliquez ici pour en savoir plus.

Deux distributions aléatoires sont appliquées aux arbres binaires à trois sommets, correspondant aux arbres de recherche binaires à trois clés informatique et en théorie des probabilités , un arbre binaire aléatoire est un arbre binaire sélectionné aléatoirement selon une distribution de probabilités sur les arbres binaires. Différentes distributions ont été utilisées, ce qui confère à ces arbres des propriétés différentes.

Les arbres binaires aléatoires ont été utilisés pour analyser la complexité moyenne des structures de données basées sur les arbres binaires de recherche . Dans ce cas, on utilise généralement des arbres aléatoires formés en insérant les nœuds un à un selon une permutation aléatoire . Les arbres résultants ont très probablement une profondeur logarithmique et un nombre de Strahler logarithmique . L' algorithme Treap et les arbres binaires de recherche équilibrés apparentés utilisent des opérations de mise à jour qui préservent cette structure aléatoire même lorsque la séquence de mise à jour n'est pas aléatoire.

D'autres distributions sur les arbres binaires aléatoires incluent la distribution discrète uniforme dans laquelle tous les arbres distincts sont équiprobables, les distributions sur un nombre donné de nœuds obtenues par division répétée, les arbres binaires et les arbres radix pour les données aléatoires, et les arbres de taille variable générés par des processus de branchement .

Pour les arbres aléatoires qui ne sont pas nécessairement binaires, voir arbre aléatoire .

Un arbre binaire étendu, montrant les nœuds internes sous forme de cercles jaunes et les nœuds externes sous forme de carrés rouges.

Un arbre binaire est un arbre enraciné dans lequel chaque nœud peut avoir jusqu'à deux enfants (les nœuds situés directement en dessous de lui dans l'arbre), ces enfants étant désignés comme étant soit à gauche, soit à droite. Il est parfois plus commode de considérer des arbres binaires étendus, dans lesquels chaque nœud est soit un nœud externe sans enfant, soit un nœud interne avec exactement deux enfants. Un arbre binaire non étendu peut être converti en arbre binaire étendu en traitant tous ses nœuds comme internes et en ajoutant un nœud externe pour chaque enfant manquant d'un nœud interne. Réciproquement, un arbre binaire étendu possédant au moins un nœud interne peut être reconverti en arbre binaire non étendu en supprimant tous ses nœuds externes. De cette manière, ces deux formes sont presque entièrement équivalentes pour l'analyse mathématique, à ceci près que la forme étendue autorise un arbre ne comportant qu'un seul nœud externe, ce qui ne correspond à rien dans la forme non étendue. Pour les structures de données informatiques, les deux formes diffèrent, car les nœuds externes de la première forme peuvent être représentés explicitement comme des objets dans une structure de données.

Dans un arbre binaire de recherche, les nœuds internes sont étiquetés par des nombres ou d'autres valeurs ordonnées, appelées clés , agencées de sorte qu'un parcours infixe de l'arbre liste les clés par ordre croissant. Les nœuds externes restent non étiquetés. On peut également étudier les arbres binaires avec tous les nœuds non étiquetés, ou avec des étiquettes non triées. Par exemple, la structure de données des arbres cartésiens utilise des arbres binaires étiquetés qui ne sont pas nécessairement des arbres binaires de recherche.

Un arbre binaire aléatoire est un arbre aléatoire tiré d'une certaine distribution de probabilité sur les arbres binaires. Dans de nombreux cas, ces distributions de probabilité sont définies à partir d'un ensemble de clés donné et décrivent les probabilités que les arbres binaires de recherche possèdent ces clés. Cependant, d'autres distributions sont possibles, ne générant pas nécessairement d'arbres binaires de recherche et ne donnant pas nécessairement un nombre fixe de nœuds.

À partir de permutations aléatoires

Arbre binaire généré à partir d'une permutation aléatoire de 100 éléments

Pour toute séquence de clés ordonnées distinctes, on peut construire un arbre binaire de recherche dans lequel chaque clé est insérée séquentiellement comme une feuille, sans modifier la structure des clés précédemment insérées. La position de chaque insertion est déterminée par une recherche binaire dans l'arbre précédent. Le modèle de permutation aléatoire , pour un ensemble de clés donné, est défini en choisissant la séquence aléatoirement parmi les permutations de cet ensemble, chaque permutation ayant la même probabilité.

Par exemple, si les trois clés 1, 3 et 2 sont insérées dans un arbre binaire de recherche dans cet ordre, le nombre 1 sera à la racine de l'arbre, le nombre 3 sera son enfant droit et le nombre 2 son enfant gauche.

Profondeur attendue d'un nœud

Pour toute clé d'un ensemble donné , la longueur attendue du chemin de la racine à dans un arbre binaire de recherche aléatoire est au plus égale à , où « » désigne la fonction logarithme népérien et le terme introduit la notation grand O. Par linéarité de l'espérance , le nombre attendu d'ancêtres de est égal à la somme, pour toutes les autres clés , des probabilités que soit un ancêtre de . Une clé est un ancêtre de si et seulement si est la première clé insérée dans l'intervalle . Comme chaque clé de l'intervalle a la même probabilité d'être la première, cela se produit avec une probabilité inversement proportionnelle à la longueur de l'intervalle. Ainsi, les clés adjacentes à dans la séquence triée ont une probabilité d'être un ancêtre de , les clés situées à une étape de celle-ci ont une probabilité , etc. La somme de ces probabilités forme deux copies de la série harmonique s'étendant de dans les deux directions à partir de dans la séquence triée, ce qui donne la borne ci-dessus. Cette borne est également valable pour la longueur attendue du chemin de recherche pour une valeur qui est l'une des clés données.

Le chemin le plus long

Le chemin racine-feuille le plus long, dans un arbre binaire de recherche aléatoire, est plus long que la longueur de chemin attendue, mais seulement d'un facteur constant. Sa longueur, pour un arbre à 2 nœuds, est avec une forte probabilité d'environ 2n.

où est le nombre unique dans l'intervalle satisfaisant l'équation

Nombre de feuilles prévu

Dans le modèle de permutation aléatoire, chaque clé, à l'exception de la plus petite et de la plus grande, a une probabilité d'être une feuille de l'arbre. En effet, une clé est une feuille lorsqu'elle est insérée après ses deux voisins, ce qui se produit pour deux des six permutations possibles de cette clé et de ses deux voisins, chacune étant équiprobable. Par un raisonnement similaire, les clés la plus petite et la plus grande ont une probabilité d'être une feuille. Par conséquent, le nombre attendu de feuilles est la somme de ces probabilités, qui est exactement égale à .

Nombre de Strahler

Le nombre de Strahler des sommets d'un arbre mesure la complexité des sous-arbres situés sous ces sommets. Une feuille (nœud externe) a un nombre de Strahler égal à un. Pour tout autre nœud, le nombre de Strahler est calculé récursivement à partir des nombres de Strahler de ses enfants. Dans un arbre binaire, si deux enfants ont des nombres de Strahler différents, le nombre de Strahler de leur parent est le plus grand des deux. En revanche, si deux enfants ont le même nombre de Strahler, celui de leur parent est supérieur de un. Le nombre de Strahler de l'arbre entier est celui du nœud racine. Pour les arbres binaires de recherche aléatoires à n nœuds, les simulations suggèrent que le nombre de Strahler moyen est de l' ordre de 1/2 . Une borne supérieure moins contraignante a été démontrée.

Treaps et arbres binaires de recherche aléatoires

Dans les applications des structures de données d'arbres binaires de recherche, il est rare que les clés soient insérées sans suppression dans un ordre aléatoire, ce qui limite les applications directes des arbres binaires aléatoires. Cependant, les concepteurs d'algorithmes ont élaboré des structures de données qui permettent des insertions et des suppressions arbitraires afin de préserver la propriété selon laquelle la forme de l'arbre est aléatoire, comme si les clés avaient été insérées de manière aléatoire.

Si l'on attribue à un ensemble de clés des priorités numériques (indépendantes de leurs valeurs), ces priorités permettent de construire un arbre cartésien pour ces nombres, c'est-à-dire l'arbre binaire de recherche résultant de l'insertion des clés par ordre de priorité. En choisissant comme priorités des nombres réels aléatoires indépendants compris entre 1 et 1, et en maintenant la structure de l'arbre cartésien par rotation après chaque insertion ou suppression d'un nœud, il est possible de conserver une structure de données se comportant comme un arbre binaire de recherche aléatoire. Une telle structure est appelée « treap » ou arbre binaire de recherche aléatoire.

Les variantes de l'algorithme Treap, notamment l'arbre zip et l'arbre zip-zip, remplacent les rotations d'arbre par des opérations de « zipping » qui divisent et fusionnent les arbres, et qui limitent le nombre de bits aléatoires à générer et à stocker avec les clés. Le résultat de ces optimisations est toujours un arbre à structure aléatoire, mais qui ne correspond pas exactement au modèle de permutation aléatoire.

Arbres binaires aléatoires uniformes

Arbre binaire aléatoire uniforme à 100 nœuds

Le nombre d'arbres binaires à nœuds est un nombre de Catalan . Pour ces nombres d'arbres,

A000108 dans l' OEIS ).

Ainsi, si l'un de ces arbres est sélectionné uniformément au hasard, sa probabilité est l' inverse d'un nombre de Catalan. Les arbres générés à partir d'un modèle suivant cette distribution sont parfois appelés arbres catalans binaires aléatoires . Leur profondeur attendue est proportionnelle à la racine carrée de n , et non à son logarithme . Plus précisément, la profondeur attendue d'un nœud choisi aléatoirement dans un arbre à n nœuds de ce type est de n/2.