olika lösningar på nns-problemet har föreslagits. Kvaliteten och användbarheten av algoritmerna bestäms av tidskomplexiteten hos frågor samt rymd komplexiteten hos alla sökdatastrukturer som måste upprätthållas. Den informella observationen brukar kallas dimensionalitetens förbannelse säger att det inte finns någon generell exakt lösning för NNS i högdimensionellt euklidiskt utrymme med hjälp av polynomförbearbetning och polylogaritmisk söktid.,

exakt metodsedit

linjär sökedit

den enklaste lösningen på nns-problemet är att beräkna avståndet från frågepunkten till alla andra punkter i databasen, hålla reda på ”bäst hittills”. Denna algoritm, ibland kallad den naiva metoden, har en körtid på O (dN), där N är kardinaliteten hos S och d är dimensionaliteten hos M. Det finns inga sökdatastrukturer att underhålla, så linjär sökning har ingen rymd komplexitet bortom lagringen av databasen., Naiv sökning kan i genomsnitt överträffa rymdpartitioneringsmetoder på högre dimensionella utrymmen.

Utrymme partitioningEdit

sedan 1970-talet har grenen och bunden metod tillämpats på problemet. När det gäller euklidiskt utrymme omfattar denna metod rumsliga index-eller rumsliga åtkomstmetoder. Flera rymdpartitioneringsmetoder har utvecklats för att lösa nns-problemet. Kanske är det enklaste k-d-trädet, vilket iterativt bisekterar sökutrymmet i två regioner som innehåller hälften av huvudregionens punkter., Frågor utförs via traversal av trädet från roten till ett blad genom att utvärdera frågepunkten vid varje delning. Beroende på det avstånd som anges i frågan Kan närliggande grenar som kan innehålla träffar också behöva utvärderas. För konstant dimensionsfrågetid är genomsnittlig komplexitet O (log N) vid slumpmässigt fördelade punkter är värsta fallkomplexiteten O(kN^(1-1/k)) alternativt r-tree-datastrukturen utformad för att stödja närmaste grannsökning i dynamiskt sammanhang, eftersom den har effektiva algoritmer för Infogningar och raderingar som r* – trädet., R-träd kan ge närmaste grannar inte bara för euklidiska avstånd, men kan också användas med andra avstånd.

När det gäller allmänt metriskt utrymme kallas den gren-och-bundna metoden metriskt träd. Särskilda exempel är VP-tree och BK-tree metoder.

med hjälp av en uppsättning punkter som tagits från ett tredimensionellt utrymme och läggs i ett BSP-träd, och med tanke på en frågepunkt som tagits från samma utrymme, ges en möjlig lösning på problemet med att hitta närmaste punktmolnpunkt till frågepunkten i följande beskrivning av en algoritm., (Strängt taget kan ingen sådan punkt existera, eftersom den kanske inte är unik. Men i praktiken brukar vi bara bry oss om att hitta någon av delmängden av alla punktmolnpunkter som finns på kortast avstånd till en given frågepunkt.) Tanken är, för varje förgrening av trädet, gissa att den närmaste punkten i molnet ligger i halva utrymmet som innehåller frågepunkten. Detta kanske inte är fallet, men det är en bra heuristisk., Efter att ha rekursivt gått igenom alla problem med att lösa problemet för det gissade halvrummet, jämför nu Avståndet som returneras av detta resultat med det kortaste avståndet från frågepunkten till partitioneringsplanet. Detta senare avstånd är att mellan frågepunkten och närmaste möjliga punkt som kan existera i halva utrymmet inte sökt. Om detta avstånd är större än det som returnerades i det tidigare resultatet, är det tydligt att det inte finns något behov av att söka i det andra halvrummet., Om det finns ett sådant behov måste du gå igenom problemet med att lösa problemet för det andra halva utrymmet och jämföra sedan resultatet med det tidigare resultatet och returnera sedan det korrekta resultatet. Resultatet av denna algoritm är närmare logaritmisk tid än linjär tid när frågepunkten ligger nära molnet, eftersom avståndet mellan frågepunkten och närmaste punkt-molnpunkten närmar sig noll, behöver algoritmen bara utföra en sökning med hjälp av frågepunkten som en nyckel för att få rätt resultat.,

Approximation methodsEdit

