NNS 문제에 대한 다양한 해결책이 제안되었습니다. 품질성과 유용성의 알고리즘에 의해 결정되는 시간 복잡도의 쿼리로 공간 복잡한 모든 데이터의 구조는 유지되어야 합니다. 비공식적인 관찰이 일반적으로 저주의 차원국이 없다는 것을 일반적인 용도는 정확한 솔루션을 위한 NNS 에서 높은 차원 유클리드 공간을 사용하여 다항식 전처리 및 polylogarithmic 검색 시간을 단축할 수 있습니다.,

정확한 methodsEdit

선형 searchEdit

가장 간단한 해결책을 NNS 문제를 컴퓨팅의 거리에서 쿼리를 점하여 다른 모든 지점에서 데이터베이스의 추적을 유지는”최고의 지금까지”. 이 알고리즘,때때로 순진한 접근 방식은,실행 시간의 O(dN),N 카디의 S,d 가 차원의 M. 없 검색에 대한 데이터 구조를 유지하므로,선형 검색 공간 복잡성을 넘어관의 데이터베이스입니다., 순진한 검색은 평균적으로 고차원 공간에서 공간 분할 접근 방식을 능가 할 수 있습니다.

공간 partitioningEdit

1970 년대부터 분기 및 바운드 방법론이 문제에 적용되었습니다. 유클리드 공간의 경우이 접근법은 공간 인덱스 또는 공간 액세스 방법을 포함합니다. NNS 문제를 해결하기 위해 여러 공간 분할 방법이 개발되었습니다. 아마도 가장 간단한 k-d 트리는 반복적으로 참 검색 공간으로 두 개의 지역을 포함하는 포인트 부모의 영역이다., 쿼리는 각 분할에서 쿼리 지점을 평가하여 루트에서 리프까지의 트리 순회를 통해 수행됩니다. 쿼리에 지정된 거리에 따라 히트를 포함 할 수있는 이웃 분기도 평가해야 할 수 있습니다. 지속적인 차원 쿼리 시간,평균 복잡도 O(로그 N)의 경우에는 임의로 분산된 지점,최악의 경우 복잡도 O(kN^(1-1/k))또는 R-tree 데이터 구조를 지원하도록 설계되었습니다 가장 가까운 이웃에서 검색을 동적 컨텍스트,그것은 효율적인 알고리즘에 대한 삽입과 삭제 등의 연구*트리입니다., R-나무는 유클리드 거리뿐만 아니라 가장 가까운 이웃을 산출 할 수 있지만 다른 거리와 함께 사용할 수도 있습니다.

일반 메트릭 공간의 경우 분기 및 바인딩 접근법을 메트릭 트리 접근법이라고합니다. 특정 예로는 vp-tree 및 BK-tree 메소드가 있습니다.

를 사용하여 설정 포인트의 촬영에서 3 차원 공간에 넣어 BSP 트리,그리고 주어진 쿼리점에서 찍은 동일한 공간에서 문제에 대한 해결 방안을 찾는 가장 가까운 포인트-포인트 클라우드 쿼리점에서 주어진 다음에 대한 설명 알고리즘이 있습니다., (엄밀히 말하면,고유하지 않을 수 있기 때문에 그러한 점은 존재하지 않을 수 있습니다. 그러나 실제로는,일반적으로 우리에만 관리를 찾는 것에 대해 어떤 하나의 하위 집합의 모든 포인트 클라우드 포인트에 존재하는 가장 짧은 거리를 지정된 쿼리점입니다.)아이디어는 트리의 각 분기에 대해 클라우드의 가장 가까운 지점이 쿼리 지점을 포함하는 반 공간에 상주한다고 추측합니다. 이것은 그렇지 않을 수도 있지만 좋은 휴리스틱입니다., 후 재귀적으로 사라를 통해 모든 문제의 해결에 대한 문제를 짐작이 반이 공간,이는 거리에 의해 반환되는 이 결과 함께 가장 짧은 거리에서 쿼리점을 분할기입니다. 이 후자의 거리는 사 쿼리점 및 가능한 가장 가까운 포인트 존재할 수 있는 반간 검색되지 않습니다. 이 거리가 이전 결과에서 반환 된 것보다 크면 분명히 나머지 반 공간을 검색 할 필요가 없습니다., 이와 같은 요구가 있는 경우 필요,그 다음 당신이 가야를 통해 문제의 해결에 대한 문제는 다른 절반을 공간,그리고 다음을 비교 결과를 전자의 결과를 반환한 적절한 결과입니다. 알고리즘의 성능 향하여 로그 시간보다는 선형 시간 경우 쿼리점 근처에는 클라우드기 때문에,사이의 거리로 쿼리점과 가장 가까운 포인트 클라우드점 가까워지면 제로,알고리즘의 요구만 수행하는 보를 사용하여 쿼리점을 얻을 수있는 키에 올바른 결과입니다.,

근사치 methodsEdit

