HINWEIS : Die Frage wurde in meinen Antworten angepasst: Unter der Annahme, dass wir jetzt die niedrigsten Geschwistervorfahren in -Zeit finden können, kann die ANN wirklich in ?O ( log n )
Quadtrees sind effiziente räumliche Indizes. Ich habe ein Rätsel mit der Implementierung einer Suche nach dem nächsten Nachbarn in einer komprimierten Quadtree-Struktur, wie in [2] beschrieben. (Ohne auf Details einzugehen, erfolgt die Suche von oben nach unten entlang sogenannter äquidistanter Quadrate und endet am Endknoten eines äquidistanten Pfades. Im angehängten Bild kann dies einer der Knoten im Südosten sein, die mit Punkten gefüllt sind.)
Damit ihr Algorithmus funktioniert, muss für jeden Knoten - ein Quadrat mit mindestens zwei nicht leeren Quadranten - ein Zeiger für jeden niedrigsten (in der Hierarchie am nächsten gelegenen) Ahnenknoten in jeder der vier Richtungen (Nord, West, Süd) beibehalten werden , Osten). Diese werden durch die grünen Pfeile für den Vorfahren der Knoten nach Westen angezeigt (der Pfeil zeigt auf die Mitte des Ahnenquadrats).
Das Papier behauptet, dass diese Zeiger beim Einfügen und Löschen von Punkten in O (1) aktualisiert werden können. Wenn ich mir jedoch das Einfügen des grünen Punkts anschaue, muss ich anscheinend eine beliebige Anzahl von Zeigern aktualisieren, in diesem Fall sechs davon.
Ich hoffe auf einen Trick, um dieses Zeiger-Update in konstanter Zeit durchzuführen. Vielleicht gibt es eine Form der Indirektion, die ausgenutzt werden kann?
BEARBEITEN:
Der relevante Abschnitt aus dem Papier ist 6.3, wo er lautet: "Wenn der Pfad gebogen ist, sollten wir zusätzlich zu den niedrigsten Vorfahren von auch für jede der Richtungen die niedrigste berücksichtigen Vorfahr von , der in diese Richtung geht [...] Das Finden dieser Quadrate aus kann in Zeit pro Quadrat erfolgen, wenn wir jedem Quadrat in zusätzliche Zeiger die für jede Richtung auf seine nächsten Vorfahren zeigen Diese Zeiger können auch in -Zeit während des Einfügens oder Löschens eines Punkts aktualisiert werden. "
[2]: Eppstein, D. und Goodrich, MT und Sun, JZ, „The Skip Quadtree: Eine einfache dynamische Datenstruktur für mehrdimensionale Daten“, in Proceedings of the einundzwanzigsten jährlichen Symposium über Computergeometrie, S. 296–305 , 2005.