Fonction potentielle du Splay tree: pourquoi additionner les logs des tailles?


16

J'enseigne un cours sur les structures de données et couvrirai les arbres splay au début de la semaine prochaine. J'ai lu à plusieurs reprises l'article sur les arbres splay et je connais l'analyse et l'intuition derrière la structure des données. Cependant, je n'arrive pas à trouver une solide intuition pour la fonction potentielle que Sleator et Tarjan utilisent dans leur analyse.

L'analyse fonctionne en attribuant à chaque élément de l'arbre un poids arbitraire , puis en définissant la taille s ( x ) d'un nœud comme étant la somme des poids des nœuds du sous-arbre enraciné en x . Ils prennent ensuite le log de cette valeur pour obtenir le rang r ( x ) du nœud, donc r ( x ) = log s ( x ) . Enfin, la fonction potentielle de l'arbre est définie comme la somme des rangs de tous les nœuds.wis(x)xr(x)r(x)=logs(x)

Je comprends que cette fonction potentielle fonctionne correctement et je peux suivre l'analyse, mais je ne vois pas pourquoi ils choisiraient ce potentiel. L'idée d'attribuer une taille à chaque nœud est logique pour moi, car si vous résumez les tailles, vous obtenez la longueur de chemin pondérée de l'arbre. Cependant, je ne peux pas comprendre pourquoi ils ont décidé de prendre les journaux des poids et de les résumer à la place - je ne vois aucune propriété naturelle de l'arbre à laquelle cela correspond.

La fonction potentielle de l'arbre splay correspond-elle à une propriété naturelle de l'arbre? Y a-t-il une raison particulière, autre que «ça marche», pour qu'ils choisissent ce potentiel? (Je suis particulièrement curieux car cet ensemble de notes de cours mentionne que "l'analyse est de la magie noire. [N] aucune idée de la façon dont on l'a découvert")

Merci!


J'ai déjà entendu cette explication "c'est de la magie noire". Avez-vous essayé d'envoyer un e-mail au Sleator et à Tarjan?
jbapple

@jbapple Je ne les ai pas encore envoyés par e-mail, car j'espérais que "la communauté dans son ensemble" pourrait m'aider. J'ai également pensé que cingler quelqu'un sur le travail qu'il avait accompli il y a 30 ans ne susciterait pas nécessairement une réponse. :-)
templatetypedef

Je ne le connais pas très bien, mais je regarde le papier très approximativement, je pense que la seule raison est qu'ils veulent avoir de petites modifications par fonctions potentielles après l'opération splay, par exemple si nous remplaçons par log loglogloglog ou par semble toujours que tout fonctionne bien (je ne l'ai pas prouvé mais semble juste avoir besoin d'un simple calcul). Mais si nous le laissons s , alors l'amortissement de l'analyse est correct, mais ce n'est pas une bonne limite supérieure (quelque chose comme ( m + n ) 2 ). Ce n'est lié à aucune propriété de l'arbre. logs(m+n)2
Saeed

J'ai toujours mis en boîte noire le rang de x comme "la profondeur de l'arbre de recherche binaire idéal contenant les descendants de x", mais c'est plus une intuition mnémonique qu'utile.
Jeffε

Réponses:


13

Comment trouver un potentiel de somme de journaux

Considérons l'algorithme BST pour chaque accès pour l'élément x , il réorganise uniquement les éléments du chemin de recherche P de x appelé avant-chemin, en un arbre appelé après-arbre. Pour tout élément a , soit s ( a ) et s ' ( a ) la taille du sous-arbre enraciné respectivement à a avant et après le réarrangement. Alors s ( a ) et l ' ( a ) peut différer ssi un P .UNEXPxas(a)s(a)as(a)s(a)aP

De plus, ne fait que réorganiser à tout moment de nombreux éléments du chemin de recherche. Appelons ce type d'algorithme "local". Par exemple, l'arbre d'affichage est local. Il réorganise seulement au plus 3 éléments à la fois par zig, zigzig et zigzag.UNE

Maintenant, tout algorithme local qui crée "beaucoup" de feuilles dans l'arbre secondaire, comme l'arbre splay, a la belle propriété suivante.

On peut créer un mapping tel quef:PP

  1. Il y a linéairement plusieurs , où s (uneP .s(F(une))s(une)/2
  2. Il y a toujours beaucoup , où uneP peut être grand mais au plus trivialement n .s(F(une))n
  3. Autres éléments , s uneP .s(F(une))s(une)

Nous pouvons le voir en déployant le changement de chemin de recherche. La cartographie est en fait assez naturelle. Cet article, A Global Geometric View of Splaying , montre précisément les détails pour voir l'observation ci-dessus.

Après avoir connu ce fait, il est très naturel de choisir un potentiel de somme de logs. Parce que nous pouvons utiliser le changement potentiel des éléments de type 1 pour payer la totalité du réarrangement. De plus, pour les éléments d'un autre type, nous devons payer le changement potentiel par au plus logarithmique. Par conséquent, nous pouvons dériver le coût amorti du logarithme.

Je pense que la raison pour laquelle les gens pensent que c'est de la "magie noire" est que l'analyse précédente ne "dévoile" pas le changement global du chemin de recherche et ne voit pas ce qui se passe réellement en une seule étape. Au lieu de cela, ils montrent le changement de potentiel pour chaque «transformation locale», puis montrent que ces changements potentiels peuvent être télescopés comme par magie.

PS Le papier montre même une certaine limitation du potentiel de somme de logs. Autrement dit, on peut prouver la satisfiabilité du lemme d'accès via un potentiel de somme de journaux à l'algorithme local uniquement.

Interprétation du potentiel de somme des journaux

Il existe une autre façon de définir le potentiel de BST dans le papier de Georgakopoulos et McClurkin qui est essentiellement le même que le potentiel de somme de journaux dans le papier de Sleator Tarjan. Mais cela me donne une bonne intuition.

Maintenant, je passe à la notation du papier. Nous attribuons un poids à chaque nœud u . Soit W ( uw(u)uW(u)uu

Maintenant, au lieu de définir le rang sur les nœuds, nous définissons le rang aux bords, qu'ils ont appelé facteur de progression .

pF(e)=Journal(W(u)/W(v)).

S

Φ(S)=eSpF(e).

(u,v)uvW(u)/W(v)

Observez que c'est le potentiel de Sleator Tarjan presque égal et qu'il est additif sur les chemins.

edit: Il s'avère que cette définition alternative et l'intuition derrière elle ont été décrites il y a longtemps par Kurt Mehlhorn. Voir son livre "Structures de données et algorithmes" Volume I, Section III. 6.1.2 Arbres évasés, pages 263 - 274.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.