Ulike løsninger til NNS problemet har blitt foreslått. Kvaliteten og nytten av algoritmer er bestemt av tid kompleksiteten av spørringer samt plass kompleksiteten av alle søk data strukturer som må vedlikeholdes. Den uformelle observasjon vanligvis referert til som the curse of dimensionality sier at det er ingen generell nøyaktig løsning for NNS i høy-dimensjonale Euclidean plass med polynom forbehandling og polylogarithmic søk gang.,

Nøyaktig methodsEdit

Lineær searchEdit

Den enkleste løsningen til NNS problemet er å beregne avstand fra spørringen poenget til alle andre punkt i databasen, holde styr på den «beste så langt». Denne algoritmen, noen ganger referert til som den naive tilnærming, har en kjøretid på O(dN), der N er cardinality av S og d er dimensionality av M. Det er ingen søk i data strukturer, for å opprettholde, så lineært søk har ingen plass kompleksitet utover lagring av databasen., Naiv søk kan, i gjennomsnitt gjør det bedre enn plass partisjonering tilnærminger på høyere dimensjonale rom.

Plass partitioningEdit

Siden 1970-tallet, grenen og bundet metodikk har blitt brukt til problemet. I tilfelle av Euclidean plass denne tilnærmingen omfatter romlig index-eller romlig tilgang metoder. Flere space-partisjonering metoder har blitt utviklet for å løse NNS problem. Kanskje det enkleste er k-d-treet, som iterativt bisects søk plass i to regioner som inneholder halvparten av poengene med den overordnede regionen., Søkene er utført via traversal av treet fra roten til et blad ved å evaluere spørring punkt på hver split. Avhengig av den avstand som er angitt i spørringen, nabolandet grener som kan inneholde treff kan også behov for å bli vurdert. For konstant dimensjon spørring tid, gjennomsnittlig kompleksiteten er O(log N) i tilfelle av tilfeldig fordelt poeng, verste fall kompleksiteten er O(kN^(1-1/k))Alternativt R-tree data struktur var utformet for å støtte nærmeste nabo søk i en dynamisk kontekst, som det har effektive algoritmer for innsettinger og slettinger som R* treet., R-trær kan gi nærmeste naboer ikke bare for Euclidean distance, men kan også brukes med andre avstander.

I tilfelle av generelle metriske rom, grenen-og-bundet tilnærming er kjent som den metriske treet tilnærming. Spesielle eksempler inkluderer vp-treet og BK-tre metoder.

ved Hjelp av et sett av punkter som er tatt fra en 3-dimensjonal plass og satt inn i en BSP treet, og gitt en spørring punkt hentet fra den samme plassen, til en mulig løsning på problemet med å finne nærmeste punkt-cloud point til spørringen punktet er gitt i den følgende beskrivelse av en algoritme., (Strengt tatt ingen slike punkt kan finnes, fordi det kan ikke være unikt. Men i praksis, vanligvis er vi bare bryr seg om å finne en av de delmengde av alle pek-cloud poeng som finnes på kortest avstand til en gitt spørring punkt.) Ideen er, for hver forgrening av treet, antar at det nærmeste punktet i cloud ligger i half-plass inneholder spørringen punkt. Dette kan ikke være tilfelle, men det er en god heuristiske., Etter å ha undermapper gått gjennom alle problemer løse problemet for de gjettet halv plass, nå sammenligne den avstand som returneres av dette resultatet med den korteste avstanden fra spørringen punkt til oppdeling flyet. Denne sistnevnte avstand er det mellom spørringen punktet, og nærmest mulig punkt som kan finnes i halv-plass ikke søkte. Hvis denne avstanden er større enn det som er tilbake i tidligere resultat, så klart det er ikke nødvendig å søke den andre halvparten-plass., Hvis det er et slikt behov, må du gå gjennom bryet med å løse problemet for den andre halvparten plass, og deretter sammenligne resultatet til den tidligere resultat, og deretter returnere den riktige resultatet. Resultatene av denne algoritmen er nærmere logaritmisk tid enn lineær tid når spørringen punktet er i nærheten av cloud, fordi avstanden mellom spørringen punktet og det nærmeste punktet-cloud point nærmer seg null, algoritmen må bare utføre en titt opp ved hjelp av spørringen punkt som en nøkkel for å få riktig resultat.,

Tilnærming methodsEdit

