如何在有利位置树中搜索?

时间:2019-02-05 15:43:43

标签: algorithm search tree graph-algorithm nearest-neighbor

我试图理解优势点树以及如何使用它们,为此,我创建了一个简单的示例,并尝试使用优势点树来解决它,这就是:

假设我们有S = {5,0,6.9,7},并且我们想执行q = 8(搜索S中与q距离最近的邻居)怎么做?

我的解决方法是:

首先:构建树: enter image description here

秒:执行搜索:

根据Wikipedia,我必须找到q = 8和有利位置之间的距离,现在有利位置为7,该距离等于1,因为它小于mu(每个距离的中值点到有利点)(即2),然后我转到包含剩下的较近点的分支,然后我转到节点6,但这是错误的答案,因为最近的邻居是7或9。

我的问题:

1-构造树正确吗?如果没有,请通过说明进行更正。

2-搜索中我缺少什么?有人可以向我解释如何将搜索应用于我的示例吗?

1 个答案:

答案 0 :(得分:0)

我想先澄清两件事。

  1. 如果您想使用Vantage点树了解前k个 值,则需要对 all 进行排序>数据并选择前k个元素。
  2. 如果您想使用Vantage点树了解前k个值,则需要对 一些 数据进行排序并选择前k个元素。
  3. 在特殊情况下,S中的每个元素都是一维的。 KDTree和Vantage Point树相似。
  4. Vantage Point树是为S中的高维元素制作的。
  5. Tau是一个髋参数。
  • 如果Tau太小,将仅显示一些元素。也许小于k(因此搜索无用)。
  • 如果Tau太大,将评估几乎所有数据集。

知道这一点可以解决您的问题。

我有S = {5,0,6,9,7}
我想知道更接近8的值。

副总裁建设

    第一个Vantage点的
  • 随机或不是那么随机选择。

我将选择0作为Vantage Point。

  • 第一Vantage点计算的亩。

如果我将mu(1)设为6.05。

  1. 数据 INSIDE 点树将为0(vp),5,6。

  2. 数据外部点树将为9,7。

    第二个Vantage点的
  • 随机或不是那么随机选择。

我将选择7作为Vantage Point。

  • 第二个Vantage Point的亩数在第一个之外。

1会将数据分为7(vp)和9。

    第二个Vantage点的
  • 随机或不是那么随机选择。

我将选择5作为Vantage Point。

  • 第二个Vantage Point的亩在第一个。

1会将数据分为0和5(vp),6。

VP搜索

8岁的亲密朋友

让我们选择Tau等于1。

  • 第一步

vp(1)= 0和8之间的距离大于tau + mu(1)。

可以忽略INSIDE VP(0)内的所有点

  • 第二步

vp(2 Out)= 7与8之间的距离小于tau + mu(2 out),但大于tau-mu(2 out)。

应考虑所有值

vp(2 Out)= 7与8之间的距离小于tan-mu(2 out)。

所有OUTPIDE VP(0)点都可以忽略