forskellige løsninger på NNS-problemet er blevet foreslået. Kvaliteten og nytten af algoritmerne bestemmes af tidskompleksiteten af forespørgsler samt rumkompleksiteten af eventuelle søgedatastrukturer, der skal opretholdes. Den uformelle observation, der normalt kaldes forbandelse af dimensionalitet, siger, at der ikke er nogen generel nøjagtig løsning til NNS i højdimensionelt euklidisk rum ved hjælp af polynomiel forbehandling og polylogaritmisk søgetid.,

nøjagtige metoderedit

lineær searchEdit

den enkleste løsning på NNS-problemet er at beregne afstanden fra forespørgselspunktet til hvert andet punkt i databasen og holde styr på “best so far”. Denne algoritme, nogle gange omtales som den naive tilgang, har en køretid på O(dN), hvor N er kardinaliteten af S og d er dimensionaliteten af M. Der er ingen søgning data strukturer for at bevare, så lineær søgning er ikke plads kompleksitet, ud over opbevaring af databasen., Naiv søgning kan i gennemsnit overgå tilgange til rumpartitionering på højere dimensionelle rum.

Space partitioningEdit

siden 1970 ‘ erne er filialen og den bundne metode blevet anvendt på problemet. I tilfælde af euklidisk rum omfatter denne tilgang rumligt indeks eller rumlige adgangsmetoder. Der er udviklet flere pladspartitioneringsmetoder til løsning af NNS-problemet. Måske er det enkleste k-d-træet, som iterativt halverer søgeområdet i to regioner, der indeholder halvdelen af punkterne i forældreområdet., Forespørgsler udføres via traversal af træet fra roden til et blad ved at evaluere forespørgselspunktet ved hver split. Afhængig af den afstand, der er angivet i forespørgslen, kan det også være nødvendigt at evaluere tilstødende grene, der kan indeholde hits. For konstant dimension forespørgsel tid, gennemsnit kompleksiteten er O(log N) i tilfælde af tilfældigt fordelte punkter, worst case kompleksiteten er O(kN^(1-1/k))Alternativt R-træ datastrukturen er designet til at understøtte nærmeste nabo søgning i dynamisk sammenhæng, som den har effektive algoritmer til indsættelser og sletninger, såsom R* træ., R-træer kan give nærmeste naboer ikke kun for euklidisk afstand, men kan også bruges med andre afstande.

i tilfælde af generelle metriske rum, gren-og-bundet tilgang er kendt som metrisk træ tilgang. Særlige eksempler omfatter VP-træ og BK-træ metoder.

Ved hjælp af et sæt punkter taget fra et 3-dimensionelt rum og sat i et BSP-træ og givet et forespørgselspunkt taget fra det samme rum, gives en mulig løsning på problemet med at finde det nærmeste punkt-skypunkt til forespørgselspunktet i den følgende beskrivelse af en algoritme., (Strengt taget kan der ikke findes noget sådant punkt, fordi det måske ikke er unikt. Men i praksis plejer vi normalt kun at finde et af undergruppen af alle punktskypunkter, der findes på kortest Afstand til et givet forespørgselspunkt.) Ideen er, for hver forgrening af træet, gætte, at det nærmeste punkt i skyen ligger i det halve rum, der indeholder forespørgselspunktet. Dette kan ikke være tilfældet, men det er en god heuristisk., Efter rekursivt at have gennemgået alle problemer med at løse problemet for det gættede halvrum, skal du nu sammenligne afstanden, der returneres af dette resultat, med den korteste afstand fra forespørgselspunktet til partitioneringsplanet. Sidstnævnte afstand er den mellem forespørgselspunktet og det tættest mulige punkt, der kunne eksistere i det halve rum, der ikke blev søgt. Hvis denne afstand er større end den, der blev returneret i det tidligere resultat, er det klart, at der ikke er behov for at søge den anden halvplads., Hvis der er et sådant behov, skal du gennemgå besværet med at løse problemet for den anden halvdel, og sammenlign derefter resultatet med det tidligere resultat, og returner derefter det rigtige resultat. Udførelsen af denne algoritme er tættere på logaritmisk tid, end lineær tid, når forespørgslen punkt er tæt sky, for som afstanden mellem query punkt, og det nærmeste punkt-sky punkt nærmer sig nul, algoritmen skal kun udføre en look-up ved hjælp af query punkt som en nøgle til at få det korrekte resultat.,

Tilnærmelsesmetoderedit

