nearest neighbor - k-d-Baum - wikipedia Beweis

Auf dem wikipedia-Eintrag für k-d-Bäume, wird ein Algorithmus vorgestellt, für eine nächste-Nachbar-Suche auf einem k-d-Baum. Was ich nicht verstehe, ist die Erklärung von Schritt 3.2. Wie Sie wissen, gibt es nicht einen Punkt näher, gerade weil der Unterschied zwischen den splitting-Koordinate der Suche nach Punkt und der aktuelle Knoten ist größer als die Differenz zwischen dem splitting-Koordinate der Suche nach Punkt und die aktuelle besten?

Nächste-Nachbar-Suche-Animation
NN-Suche mit einem KD-Baum 2D -

Nächsten Nachbar (NN) - Algorithmus
Ziele um den Punkt zu finden in dem Baum
die am nächsten zu einer gegebenen Eingabe
Punkt. Diese Suche kann getan werden
effizient mit dem Baum
Eigenschaften, die zu beseitigen Sie schnell große
Teile des suchraums.
Die Suche nach einem nächsten Nachbarn in einem
kd-Baum wie folgt vorgegangen:

  1. Beginnend mit dem Wurzelknoten, der Algorithmus bewegt sich nach unten den Baum
    rekursiv, in der gleichen Weise, dass es
    wenn der Suchpunkt wurden
    eingefügt (d.h. es geht rechts oder Links
    je nachdem, ob der Punkt
    größer oder kleiner als der aktuelle Knoten
    in der split dimension).
  2. Sobald der Algorithmus erreicht einen Blatt-Knoten, der es speichert, dass der Knoten Punkt als
    die "aktuellen " besten"
  3. Der Algorithmus läuft die Rekursion des Baumes, die Durchführung der
    folgenden Schritte auf jedem Knoten:
    1. Wenn der aktuelle Knoten ist näher als die aktuellen besten sind, dann ist es
    wird die aktuelle am besten.
    2. Der Algorithmus überprüft, ob es sein könnte, keine Punkte auf
    die andere Seite der splitting-plane
    näher an der Suche Punkt
    als die zurzeit beste. Konzept,
    dies wird durch die sich kreuzenden
    splitting-hyperplane mit einem
    hypersphäre um die Suche Punkt
    das hat einen radius gleich dem aktuellen
    nächste Entfernung. Da die
    hyperplanes sind alle axis-aligned diese
    implementiert ist als ein einfacher Vergleich
    um zu sehen, ob der Unterschied zwischen
    die splitting-Koordinate der Suche
    Punkt und aktuelle Knoten weniger als
    die Distanz (Globale Koordinaten)
    von der Suche an der aktuellen
    best.
    1. Wenn die hypersphäre überquert das Flugzeug, es könnte sein
    näher die Punkte auf der anderen Seite der
    Flugzeug, so muss der Algorithmus nach unten verschieben
    der andere Zweig des Baumes, aus dem
    aktuellen Knoten suchen, näher
    Punkte, die gleiche rekursive
    Prozess, da die gesamte Suche.
    2. Wenn die hypersphäre nicht den Schnittpunkt mit der splitting plane,
    dann der Algorithmus weiter zu Fuß
    oben auf dem Baum, und der gesamte Zweig auf
    die andere Seite von diesem Knoten ist
    beseitigt.
  4. Wenn der Algorithmus beendet ist dieser Prozess für den root-Knoten, dann die
    Suche abgeschlossen ist.

In der Regel verwendet der Algorithmus mit quadrierten
Entfernungen für den Vergleich zu vermeiden
computing Quadratwurzeln. Darüber hinaus
es kann speichern Sie die Berechnung durch das gedrückt halten der
squared aktuelle beste Entfernung in einer
Variablen für den Vergleich.

InformationsquelleAutor oob | 2009-10-26
Schreibe einen Kommentar