en ungefärlig närmaste granne sökalgoritm får returnera punkter, vars avstånd från frågan är högst C {\displaystyle c} gånger avståndet från frågan till dess närmaste punkter. Överklagandet av detta tillvägagångssätt är att i många fall är en ungefärlig närmaste granne nästan lika bra som den exakta. I synnerhet, om avståndsmätningen noggrant fångar begreppet användarkvalitet, bör små skillnader i Avståndet inte spela någon roll.,

girig sökning i närheten graphsedit

metoderna är baserade på giriga traversering i närhet graphs g (v,E ) {\displaystyle G(V, E)} där varje punkt X i s {\displaystyle x_{i}\I S} är unikt associerad med vertex V i V {\displaystyle v_{i}\I v} . Sökningen efter närmaste grannar till en fråga q i uppsättningen S sker i form av att söka efter vertexen i grafen G ( v , E ) {\displaystyle G(V,e)} .,Den grundläggande algoritmen-girig sökning-fungerar enligt följande: sökningen startar från en enter-point vertex V I V {\displaystyle v_{I}\i v} genom att beräkna avstånden från frågan q till varje vertex i sitt grannskap { v j : ( v i , v j) e } {\displaystyle \{v_{j}:(v_{i},v_{j})\I E\}} , och hittar sedan ett vertex med det minimala avståndsvärdet. Om avståndsvärdet mellan frågan och det valda vertexet är mindre än det mellan frågan och det aktuella elementet, flyttas algoritmen till det valda vertexet och det blir ny inmatningspunkt., Algoritmen stannar när den når ett lokalt minimum: ett vertex vars grannskap inte innehåller ett vertex som ligger närmare frågan än själva vertexen.

idén om närhetsgrafer i närheten exploaterades i flera publikationer, inklusive seminalpappret av Arya och Mount, i VoroNet – systemet för planet, i RayNet-systemet för e n {\displaystyle \ mathbb {e} ^{n}}, och i den Metriserade lilla världen och hnsw-algoritmerna för det allmänna fallet med utrymmen med avståndsfunktion., Dessa verk föregicks av ett banbrytande papper av Toussaint, där han introducerade begreppet en relativ grannskapsgraf.

ort sensitive hashingEdit

ort sensitive hashing (LSH) är en teknik för att gruppera punkter i rymden i ”hinkar” baserat på vissa avstånd metriska arbetar på punkterna. Punkter som ligger nära varandra under det valda metriska mappas till samma hink med stor sannolikhet.,

närmaste grannsökning i utrymmen med liten inbyggd dimensionEdit

omslagsträdet har en teoretisk gräns som baseras på datauppsättningens fördubblingskonstant. Den bundna söktiden är O (C12 log n) där C är expansionskonstanten för datauppsättningen.

Projected radial searchEdit

i det speciella fallet där data är en tät 3D-karta över geometriska punkter kan projektionsgeometrin för avkänningstekniken användas för att dramatiskt förenkla sökproblemet.,Detta tillvägagångssätt kräver att 3D-data organiseras av en projektion till ett tvådimensionellt rutnät och förutsätter att data är rumsligt slät över närliggande rutnätsceller med undantag för objektgränser.Dessa antaganden gäller vid hantering av 3D-sensordata i applikationer som mätning, robotik och stereovision men får inte hålla för oorganiserade data i general.In öva denna teknik har en genomsnittlig söktid på O (1) eller O (K) för K-närmaste grannproblem när de appliceras på verkliga stereo vision data.,

vektor approximation filesEdit

i högdimensionella utrymmen blir trädindexeringsstrukturer värdelösa eftersom en ökande andel av noderna måste undersökas ändå. För att påskynda linjär sökning används en komprimerad version av funktionsvektorerna som lagras i RAM för att förfiltrera datauppsättningarna i en första körning. De slutliga kandidaterna bestäms i ett andra steg med hjälp av okomprimerade data från disken för avståndsberäkning.,

Compression/clustering based searchEdit

VA-file-metoden är ett speciellt fall av en komprimeringsbaserad sökning, där varje funktionskomponent komprimeras jämnt och självständigt. Den optimala kompressionstekniken i flerdimensionella utrymmen är Vektorkvantisering (VQ), implementerad genom klustring. Databasen är grupperad och de mest” lovande ” klustren hämtas. Stora vinster över VA-fil, trädbaserade index och sekventiell skanning har observerats. Notera också parallellerna mellan klustring och LSH.