En omtrentlig nærmeste nabo søk algoritmen er lov til å returnere poeng, hvis avstanden fra spørringen er på de fleste p {\displaystyle c} ganger avstanden fra spørring til sin nærmeste poeng. Appell av denne tilnærmingen er at, i mange tilfeller, en omtrentlig nærmeste nabo er nesten så godt som nøyaktig ett. Spesielt, hvis avstanden måle nøyaktig fanger begrepet brukeren kvalitet, så små forskjeller i avstand bør ikke saken.,

Grådige søk i nærhet nabolaget graphsEdit

metodene er basert på grådige traversing i nærheten nabolaget grafer G ( V , E ) {\displaystyle G(V,E)} der hvert punkt x i ∈ S {\displaystyle x_{i}\i S} er unikt knyttet til vertex v i ∈ V {\displaystyle v_{i}\i V} . Søk etter nærmeste naboer til en spørring q i settet S tar form av å søke etter toppunktet på grafen G ( V , E ) {\displaystyle G(V,E)} .,Den grunnleggende algoritme – grådige søk – fungerer som følger: søk starter fra et inn-punkt vertex v i ∈ V {\displaystyle v_{i}\i V} ved å beregne avstander i forhold til spørringen q til hver toppunktet av sin nabolaget { v j : ( v i , v j ) ∈ E } {\displaystyle \{v_{j}:(v_{i},v_{j})\E\}} , og så finner en vertex med en minimal avstand verdi. Hvis avstanden verdi mellom spørringen, og den valgte vertex er mindre enn den mellom spørring og det aktuelle elementet, og deretter algoritmen går til den valgte toppunkt, og det blir nye inn-punktet., Algoritmen stopper når den når et lokalt minimum: et toppunkt hvis området ikke inneholder et toppunkt som er nærmere spørring enn toppunktet i seg selv.

ideen om nærhet nabolaget grafer ble utnyttet i flere publikasjoner, blant annet den første papir av Arya og Mount, i VoroNet system for fly, i RayNet system for E n {\displaystyle \mathbb {E} ^{n}} , og i Metrized Lille Verden og HNSW algoritmer for det generelle tilfellet av områder med en avstand funksjon., Disse arbeidene ble innledet med en banebrytende papir av Toussaint, der han introduserte konseptet med en relativ nabolaget grafen.

Lokaliteten sensitive hashingEdit

Lokaliteten sensitive nummerering (LSH) er en teknikk for gruppering poeng i verdensrommet i «bøtter», basert på en viss avstand beregning opererer på poeng. Punkter som ligger nær hverandre under valgt beregningen er tilordnet de samme bøtte med høy sannsynlighet.,

Nærmeste nabo søk i områder med liten egenverdi dimensionEdit

dekselet treet har en teoretisk bundet som er basert på datasettet er dobling konstant. Den er bundet på søk tiden er O(c12 log n) der c er konstant ekspansjon av datasettet.

Anslått radial searchEdit

I det spesielle tilfellet der dataene er en tett 3D-kart av geometriske punkter, projeksjon geometri sensing teknikk kan brukes for å dramatisk forenkle søk problemet.,Denne tilnærmingen krever at 3D-data som er organisert av en projeksjon til en to-dimensjonal rutenett, og forutsetter at data er romlig glatt over nærliggende grid celler med unntak av objektet grenser.Disse forutsetningene er gyldig når du arbeider med 3D-sensor data i applikasjoner som landmåling, robotics og stereo vision men kan ikke holde for uorganiserte data generelt.I praksis er denne teknikken har en gjennomsnittlig søketid på O(1) O(K) for k-nærmeste nabo problem når den brukes til virkelige verden stereo vision-data.,

Vektor tilnærming filesEdit

I høy-dimensjonale rom, tre indeksering strukturer blir ubrukelig fordi en økende andel av nodene trenger å bli undersøkt likevel. For å øke hastigheten lineær søk, en komprimert versjon av egenskapsvektorer som er lagret i internminnet brukes til sil datasett i en første løp. Den siste kandidaten er fastsatt i en annen scene ved hjelp av ukomprimerte data fra disken for avstand beregning.,

Kompresjon/clustering basert searchEdit

VA-fil tilnærming er et spesielt tilfelle av en komprimering basert søk, der hver funksjon komponent er komprimert enhetlig og uavhengig. Optimal komprimering teknikk i flerdimensjonale rom er Vektor Kvantisering (VQ), implementert gjennom klynging. Databasen er gruppert og den mest «lovende» klynger er hentet. Store gevinster over VA-Fil, tre-baserte indekser og sekvensiell søk har blitt observert. Merk også paralleller mellom klynger og LSH.