Die Nächste-Nachbarn-Suche ( NNS ) ist eine Form der Proximitätssuche und das Optimierungsproblem , denjenigen Punkt in einer gegebenen Menge zu finden, der einem gegebenen Punkt am nächsten (oder ähnlichsten) liegt. Die Nähe wird typischerweise durch eine Unähnlichkeitsfunktion ausgedrückt: Je unähnlicher die Objekte sind, desto größer sind die Funktionswerte.

Formal ist das Problem der Nächste-Nachbarn-Suche (NN-Suche) wie folgt definiert: Gegeben eine Menge S von Punkten in einem Raum M und ein Anfragepunkt q , finde den nächstgelegenen Punkt in S zu q . Donald Knuth nannte es in Band 3 von „The Art of Computer Programming “ (1973) das Poststellenproblem und bezog sich damit auf die Anwendung, einer Wohnadresse die nächstgelegene Poststelle zuzuordnen. Eine direkte Verallgemeinerung dieses Problems ist die k -NN-Suche, bei der die k nächstgelegenen Punkte gefunden werden müssen .

Üblicherweise ist M ein metrischer Raum , und die Unähnlichkeit wird als Distanzmetrik ausgedrückt , die symmetrisch ist und die Dreiecksungleichung erfüllt . Noch häufiger wird M als d -dimensionaler Vektorraum betrachtet, in dem die Unähnlichkeit mithilfe der euklidischen Distanz , der Manhattan-Distanz oder einer anderen Distanzmetrik gemessen wird . Die Unähnlichkeitsfunktion kann jedoch beliebig sein. Ein Beispiel ist die asymmetrische Bregman-Divergenz , für die die Dreiecksungleichung nicht gilt. [ 1 ]

Anwendungen

Das Problem der Suche nach dem nächsten Nachbarn tritt in zahlreichen Anwendungsgebieten auf, darunter:

Methoden

Es wurden verschiedene Lösungsansätze für das NNS-Problem vorgeschlagen. Die Qualität und Nützlichkeit der Algorithmen hängen von der Zeitkomplexität der Anfragen sowie der Speicherkomplexität der zu verwaltenden Suchdatenstrukturen ab. Die informelle Beobachtung, die gemeinhin als „ Fluch der Dimensionalität“ bezeichnet wird , besagt, dass es keine universelle exakte Lösung für NNS im hochdimensionalen euklidischen Raum gibt, die polynomische Vorverarbeitung und polylogarithmische Suchzeit verwendet.

Exakte Methoden

Die einfachste Lösung für das NNS-Problem besteht darin, die Distanz vom Suchpunkt zu jedem anderen Punkt in der Datenbank zu berechnen und den bisher besten Wert zu speichern. Dieser Algorithmus, auch als naiver Ansatz bezeichnet, hat eine Laufzeit von O(dN), wobei N die Kardinalität und d die Dimensionalität von S ist . Da keine Suchdatenstrukturen verwaltet werden müssen , benötigt die lineare Suche außer dem Speicherplatz der Datenbank keine zusätzliche Speicherkapazität. Die naive Suche kann im Durchschnitt raumpartitionierende Verfahren in höherdimensionalen Räumen übertreffen. [ 7 ]

Für den Distanzvergleich ist die absolute Distanz nicht erforderlich, sondern nur die relative. In geometrischen Koordinatensystemen lässt sich die Distanzberechnung erheblich beschleunigen, indem man die Quadratwurzelberechnung zwischen zwei Koordinaten weglässt. Der Distanzvergleich liefert dennoch identische Ergebnisse.

Raumaufteilung

