zaproponowano różne rozwiązania problemu NNS. Jakość i użyteczność algorytmów zależy od złożoności czasowej zapytań, a także złożoności przestrzeni wszelkich struktur danych wyszukiwania, które muszą być utrzymywane. Nieformalna obserwacja zwykle określana jako przekleństwo wymiarowości stwierdza, że nie ma dokładnego rozwiązania ogólnego przeznaczenia dla NNS w wysokowymiarowej przestrzeni euklidesowej przy użyciu wielomianowego preprocesora i polilogarytmicznego czasu przeszukiwania.,

dokładne methodedytuj

wyszukiwanie Linioweedytuj

najprostszym rozwiązaniem problemu NNS jest obliczenie odległości od punktu zapytania do każdego innego punktu w bazie danych, śledzenie „najlepszych do tej pory”. Algorytm ten, czasami nazywany naiwnym podejściem, ma czas działania O (dN), gdzie N jest kardynalnością S, A d jest wymiarowością M. nie ma żadnych struktur danych wyszukiwania do utrzymania, więc wyszukiwanie liniowe nie ma złożoności przestrzeni poza przechowywaniem bazy danych., Naiwne wyszukiwanie może przeciętnie przewyższać podejście do partycjonowania przestrzeni w przestrzeniach wyższych wymiarów.

partycjonowanie Przestrzeniedytuj

od lat 70.XX wieku do problemu zastosowano metodologię branch and bound. W przypadku przestrzeni euklidesowej podejście to obejmuje indeks przestrzenny lub metody dostępu przestrzennego. W celu rozwiązania problemu NNS opracowano kilka metod partycjonowania przestrzeni. Być może najprostszym jest drzewo k-d, które iteracyjnie dzieli przestrzeń wyszukiwania na dwa regiony zawierające połowę punktów regionu nadrzędnego., Zapytania są wykonywane poprzez przejście drzewa od korzenia do liścia, oceniając punkt zapytania przy każdym podziale. W zależności od odległości określonej w zapytaniu, sąsiednie gałęzie, które mogą zawierać trafienia, mogą również wymagać oceny. Dla stałych wymiarów czas zapytań, średnia złożoność wynosi O (log N) w przypadku losowo rozmieszczonych punktów, najgorsza złożoność to O(kN^(1-1/k))alternatywnie Struktura danych drzewa r została zaprojektowana do obsługi wyszukiwania najbliższego sąsiada w kontekście dynamicznym, ponieważ ma skuteczne algorytmy wstawiania i usuwania, takich jak drzewo R*., R-drzewa mogą dawać najbliższym sąsiadom Nie Tylko odległość euklidesową, ale mogą być również używane z innymi odległościami.

w przypadku ogólnej przestrzeni metrycznej podejście gałęziowo-związane jest znane jako podejście drzewa metrycznego. Przykładami są metody vp-tree i BK-tree.

używając zbioru punktów pobranych z przestrzeni trójwymiarowej i umieszczonych w drzewie BSP, a biorąc pod uwagę punkt zapytania pobrany z tej samej przestrzeni, możliwe rozwiązanie problemu znalezienia najbliższego punktu chmury punktów do punktu zapytania jest podane w poniższym opisie algorytmu., (Ściśle mówiąc, taki punkt nie może istnieć, ponieważ może nie być wyjątkowy. Ale w praktyce, zwykle zależy nam tylko na znalezieniu jednego z podzbiorów wszystkich punktów chmury punktów, które istnieją w najkrótszej odległości do danego punktu zapytania.) Zakłada się, że dla każdego rozgałęzienia drzewa najbliższy punkt w chmurze znajduje się w pół-przestrzeni zawierającej punkt zapytania. Może tak nie być, ale jest to dobra heurystyka., Po rekurencyjnym przejściu przez całą trudność rozwiązania problemu dla domyślonej pół-przestrzeni, teraz porównaj odległość zwróconą przez ten wynik z najkrótszą odległością od punktu zapytania do płaszczyzny podziału. Ta ostatnia odległość to odległość między punktem zapytania A najbliższym możliwym punktem, który mógłby istnieć w nieprzeszukiwanej pół-przestrzeni. Jeśli odległość ta jest większa niż ta zwrócona we wcześniejszym wyniku, to wyraźnie nie ma potrzeby przeszukiwania drugiej połowy-przestrzeni., Jeśli istnieje taka potrzeba, musisz przejść przez trud rozwiązania problemu dla drugiej połowy przestrzeni, a następnie porównać jego wynik z poprzednim wynikiem, a następnie zwrócić właściwy wynik. Wydajność tego algorytmu jest bliższa czasowi logarytmicznemu niż czasowi liniowemu, gdy punkt zapytania znajduje się w pobliżu chmury, ponieważ odległość między punktem zapytania A najbliższym punktem chmury punktowej zbliża się do zera, algorytm potrzebuje tylko Wyszukiwania za pomocą punktu zapytania jako klucza, aby uzyskać poprawny wynik.,

metody Aproksymacjedytuj