대략 가장 가까운 이웃 검색 알고리즘을 사용하는 점,그리 쿼리에서 대부분의 c{\displaystyle c}시간 거리에서 쿼리는 가장 가까운 점입니다. 이 접근법의 매력은 많은 경우에 대략적인 가장 가까운 이웃이 정확한 것만큼이나 좋다는 것입니다. 특히,거리 측정이 사용자 품질의 개념을 정확하게 포착한다면 거리의 작은 차이는 중요하지 않아야합니다.,

욕심에서 검색을 근접 지역 graphsEdit

방법에 기반한 욕심을 순회하에 근접 지역은 그래프 G(V,전자){\displaystyle G(V,전자)}는 모든 지점 x i∈S{\displaystyle 무리수{i}\S}고유와 관련된 정점 v i∈V{\displaystyle v_{i}\V}. 집합 S 에서 쿼리 q 에 가장 가까운 이웃에 대한 검색은 그래프 G(V,E){\displaystyle G(V,E)}에서 정점을 검색하는 형식을 취합니다.,기본 알고리즘–욕심을 검색하는 절차는 다음과 같습니다.에서 검색을 시작하는 입력 포인트 정점 v i∈V{\displaystyle v_{i}\V}의 컴퓨팅의 거리에서 q 쿼리하여 각각의 정점의 해당 지역{v j:(v i,v j)∈E}{\displaystyle\{v_{j}:(v_{i},v_{j})\E\}}, 를 찾을 꼭지점과의 최소 거리 값이 있습니다. 는 경우리 사이의 값을 쿼리 및 꼭지점을 선택한보다 작은 하나의 사 쿼리고 현재 요소,다음 알고리즘을 이동하여 선택한 점,그리고 그것은 새로운 입력 있습니다., 알고리즘은 로컬 최소값에 도달하면 멈 춥니 다.이웃이 정점 자체보다 쿼리에 더 가까운 정점을 포함하지 않는 정점.

의 아이디어 호텔에 근접한 그래프 악용되었다에 여러 출판물을 포함하여 정액에 종이로는 아리아와 산으로,에만을 위해 시스템,비행기에서 RayNet 시스템에 대한 E n{\displaystyle\mathbb{E}^{n}},그리고 Metrized 작은 세계 HNSW 알고리즘에 대한 일반적인 경우의 공간과 거리는 기능이다., 이 작품들은 Toussaint 의 선구적인 논문이 선행되었으며,그는 상대적인 이웃 그래프의 개념을 소개했습니다.

지역에 민감한 hashingEdit

Locality sensitive hashing(LSH)기술입니다 그룹화에 대한 포인트에서 공간으로’버킷’기반으로 약간의 거리 측정의 운영에 포인트입니다. 선택한 메트릭 아래에서 서로 가까운 점은 높은 확률로 동일한 버킷에 매핑됩니다.,

가장 가까운 이웃에서 검색을 공백으로 작은 본질적인 dimensionEdit

커버리는 이론적 바인딩을 기반으로 하는 데이터 집합의 두배로 하는 상수입니다. 검색 시간에 바인딩은 O(c12log n)이고 c 는 데이터 세트의 확장 상수입니다.

예상 레이디얼 searchEdit

특별한 경우에는 데이터는 고밀도의 3 차원 지도학점,영사의 기하학 센싱 기술을 사용할 수 있습을 극적으로 검색을 간소화하 문제이다.,이 접근 방식이 필요합 3D 데이터를 조직하여 프로젝션을 두 차원 그리드에서는 데이터는 공간적으로 부드럽에 걸쳐 이웃한 격자세포를 제외의 객체의 경계.이러한 가정은 유효한을 처리할 때 3D 센서 데이터와 같은 어플리케이션으로 조사,로봇 및 스테레오 시각에 적용되지 않을 수도 있습 조직화된 데이터에서는 일반적이다.실제로 이 기술에는 평균 검색 시간의 O(1),O(K)에 대한 k-가장 가까운 이웃을 때 문제 적용해 실제 세계의 스테레오 비전 데이터입니다.,

벡터 근사치 filesEdit

에서 높은 차원의 공간,tree 인덱싱 구조가 쓸모가 없기 때문에 증가하는 비율의 노드를 검토될 필요가 어쨌든. 속도 선형 검색,압축된 버전의 특징 벡터를 RAM 에 저장하는 데 사용 pre 필터 데이터세트에서 실행됩니다. 최종 후보자는 거리 계산을 위해 디스크에서 압축되지 않은 데이터를 사용하여 두 번째 단계에서 결정됩니다.,

압축/클러스터링 기반 searchEdit

버지니아-파일의 접근 방식은 특별한 경우의 압축을 기반으로 검색,각 구성 요소의 압축 균일하고 독립적으로. 다차원 공간에서 최적의 압축 기술은 클러스터링을 통해 구현 된 벡터 양자화(Vq)입니다. 데이터베이스가 클러스터되고 가장”유망한”클러스터가 검색됩니다. VA 파일,트리 기반 인덱스 및 순차 스캔에 대한 엄청난 이익이 관찰되었습니다. 또한 클러스터링과 LSH 사이의 유사점에 주목하십시오.