Seit den 1970er Jahren wird das Branch-and-Bound -Verfahren zur Lösung des Problems eingesetzt. Im euklidischen Raum umfasst dieser Ansatz räumliche Indexierungs- oder Zugriffsverfahren. Zur Lösung des NNS-Problems wurden verschiedene Raumpartitionierungsverfahren entwickelt. Das einfachste ist der kd-Baum , der den Suchraum iterativ in zwei Regionen unterteilt, die jeweils die Hälfte der Punkte der übergeordneten Region enthalten. Anfragen werden durch Traversierung des Baums von der Wurzel zu einem Blatt durchgeführt, wobei der Anfragepunkt bei jeder Teilung ausgewertet wird. Abhängig von der in der Anfrage angegebenen Distanz müssen gegebenenfalls auch benachbarte Zweige, die Treffer enthalten könnten, ausgewertet werden. Bei konstanter Dimension beträgt die durchschnittliche Komplexität O (log  N ) [ 8 ] , im Fall zufällig verteilter Punkte O ( kN ^(1-1/ k )) [ 9 ]. Alternativ wurde die R-Baum -Datenstruktur entwickelt, um die Nächste-Nachbar-Suche in dynamischen Kontexten zu unterstützen, da sie effiziente Algorithmen für Einfügungen und Löschungen wie den R*-Baum bietet . [ 10 ] R-Bäume können die nächsten Nachbarn nicht nur für die euklidische Distanz liefern, sondern können auch mit anderen Distanzen verwendet werden.

Im Fall allgemeiner metrischer Räume wird das Branch-and-Bound-Verfahren als metrisches Baumverfahren bezeichnet . Beispiele hierfür sind das VP-Baum- und das BK-Baum- Verfahren.

Unter Verwendung einer Menge von Punkten aus einem dreidimensionalen Raum, die in einen BSP-Baum eingefügt werden , und eines gegebenen Anfragepunkts aus demselben Raum, wird in der folgenden Beschreibung eines Algorithmus eine mögliche Lösung für das Problem der Suche nach dem nächstgelegenen Punkt in der Punktwolke zum Anfragepunkt angegeben.

Streng genommen existiert ein solcher Punkt möglicherweise nicht, da er nicht eindeutig sein muss. In der Praxis geht es uns jedoch meist nur darum, einen der Punkte in der Punktwolke zu finden, die den kürzesten Abstand zu einem gegebenen Anfragepunkt haben. Die Idee ist, für jeden Zweig des Baums anzunehmen, dass der nächstgelegene Punkt in der Punktwolke in dem Halbraum liegt, der den Anfragepunkt enthält. Dies muss nicht der Fall sein, ist aber eine gute Heuristik. Nachdem das Problem für den angenommenen Halbraum rekursiv gelöst wurde, wird der so ermittelte Abstand mit dem kürzesten Abstand vom Anfragepunkt zur Partitionierungsebene verglichen. Dieser Abstand ist der zwischen dem Anfragepunkt und dem nächstgelegenen möglichen Punkt im noch nicht durchsuchten Halbraum. Ist dieser Abstand größer als der im vorherigen Ergebnis ermittelte, besteht offensichtlich keine Notwendigkeit, den anderen Halbraum zu durchsuchen. Besteht jedoch eine Notwendigkeit, muss das Problem für den anderen Halbraum gelöst, dessen Ergebnis mit dem vorherigen verglichen und das entsprechende Ergebnis zurückgegeben werden. Die Leistung dieses Algorithmus ist eher logarithmisch als linear, wenn sich der Abfragepunkt in der Nähe der Punktwolke befindet, denn wenn der Abstand zwischen dem Abfragepunkt und dem nächstgelegenen Punkt in der Punktwolke gegen Null geht, muss der Algorithmus nur noch eine Suche durchführen, bei der der Abfragepunkt als Schlüssel dient, um das richtige Ergebnis zu erhalten.

Näherungsverfahren

