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)a ∈ P
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:P→ P
- Il y a linéairement plusieurs , où s ′ (a ∈ P .s′(f( a ) ) ≤ s ( a ) / 2
- Il y a toujours beaucoup , où a ∈ P peut être grand mais au plus trivialement n .s′( f( a ) )n
- Autres éléments , s ′a ∈ P .s′( f( a ) ) ≤ s ( a )
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 .
p f( e ) = log( W( u ) / W( v ) ) .
S
Φ ( S) = ∑e ∈ Sp f( 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.