2015-01-20 3 views
2

3D 공간 좌표에서 근사 식 해싱 (LSH)을 사용하여 근사 이웃을 찾을 수 있다는 많은 토론과 기사를 찾았습니다. 불행히도 모든 실제 작업 예제를 찾을 수 없었습니다. 모든 것이 단일 복사 - 붙여 넣기 코드로 수행 될 수있었습니다.C에서 LSH로 근사 식 근사 검색

저는 C# (더 구체적으로 Unity)을 사용하고 있으며 대략적인 NNS를 나타내는 일부 기사가 게임 개발을위한 빠른 접근 방식이 될 수 있음을 알았습니다. 그러나, 아직 실제 C# 구현을 찾지 못했습니다 (또는 C#이없는 경우 C++).

그렇다면이 문제에 대한 해결책을 아는 사람이 있습니까?

답변

0

LSH를 왜 3 차원으로 사용합니까? 나는 KD 나무와 같은 나무 기반 접근법을 시도해 보길 권한다. Here은 KD 나무에 대한 C# 질문입니다. KD 트리에 대해 ALGLIB을 확인할 수 있습니다.

데이터 집합에 따라 데이터 구조의 선택이 다릅니다. 당신은 내가 만든 (높은 차원에서) herehere의 몇 가지 비교를 살펴볼 수 있습니다.


당신은 C#을 맛을 얻기 위해이 링크 LSH for Finding Similar Documents from a large number of Documents in C# 를 확인할 수 있습니다. 흥미로운 질문은 here입니다.


당신은 당신이 게임 개발을 취급하고 있기 때문에, C++도 선택이 될 수 LSH 주장하는 경우는 아마도, 그래서 여기 E2LSH 라이브러리입니다.


편집

ANN은 대략 NNS과 관련이있다. 그것은 KD 나무와 BBD 나무를 사용합니다. 내 답변 ANNS here에 대한 일부 답변을 확인할 수 있습니다.

+0

안녕 사마라스, 메시지 주셔서 감사합니다. [this] (http://stackoverflow.com/questions/4350215/fastest-nearest-neighbor-algorithm) 스레드에서 [ANN] (http://www.cs.umd.edu/~mount/ANN/) 스레드를 발견했습니다.)는 내가 대략적인 이웃을 얻고있는 계정에서 kdtree보다 상당히 빠를 수 있습니다. 이것은 나를 위해 kdtrees가 충분한 성능을 보여주지 못하고 "근사한"이웃을 갖는 것이 허용되는 게임에서 내가 관심있는 것입니다. – chanfort

+0

P. C++에 관심이 많았습니다. 아직 구현되지 않았다면 C#으로 다시 작성하려고 할 수도 있습니다 ... – chanfort

+0

ANN을 원했던 것을 몰랐습니다! 답변이 좋습니까? 아니면 삭제해야합니까? – gsamaras