Ein approximativer Nächste-Nachbar-Suchalgorithmus darf Punkte zurückgeben, deren Abstand zur Anfrage höchstens das 1/2-fache des Abstands der Anfrage zu ihren nächsten Punkten beträgt. Der Vorteil dieses Ansatzes liegt darin, dass ein approximativer Nächster Nachbar in vielen Fällen fast genauso gut ist wie ein exakter. Insbesondere wenn das Abstandsmaß die Benutzerqualität präzise erfasst, sollten kleine Unterschiede im Abstand keine Rolle spielen. [ 11 ]

Greedy-Suche in Proximity-Nachbarschaftsgraphen

Proximity-Graph-Methoden (wie navigierbare Small-World-Graphen [ 12 ] und HNSW [ 13 ] [ 14 ] ) gelten als der aktuelle Stand der Technik für die approximative Suche nach nächsten Nachbarn.

Die Methoden basieren auf der gierigen Suche in Nachbarschaftsgraphen, in denen jedem Punkt ein eindeutiger Knoten zugeordnet ist . Die Suche nach den nächsten Nachbarn einer Anfrage q in der Menge S entspricht der Suche nach dem Knoten im Graphen . Der Basisalgorithmus – die gierige Suche – funktioniert wie folgt: Die Suche beginnt an einem Startknoten, indem die Distanzen der Anfrage q zu jedem Knoten seiner Nachbarschaft berechnet werden . Anschließend wird der Knoten mit der minimalen Distanz ermittelt. Ist die Distanz zwischen der Anfrage und dem ausgewählten Knoten kleiner als die Distanz zwischen der Anfrage und dem aktuellen Knoten, springt der Algorithmus zum ausgewählten Knoten, der dann zum neuen Startknoten wird. Der Algorithmus stoppt, sobald er ein lokales Minimum erreicht: einen Knoten, dessen Nachbarschaft keinen Knoten enthält, der näher an der Anfrage liegt als der Knoten selbst.

Die Idee von Nachbarschaftsgraphen mit Nähe wurde in zahlreichen Publikationen genutzt, darunter die wegweisende Arbeit von Arya und Mount [ 15 ] , das VoroNet-System für die Ebene [ 16 ] , das RayNet-System für den Raum [ 17 ] sowie die Algorithmen Navigable Small World [ 12 ] , Metrized Small World [ 18 ] und HNSW [ 13 ] [ 14 ] für den allgemeinen Fall von Räumen mit Distanzfunktion. Diesen Arbeiten ging eine Pionierarbeit von Toussaint voraus, in der er das Konzept eines relativen Nachbarschaftsgraphen einführte [ 19 ] .

Ortssensitives Hashing

Locality Sensitive Hashing (LSH) ist eine Technik zur Gruppierung von Punkten im Raum in „Buckets“ basierend auf einer Distanzmetrik, die auf die Punkte angewendet wird. Punkte, die gemäß der gewählten Metrik nahe beieinander liegen, werden mit hoher Wahrscheinlichkeit demselben Bucket zugeordnet. [ 20 ]

Nächste-Nachbar-Suche in Räumen mit kleiner intrinsischer Dimension

Der Überdeckungsbaum besitzt eine theoretische Schranke, die auf der Verdopplungskonstante des Datensatzes basiert . Die Suchzeit ist durch O ( c²  log  n ) begrenzt , wobei c die Expansionskonstante des Datensatzes ist.

Im Spezialfall dichter 3D-Karten geometrischer Punkte kann die Projektionsgeometrie des Sensorverfahrens die Suche erheblich vereinfachen. Dieser Ansatz setzt voraus, dass die 3D-Daten durch eine Projektion auf ein zweidimensionales Gitter organisiert sind und dass die Daten – mit Ausnahme von Objektgrenzen – zwischen benachbarten Gitterzellen räumlich glatt sind. Diese Annahmen sind bei 3D-Sensordaten in Anwendungen wie Vermessung, Robotik und Stereovision gültig, gelten aber möglicherweise nicht für unstrukturierte Daten im Allgemeinen. In der Praxis weist dieses Verfahren bei Anwendung auf reale Stereovisionsdaten eine durchschnittliche Suchzeit von O ( 1 ) bzw. O ( K ) für das k -nächste-Nachbarn-Problem auf. [ 6 ]

