八叉树潜在功能:为什么将大小的对数相加?


16

我正在教一门关于数据结构的课程,并将在下周初讨论八卦树。我已经阅读了很多关于八叉树的论文,并且熟悉数据结构背后的分析和直觉。但是,对于Sleator和Tarjan在他们的分析中使用的潜在功能,我似乎找不到扎实的直觉。

该分析通过为树中的每个元素分配任意权重,然后将节点的大小s x 设置为以为根的子树中节点的权重之和来进行。然后,他们以该值的对数获取节点的等级,因此。最后,将树的潜在功能定义为所有节点的秩的总和。wis(x)r x r x = 对数s x xr(x)r(x)=logs(x)

我了解此潜在功能正常运行,可以进行分析,但是我不明白他们为什么会选择此潜在功能。为每个节点分配大小的想法对我来说很有意义,因为如果对大小进行求和,就可以得到树的加权路径长度。但是,我无法弄清楚为什么他们决定取权重的对数然后对它们进行汇总-我看不到与之对应的树的任何自然属性。

八叉树的潜在功能是否对应于该树的某些自然属性?除了“行之有效”之外,还有其他特定的原因让他们选择这种潜力吗?(我特别好奇,因为这套课程笔记提到“分析是不可思议的。[不]想法如何被发现”)

谢谢!


我之前也听过这种“黑魔法”的解释。您是否尝试通过电子邮件发送Sleator和Tarjan?
jbapple 2014年

@jbapple我尚未通过电子邮件发送给他们,因为我希望“整个社区”能够为您提供帮助。我还认为,对某人关于他们30年前所做的工作的询问可能并不一定会引起回应。:-)
templatetypedef

我不太熟悉它,但是我只是粗略地看了这篇论文,我认为唯一的原因是,在展开操作之后,它们希望对潜在功能进行一些小的更改,例如,如果我们将替换为log logØ g ^ *似乎仍然一切正常(我没有证明这一点,但似乎只需要一个简单的mathwork)。但是,如果我们将其保留为s,则该摊销分析while是正确的,但这不是一个好的上限(类似于m + n 2)。它与树的任何属性都不相关。loglogloglogs(m+n)2
赛义德

我一直将x的等级用黑框表示为“包含x的后代的理想二进制搜索树的深度”,但这比起直观的提示更易记。
Jeffε

Answers:


13

如何提出潜在的总日志

让我们考虑一下BST算法,对于元素x的每次访问,它仅将x的搜索路径P中称为前路径的元素重新排列到称为后树的树中。对于任何元素a,令s a s 'a 分别是在重排之前和之后均以a为根的子树的大小。所以小号小号'一个可以当且仅当不同一个PAxPxas(a)s(a)as(a)s(a)aP

而且,随时都只会在搜索路径中不断重新排列许多元素。我们称这种算法为“本地”算法。例如,展开树是本地的。每次最多只能按锯齿形,锯齿形和锯齿形重新排列3个元素。A

现在,在后树中创建“许多”叶子的任何本地算法(例如splay树)都具有以下不错的属性。

我们可以创建一个映射这样f:PP

  1. 有许多线性,其中aPs(f(a))s(a)/2
  2. 不断有很多 ,其中 小号˚F 可以大,但平凡最多 ñaPs(f(a))n
  3. 其他元素aPs(f(a))s(a)

我们可以通过展开搜索路径的变化来看到这一点。映射实际上是很自然的。本文的“发散的全局几何视图”精确地显示了如何观察上述观察的细节。

知道了这一事实之后,选择对数总和势很自然。因为我们可以使用type-1元素的潜在变化来支付整个重排。此外,对于其他类型的元素,我们必须最多以对数形式支付潜在的变化。因此,我们可以得出对数摊销成本。

我认为人们之所以认为这是“黑魔法”,是因为先前的分析并未“展开”搜索路径的整体变化,而是一步一步就能看到真正的变化。相反,它们显示了每个“局部转换”的电势变化,然后显示可以神奇地伸缩这些电势变化。

PS该文件甚至显示出对数和数潜力的某些限制。即,仅通过本地算法就可以通过对数和的对来证明访问引理的可满足性。

解释对数和的潜力

还有另一种方法可以定义Georgakopoulos和McClurkin的论文中BST的潜力,这与Sleator Tarjan论文中的对数总和潜力基本相同。但这给了我很好的直觉。

现在,我切换到论文的注释。我们为每个节点u分配一个权重。令W u u的子树权重的总和。(这只是每个节点的权重为1时u的子树的大小。)w(u)uW(u)uu

现在,我们没有定义节点的等级,而是定义了边缘的等级,他们将其称为“ 进度因子”

pf(e)=log(W(u)/W(v)).

的潜力是S

Φ(S)=eSpf(e).

这种势能有一个自然的解释:如果在搜索过程中我们遍历边缘我们将搜索空间从u的后代减少到v的后代,则W的分式减少(u,v)uv。我们的进步因素是对这一“进步”的对数度量,因此得名。[摘自第2.4节]W(u)/W(v)

观察到这几乎等于Sleator Tarjan的潜力,并且在路径上是可加的。

编辑:事实证明,这种替代定义及其背后的直觉很早就由Kurt Mehlhorn所描述。请参阅他的书“数据结构和算法”第一卷,第三节。6.1.2展开树,第263-274页。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.