Preuve qu'un arbre de recherche binaire construit aléatoirement a une hauteur logarithmique

10

Comment prouvez-vous que la hauteur attendue d'un arbre de recherche binaire construit de façon aléatoire avec nœuds est ? Il y a une preuve dans CLRS Introduction to Algorithms (chapitre 12.4), mais je ne la comprends pas.O ( log n )nO(Journaln)

user1675999
la source
1
Quelle question? Quel exemple? Veuillez modifier et donner tous les détails.
Ran G.
3
Veuillez éviter d'utiliser des abréviations (telles que BST) et supposez que la plupart d'entre nous n'ont pas le livre CLRS. Si vous pouviez copier le théorème ici et expliquer ce que vous ne comprenez pas, vous obtiendrez plus de réponses.
Ran G.
2
Cela dépendra de la façon dont l'arborescence de recherche binaire est construite. (Même si le résultat ne le fait pas, la preuve le sera.) D'autres détails seraient utiles.
Peter Shor

Réponses:

21

Réfléchissons d'abord intuitivement à cela. Dans le meilleur des cas, l'arbre est parfaitement équilibré; dans le pire des cas, l'arbre est entièrement déséquilibré:

Arbre de recherche binaire à hauteur équilibréeArbre de recherche binaire dans le pire des cas

À partir du nœud racine , cet arbre de gauche a deux fois plus de nœuds à chaque profondeur successive, de sorte que l'arbre a n = h i = 0 2 i = 2 h + 1 - 1 nœuds et une hauteur h (qui est en ce cas 3). Avec un peu de maths, n 2 h + 1 - 1 h log 2 ( n + 1 ) - 1 l opn=je=0h2je=2h+1-1h , c'est-à-dire qu'il a unehauteur O ( log n ) . Pour l'arbre entièrement déséquilibré, la hauteur de l'arbre est simplement n - 1 O ( n ) . Nous avons donc nos limites.n2h+1-1hJournal2(n+1)-1log2nO(Journaln)n-1O(n)