Vektorapproximationsdateien

In hochdimensionalen Räumen werden Baumindizierungsstrukturen unbrauchbar, da ohnehin ein zunehmender Anteil der Knoten untersucht werden muss. Um die lineare Suche zu beschleunigen, wird eine komprimierte Version der im RAM gespeicherten Merkmalsvektoren verwendet, um die Datensätze in einem ersten Durchlauf vorzufiltern. Die endgültigen Kandidaten werden in einem zweiten Schritt mithilfe der unkomprimierten Daten von der Festplatte zur Distanzberechnung ermittelt. [ 21 ]

Der VA-File-Ansatz ist ein Spezialfall der kompressionsbasierten Suche, bei der jede Merkmalskomponente einheitlich und unabhängig komprimiert wird. Die optimale Komprimierungstechnik in mehrdimensionalen Räumen ist die Vektorquantisierung (VQ), implementiert durch Clustering. Die Datenbank wird geclustert und die vielversprechendsten Cluster werden ermittelt. Im Vergleich zu VA-File, baumbasierten Indizes und sequenziellen Scans wurden erhebliche Vorteile erzielt. [ 22 ] [ 23 ] Beachten Sie auch die Parallelen zwischen Clustering und LSH.

Varianten

Es gibt zahlreiche Varianten des NNS-Problems, wobei die beiden bekanntesten die k -nächste-Nachbarn-Suche und die ε-approximative nächste-Nachbarn-Suche sind .

k -nächste Nachbarn

Die k -Nächste-Nachbarn-Suche ermittelt die k nächsten Nachbarn einer Suchanfrage. Dieses Verfahren wird häufig in der prädiktiven Analytik eingesetzt , um einen Punkt anhand des Konsens seiner Nachbarn zu bewerten oder zu klassifizieren. k -Nächste-Nachbarn-Graphen sind Graphen, in denen jeder Punkt mit seinen k nächsten Nachbarn verbunden ist

Ungefährer nächster Nachbar

In manchen Anwendungen kann es ausreichend sein, eine gute Schätzung des nächsten Nachbarn zu erhalten. In solchen Fällen kann ein Algorithmus verwendet werden, der nicht garantiert, in jedem Fall den tatsächlichen nächsten Nachbarn zu finden, um dadurch die Geschwindigkeit zu erhöhen oder Speicherplatz zu sparen. Oft findet ein solcher Algorithmus in den meisten Fällen den nächsten Nachbarn, dies hängt jedoch stark vom abgefragten Datensatz ab.

Zu den Algorithmen, die die approximative Suche nach dem nächsten Nachbarn unterstützen, gehören Locality-Sensitive Hashing , Best Bin First und die Suche auf Basis eines balancierten Box-Decomposition-Baums . [ 24 ]

Verhältnis der Entfernung zum nächsten Nachbarn

Das Nearest-Neighbor-Distanzverhältnis (NNR) verwendet nicht die direkte Distanz vom Ausgangspunkt zum nächsten Nachbarn als Schwellenwert, sondern ein Verhältnis dieser Distanz, das von der Distanz zum vorherigen Nachbarn abhängt. Es wird in der datenbankbasierten Bildsuche (CBIR) eingesetzt , um Bilder mittels „Beispielabfrage“ anhand der Ähnlichkeit lokaler Merkmale abzurufen. Allgemeiner findet es Anwendung in verschiedenen Matching- Problemen.

Nahe Nachbarn mit festem Radius

Bei der Suche nach nächsten Nachbarn mit festem Radius geht es darum, effizient alle Punkte im euklidischen Raum zu finden, die sich innerhalb eines vorgegebenen festen Abstands von einem bestimmten Punkt befinden. Der Abstand wird als fest angenommen, der gesuchte Punkt jedoch als beliebig.