algorytm wyszukiwania najbliższego sąsiada może zwracać punkty, których odległość od zapytania wynosi co najwyżej c {\displaystyle C} razy odległość od zapytania do jego najbliższych punktów. Atrakcyjność tego podejścia polega na tym, że w wielu przypadkach przybliżony najbliższy sąsiad jest prawie tak dobry, jak dokładny. W szczególności, jeśli pomiar odległości dokładnie oddaje pojęcie jakości użytkownika, niewielkie różnice w odległości nie powinny mieć znaczenia.,

Greedy search in proximity neighborhood graphsEdit

metody są oparte na greedy traversing in proximity neighborhood graphs G ( V , E ) {\displaystyle G (V, E)}, w którym każdy punkt x i ∈ s {\displaystyle x_{i}\In S} jest jednoznacznie powiązany z wierzchołkiem v i ∈ v {\displaystyle v_{i} \ in V}. Wyszukiwanie najbliższych sąsiadów zapytania q w zbiorze S przyjmuje formę wyszukiwania wierzchołka w grafie G(V , E ) {\displaystyle G (V, E)}.,Podstawowy algorytm-greedy search-działa w następujący sposób: wyszukiwanie rozpoczyna się od wierzchołka punktu wejścia v i ∈ v {\displaystyle v_{i}\in v}, obliczając odległości od zapytania q do każdego wierzchołka jego sąsiedztwa { V j : ( v i,V j ) ∈ E } {\displaystyle \{v_{j}:(v_{i}, v_{j})\in e\}}, a następnie znajduje wierzchołek z minimalną wartością odległości. Jeśli odległość między zapytaniem a wybranym wierzchołkiem jest mniejsza niż odległość między zapytaniem a bieżącym elementem, wtedy algorytm przechodzi do wybranego wierzchołka i staje się nowym punktem wejścia., Algorytm zatrzymuje się, gdy osiągnie lokalne minimum: wierzchołek, którego sąsiedztwo nie zawiera wierzchołka bliższego zapytaniu niż sam wierzchołek.

idea Wykresów sąsiedztwa bliskości została wykorzystana w wielu publikacjach, w tym w artykule Arya i Mount, w systemie Voroneta dla płaszczyzny , w systemie Rayneta dla e n {\displaystyle \mathbb {E} ^{n}}, oraz w Metryzowanym małym świecie i algorytmach HNSW dla ogólnego przypadku przestrzeni z funkcją odległości., Prace te poprzedziła pionierska praca Toussainta, w której wprowadził pojęcie względnego grafu sąsiedztwa.

local sensitive hashingEdit

local sensitive hashing (LSH) jest techniką grupowania punktów w przestrzeni w „wiadra” na podstawie pewnej metryki odległości działającej na punktach. Punkty, które są blisko siebie pod wybraną metryką, są mapowane do tego samego kubła z dużym prawdopodobieństwem.,

wyszukiwanie najbliższych sąsiadów w przestrzeniach o małych wymiarach wewnętrznych

drzewo okładek ma teoretyczną oprawę opartą na podwojonej stałej zbioru danych. Czas przeszukiwania związany jest Z O (C12 log n), gdzie c jest stałą rozszerzalności zbioru danych.

Projected radial searchEdit

w szczególnym przypadku, gdy dane są gęstą trójwymiarową mapą punktów geometrycznych, geometria projekcji techniki wykrywania może być wykorzystana do radykalnego uproszczenia problemu wyszukiwania.,Takie podejście wymaga, aby dane 3D były zorganizowane przez rzut do siatki dwuwymiarowej i zakłada, że dane są przestrzennie gładkie w sąsiednich komórkach siatki z wyjątkiem granic obiektów.Założenia te są ważne w przypadku danych z czujników 3D w aplikacjach takich jak geodezja, Robotyka i widzenie stereo, ale mogą nie zawierać niezorganizowanych danych w general.In praktyka ta technika ma średni czas Wyszukiwania O (1) lub O (K)dla K-najbliższego problemu sąsiada, gdy stosuje się do rzeczywistych danych widzenia stereo.,

pliki przybliżania Wektorówedytuj

w przestrzeniach wysokowymiarowych struktury indeksujące drzewa stają się bezużyteczne, ponieważ rosnący procent węzłów i tak musi być zbadany. Aby przyspieszyć wyszukiwanie liniowe, skompresowana wersja wektorów funkcji przechowywanych w pamięci RAM jest używana do wstępnego filtrowania zbiorów danych w pierwszym uruchomieniu. Ostateczne kandydatury są ustalane w drugim etapie przy użyciu nieskompresowanych danych z dysku do obliczenia odległości.,

wyszukiwanie oparte na kompresji/klastrzeedytuj

podejście do plików VA jest szczególnym przypadkiem wyszukiwania opartego na kompresji, gdzie każdy składnik funkcji jest kompresowany równomiernie i niezależnie. Optymalną techniką kompresji w przestrzeniach wielowymiarowych jest kwantyzacja wektorowa (VQ), realizowana poprzez klastrowanie. Baza danych jest klastrowana i pobierane są najbardziej „obiecujące” klastry. Zaobserwowano ogromne zyski w stosunku do plików VA, indeksów opartych na drzewie i skanowania sekwencyjnego. Zwróć również uwagę na podobieństwa między klastrem a LSH.