Si nous construisions un arbre équilibré à partir d'une liste ordonnée , nous choisirions l'élément central comme nœud racine. Si nous construisons au hasard un arbre, l'un des n nœuds est également susceptible d'être choisi et la hauteur de notre arbre est: h e i g h t t r e e = 1 + max ( h e i g h t l e f t s u b t r e{1,2,,n}n Nous savons que dans un arbre de recherche binaire, le sous-arbre gauche ne doit contenir que des clés inférieures au nœud racine. Ainsi, si nous choisissons au hasard l'élément i t h , le sous-arbre gauche ai-1éléments et le sous-arbre droit an-iéléments, donc de manière plus compacte: h n =1+max( h i -

hejeghttree=1+max(hejeghtleFt subtree,hejeghtrjeght subtree)
jethje-1n-je. À partir de là, il est logique que si chaque élément est également susceptible d'être sélectionné, la valeur attendue n'est que la moyenne de tous les cas (plutôt qu'une moyenne pondérée). D'où:E[ h n ]= 1hn=1+max(hje-1,hn-je)E[hn]=1nje=1n[1+max(hje-1,hn-je)]

Comme je suis sûr que vous l'avez remarqué, j'ai légèrement dévié de la façon dont CLRS le prouve, car CLRS utilise deux techniques de preuve relativement courantes qui sont déconcertantes pour les non-initiés. La première consiste à utiliser des exposants (ou logarithmes) de ce que nous voulons trouver (dans ce cas, la hauteur), ce qui rend les mathématiques un peu plus propres; la seconde consiste à utiliser des fonctions d'indicateur (que je vais juste ignorer ici). Le CLRS définit la hauteur exponentielle comme , donc la récurrence analogue est Y n = 2 × max ( Y i - 1 , Y n - i )Ouin=2hnOuin=2×max(Ouije-1,Ouin-je).

En supposant l'indépendance (que chaque tirage d'un élément (parmi les éléments disponibles) pour être la racine d'un sous-arbre soit indépendamment de tous les tirages précédents), nous avons toujours la relation: pour lequel j'ai fait deux étapes: (1) déplacer le1

E[Ouin]=je=1n1nE[2×max(Ouije-1,Ouin-je)]=2nje=1nE[max(Ouije-1,Ouin-je)]
extérieur parce que c'est une constante et l'une des propriétés des sommations est queici=cii, et (2) déplacer les 2 à l'extérieur car c'est aussi une constante et l'une des propriétés des valeurs attendues estE[ax]=aE[x]. Maintenant, nous allons remplacer lafonctionmaxpar quelque chose de plus grand car sinon la simplification est difficile. Si nous argumentons pourXnon négatif,Y:E[max(X,Y1njecje=cjejeE[uneX]=uneE[X]maxXOui , puis: E [ Y n ] 2E[max(X,Oui)]E[max(X,Oui)+min(X,Oui)]=E[X]+E[Oui] telle sorte que la dernière étape découle de l'observation que pouri=1,Yi-1=Y0etYn-i=Yn-1et va tout le chemin versi=n,Yi-1=Yn-1etYn-
E[Ouin]2nje=1n(E[Ouije-1]+E[Ouin-je])=2nje=0n-12E[Ouije]
je=1Ouije-1=Oui0Ouin-je=Ouin-1je=nOuije-1=Ouin-1 , donc chaque terme Y 0 à Y n - 1 apparaît deux fois, nous pouvons donc remplacer la somme totale par une somme analogue. La bonne nouvelle est que nous avons une récurrenceE[ Y n ] 4Ouin-je=Oui0Oui0Ouin-1; la mauvaise nouvelle, c'est que nous ne sommes pas beaucoup plus loin que là où nous avons commencé.E[Ouin]4nje=0n-1E[Ouije]

À ce stade, CLRS tire une preuve d'induction E[Ouin]14(n+33)je=0n-1(je+33)=(n+34)n3Ouin=2hnhn=Journal2n3=3Journal2nO(Journaln)nkk

2E[Xn]E[Ouin]4nje=0n-1E[Ouije]14(n+33)=(n+3)(n+2)(n+1)24E[hn]=O(Journaln)
Merbs
la source
OUAH MERCI !!!! Même si je ne connais pas la valeur attendue, ce genre de sens. Je n'ai pas fait de cours de mathématiques discrets avant de faire des algorithmes. Je posterai plus de commentaires, si j'ai un doute. Merci Merbs.
user1675999
mais pourquoi exactement la hauteur exponentielle est-elle inférieure ou égale au binôme choisi? Je ne comprends toujours pas pourquoi ne pouvons-nous pas choisir un autre binôme avec un terme plus grand différent et faire exactement le même calcul ... je suis probablement stupide mais je ne vois pas pourquoi ... et jusqu'à ce point la preuve est parfaitement logique, alors ils ont juste dû tirer quelque chose de complètement à l'improviste et sans aucune explication nous dire que cela "prouve" qu'ils ont raison ...
Zeks
@Zeks Ainsi, nous pouvons choisir d'autres binômes avec des termes plus larges. Si le terme est toujours polynomial ( n^k), la conclusion est la même car le kest supprimé dans la notation big-O (la façon dont 3 a été supprimée). Mais si nous substituions quelque chose d'exponentiel ( e^n), ce serait toujours une borne supérieure correcte , mais pas une limite stricte . Nous savons que la hauteur attendue est au moins logarithmique, donc déterminer qu'elle est au plus logarithmique la rend serrée.
Merbs
@DavidNathan Je ne comprends pas votre inquiétude - doutez-vous que 1 / n soit une constante ou qu'elle puisse être déplacée en dehors de la sommation? Elle, comme la constante 2, est largement extraite à des fins d'illustration, pour simplifier la preuve restante.
Merbs