Alle nächsten Nachbarn

Für manche Anwendungen (z. B. Entropieschätzung ) haben wir N Datenpunkte und möchten für jeden dieser N Punkte den nächsten Nachbarn ermitteln . Dies ließe sich natürlich erreichen, indem man für jeden Punkt eine Nächste-Nachbar-Suche durchführt. Eine verbesserte Strategie wäre jedoch ein Algorithmus, der die Informationsredundanz zwischen diesen N Anfragen nutzt, um eine effizientere Suche zu ermöglichen. Ein einfaches Beispiel: Wenn wir die Entfernung von Punkt X zu Punkt Y berechnen , erhalten wir gleichzeitig die Entfernung von Punkt Y zu Punkt X. Dieselbe Berechnung kann also in zwei verschiedenen Anfragen wiederverwendet werden.

Bei gegebener Dimension, einer semidefiniten positiven Norm (die jede L <sup>p</sup> -Norm einschließt ) und n Punkten in diesem Raum kann der nächste Nachbar jedes Punktes in O ( n  log  n ) Zeit und die m nächsten Nachbarn jedes Punktes in O ( mn  log  n ) Zeit gefunden werden . [ 25 ] [ 26 ]

Siehe auch

Referenzen

Zitate

  1. ^ Cayton, Lawrence (2008). „Schnelle Suche nach dem nächsten Nachbarn bei Bregman-Divergenzen“. Proceedings der 25. Internationalen Konferenz für Maschinelles Lernen . S.  112–119 . doi : 10.1145/1390156.1390171 . ISBN 9781605582054. S2CID  12169321 .
  2. ^ Qiu, Deyuan, Stefan May und Andreas Nüchter. „GPU-beschleunigte Nächste-Nachbarn-Suche für die 3D-Registrierung.“ Internationale Konferenz über Computer-Vision-Systeme. Springer, Berlin, Heidelberg, 2009.
  3. ^ Becker, Ducas, Gama und Laarhoven. „Neue Wege in der Nächste-Nachbarn-Suche mit Anwendungen auf Gittersiebverfahren.“ Tagungsband des 27. jährlichen ACM-SIAM-Symposiums über diskrete Algorithmen (S. 10–24). Gesellschaft für Industrie- und Angewandte Mathematik.
  4. ^ „Was ist eine Vektordatenbank und wie funktioniert sie?“ . Pinecone . Abgerufen am 05.05.2026 .
  5. ^ Lewis, Patrick; Perez, Ethan; Piktus, Aleksandra; Petroni, Fabio; Karpukhin, Vladimir; Goyal, Naman; Kuttler, Heinrich; Lewis, Mike; Yih, Wen-tau; Rocktaschel, Tim; Riedel, Sebastian; Kiela, Douwe (2020). „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks“ . Advances in Neural Information Processing Systems . Abgerufen am 5. Mai 2026 .
  6. ^ a b Bewley, A.; Upcroft, B. (2013). Vorteile der Nutzung der Projektionsstruktur zur Segmentierung dichter 3D-Punktwolken (PDF) . Australische Konferenz für Robotik und Automatisierung.
  7. ^ Weber, Roger; Schek, Hans-J.; Blott, Stephen (1998). „Eine quantitative Analyse und Leistungsstudie für Ähnlichkeitssuchverfahren in hochdimensionalen Räumen“ (PDF) . VLDB '98 Proceedings of the 24rd International Conference on Very Large Data Bases . S.  194–205 .
  8. ^ Andrew Moore. „Eine Einführung in KD-Bäume“ (PDF) . Archiviert vom Original (PDF) am 03.03.2016 . Abgerufen am 03.10.2008 .
  9. ^Lee, D. T.; Wong, C. K. (1977). "Worst-case analysis for region and partial region searches in multidimensional binary search trees and balanced quad trees". Acta Informatica. 9 (1): 23–29. doi:10.1007/BF00263763. S2CID 36580055.
  10. ^Roussopoulos, N.; Kelley, S.; Vincent, F. D. R. (1995). "Nearest neighbor queries". Proceedings of the 1995 ACM SIGMOD international conference on Management of data – SIGMOD '95. p. 71. doi:10.1145/223784.223794. ISBN 0897917316.
  11. ^Andoni, A.; Indyk, P. (2006-10-01). "Near-Optimal Hashing Algorithms for Approximate Nearest Neighbor in High Dimensions". 2006 47th Annual IEEE Symposium on Foundations of Computer Science (FOCS'06). pp. 459–468. CiteSeerX 10.1.1.142.3471. doi:10.1109/FOCS.2006.49. ISBN 978-0-7695-2720-8.
  12. ^ abMalkov, Yury; Ponomarenko, Alexander; Logvinov, Andrey; Krylov, Vladimir (2012), Navarro, Gonzalo; Pestov, Vladimir (eds.), "Scalable Distributed Algorithm for Approximate Nearest Neighbor Search Problem in High Dimensional General Metric Spaces", Similarity Search and Applications, vol. 7404, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. 132–147, doi:10.1007/978-3-642-32153-5_10, ISBN 978-3-642-32152-8, retrieved 2024-01-16{{citation}}: CS1 Wartung: Arbeitsparameter mit ISBN ( Link )
  13. ^ abMalkov, Yury; Yashunin, Dmitry (2016). "Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs". arXiv:1603.09320 [cs.DS].
  14. ^ abMalkov, Yu A.; Yashunin, D. A. (2020-04-01). "Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs". IEEE Transactions on Pattern Analysis and Machine Intelligence. 42 (4): 824–836. arXiv:1603.09320. Bibcode:2020ITPAM..42..824M. doi:10.1109/TPAMI.2018.2889473. ISSN 0162-8828. PMID 30602420.
  15. ^ Arya, Sunil; Mount, David (1993). „Approximate Nearest Neighbor Queries in Fixed Dimensions“. Proceedings of the Fourth Annual {ACM/SIGACT-SIAM} Symposium on Discrete Algorithms, 25.–27. Januar 1993, Austin, Texas. : 271– 280.
  16. ^ Olivier, Beaumont; Kermarrec, Anne-Marie; Marchal, Loris; Rivière, Etienne (2006). „Voro Net : Ein skalierbares Objektnetzwerk basierend auf Voronoi-Tessellationen“ (PDF) . 2007 IEEE International Parallel and Distributed Processing Symposium . Band RR-5833. S.  23–29 . doi : 10.1109/IPDPS.2007.370210 . ISBN 1-4244-0909-8. S2CID  8844431 .
  17. ^ Olivier, Beaumont; Kermarrec, Anne-Marie; Rivière, Etienne (2007). „Peer-to-Peer-Multidimensionale Overlays: Approximation komplexer Strukturen“. Principles of Distributed Systems . Lecture Notes in Computer Science. Band 4878. S.  315–328 . CiteSeerX 10.1.1.626.2980 . doi : 10.1007/978-3-540-77096-1_23 . ISBN  978-3-540-77095-4Die
  18. ^ Malkov, Yury; Ponomarenko, Alexander; Krylov, Vladimir; Logvinov, Andrey (2014). „Approximativer Nearest-Neighbor-Algorithmus basierend auf navigierbaren Small-World-Graphen“. Information Systems . 45 : 61–68 . doi : 10.1016/j.is.2013.10.006 . S2CID 9896397 . 
  19. ^ Toussaint, Godfried (1980). „Der relative Nachbarschaftsgraph einer endlichen planaren Menge“. Pattern Recognition . 12 (4): 261–268 . Bibcode : 1980PatRe..12..261T . doi : 10.1016/0031-3203(80)90066-7 .
  20. ^ A. Rajaraman & J. Ullman (2010). "Mining of Massive Datasets, Ch. 3" .
  21. ^ Weber, Roger; Blott, Stephen. „Eine approximationsbasierte Datenstruktur für die Ähnlichkeitssuche“ (PDF) . S2CID 14613657. Archiviert vom Original (PDF) am 04.03.2017. {{cite journal}}: Zeitschrift zitieren erfordert |journal=( Hilfe )
  22. ^ Ramaswamy, Sharadh; Rose, Kenneth (2007). "Adaptive cluster-distance bounding for similarity search in image databases". ICIP .
  23. ^ Ramaswamy, Sharadh; Rose, Kenneth (2010). "Adaptive cluster-distance bounding for high-dimensional indexing". TKDE .
  24. ^ Arya, S.; Mount, DM ; Netanyahu, NS ; Silverman, R.; Wu, A. (1998). „ Ein optimaler Algorithmus für die approximative Suche nach dem nächsten Nachbarn“ (PDF) . Journal of the ACM . 45 (6): 891–923 . CiteSeerX 10.1.1.15.3125 . doi : 10.1145/293347.293348 . S2CID 8193729. Archiviert vom Original (PDF) am 3. März 2016. Abgerufen am 29. Mai 2009 .  
  25. ^ Clarkson, Kenneth L. (1983), „Schnelle Algorithmen für das Problem der nächsten Nachbarn“, 24. IEEE Symposium Foundations of Computer Science (FOCS '83) , S.  226–232 , doi : 10.1109/SFCS.1983.16 , ISBN 978-0-8186-0508-6, S2CID  16665268Die
  26. ^ Vaidya, PM (1989). „Ein O ( n  log  n ) Algorithmus für das Problem der nächsten Nachbarn“ . Discrete and Computational Geometry . 4 (1): 101–115 . doi : 10.1007/BF02187718 .

Quellen

  • Andrews, L. (November 2001). „Eine Vorlage für das Nächste-Nachbar-Problem“ . C/C++ Users Journal . 19 (11): 40–49 . ISSN  1075-2838 .
  • Arya, S.; Mount, D. M .; Netanyahu, N. S .; Silverman, R .; Wu, A. Y. (1998). „Ein optimaler Algorithmus für die approximative Suche nach dem nächsten Nachbarn in festen Dimensionen“. Journal of the ACM . 45 (6): 891–923 . CiteSeerX  10.1.1.15.3125 . doi : 10.1145/293347.293348 . S2CID  8193729 .
  • Beyer, K.; Goldstein, J.; Ramakrishnan, R.; Shaft, U. (1999). „Wann ist der nächste Nachbar sinnvoll?“. Proceedings of the 7th ICDT .
  • Chen, Chung-Min; Ling, Yibei (2002). „Ein stichprobenbasierter Schätzer für Top-k-Anfragen“. ICDE : 617–627 .
  • Samet, H. (2006). Grundlagen mehrdimensionaler und metrischer Datenstrukturen . Morgan Kaufmann. ISBN 978-0-12-369446-1Die
  • Zezula, P.; Amato, G.; Dohnal, V.; Batko, M. (2006). Ähnlichkeitssuche – Der metrische Raumansatz . Springer. ISBN 978-0-387-29146-8Die

Weiterführende Literatur

  • Shasha, Dennis (2004). Hochleistungsfähige Zeitreihenanalyse . Berlin: Springer. ISBN 978-0-387-00857-8Die
  • Nächste Nachbarn und Ähnlichkeitssuche – eine Website mit Lehrmaterialien, Software, Literatur, Forschern, offenen Problemen und Veranstaltungen zum Thema Nächste-Nachbarn-Suche. Betreut von Yury Lifshits.
  • Similarity Search Wiki – eine Sammlung von Links, Personen, Ideen, Schlüsselwörtern, Artikeln, Präsentationen, Code und Datensätzen zu nächsten Nachbarn