en omtrentlig nærmeste nabosøgningsalgoritme får lov til at returnere point, hvis afstand fra forespørgslen højst er C {\displaystyle c} gange afstanden fra forespørgslen til dens nærmeste punkter. Appellen ved denne tilgang er, at en omtrentlig nærmeste nabo i mange tilfælde er næsten lige så god som den nøjagtige. Især hvis afstandsmålingen nøjagtigt fanger forestillingen om brugerkvalitet, skal små forskelle i afstanden ikke have betydning.,

Grådige søgning i nærheden af kvarteret graphsEdit

De metoder, der er baseret på grådige gennemkører i nærheden af kvarteret grafer G ( V , E ) {\displaystyle G(V,E)}, hvor hvert punkt x i ∈ S {\displaystyle x_{i}\i S} er unikt forbundet med vertex v i ∈ V {\displaystyle v_{jeg}\i V} . Søgningen efter de nærmeste naboer til en forespørgsel q i sættet S har form af at søge efter Verte .et i grafen G ( V , E ) {\displaystyle G(V,E)} .,Den grundlæggende algoritme – grådige søgning – fungerer som følger: – søgning starter fra en kun-indtastning-punkt vertex v i ∈ V {\displaystyle v_{jeg}\i V} ved at beregne afstande fra forespørgslen q til hvert hjørne af dens nabolag { v j : v i , v j ) ∈ E } {\displaystyle \{v_{j}:(v_{jeg},v_{j})\E\}} , og derefter finder en knude med minimal afstand. Hvis afstandsværdien mellem forespørgslen og det valgte toppunkt er mindre end den mellem forespørgslen og det aktuelle element, flytter algoritmen til det valgte toppunkt, og det bliver nyt indtastningspunkt., Algoritmen stopper, når den når et lokalt minimum: et toppunkt, hvis kvarter ikke indeholder et toppunkt, der er tættere på forespørgslen end selve Verte .et.

tanken om nærhed kvarter grafer, der blev udnyttet i flere publikationer, herunder den skelsættende afhandling ved Arya og Montere, i VoroNet system til flyet, i RayNet system til E n {\displaystyle \mathbb {E} ^{n}} , og i Metrized Lille Verden og HNSW algoritmer for det generelle tilfælde af rum med en afstand funktion., Disse værker blev forfulgt af et banebrydende papir af Toussaint, hvor han introducerede begrebet en relativ kvartergraf.

Locality sensitive hashingEdit

Locality sensitive hashing (LSH) er en teknik til at gruppere punkter i rummet i ‘spande’ baseret på en vis afstand metrisk opererer på punkterne. Punkter, der ligger tæt på hinanden under den valgte metrisk, kortlægges med stor sandsynlighed til den samme spand.,

nærmeste nabo søgning i rum med lille intrinsic dimensionEdit

dæktræet har en teoretisk grænse, der er baseret på datasættets fordoblingskonstant. Den bundet på søgetid er O (c12 log n) hvor c er ekspansionskonstanten for datasættet.

projiceret radial searchEdit

i det specielle tilfælde, hvor dataene er et tæt 3D-kort over geometriske punkter, kan projektionsgeometrien for sensorteknikken bruges til dramatisk at forenkle søgeproblemet.,Denne tilgang kræver, at 3D-data er organiseret af en projektion til et todimensionelt gitter og antager, at dataene er rumligt glatte over tilstødende gitterceller med undtagelse af objektgrænser.Disse antagelser er gyldig, når der beskæftiger sig med 3D sensor data i applikationer såsom opmåling, robotteknologi og stereo-vision, men kan ikke holde til uorganiserede data generelt.I praksis er denne teknik, der har en gennemsnitlig søgetid på O(1) eller O(K) for k-nærmeste nabo problem, når de anvendes til den virkelige verden stereo-vision-data.,

Vector Appro approximationimation filesEdit

i højdimensionelle rum bliver træindekseringsstrukturer ubrugelige, fordi en stigende procentdel af knuderne skal undersøges alligevel. For at fremskynde lineær søgning bruges en komprimeret version af funktionsvektorerne, der er gemt i RAM, til at forfiltrere datasættene i en første kørsel. De endelige kandidater bestemmes i en anden fase ved hjælp af de ukomprimerede data fra disken til afstandsberegning.,

Compression/clustering based searchEdit

va-fil-tilgangen er et specielt tilfælde af en komprimeringsbaseret søgning, hvor hver funktionskomponent komprimeres ensartet og uafhængigt. Den optimale komprimeringsteknik i multidimensionelle rum er Vektorkvantisering (V.), implementeret gennem klyngedannelse. Databasen er grupperet og de mest “lovende” klynger hentes. Kæmpe gevinster over VA-fil, træ-baserede indekser og sekventiel scanning er blevet observeret. Bemærk også parallellerne mellem clustering og LSH.