비 유클리드 구성 공간을위한 가장 가까운 이웃 데이터 구조


15

RRT 모션 플래너에서 사용하기 위해 가장 가까운 이웃 구조를 구현하려고합니다. 선형 무차별 가장 가까운 이웃 검색보다 나은 작업을 수행하기 위해 kd-tree와 같은 것을 구현하고 싶습니다. 그러나 kd-tree의 고전적인 구현은 공간의 각 차원이 "왼쪽"과 "오른쪽"으로 나눌 수 있다고 가정합니다. 예를 들어이 개념은 SO (2)와 같은 비 유클리드 공간에는 적용되지 않는 것 같습니다.

나는 완전히 회전 링크가있는 직렬 조작기 암으로 작업하고 있습니다. 즉, 로봇 구성 공간의 각 치수는 SO (2)이므로 유클리드가 아닙니다. 이러한 종류의 하위 공간을 처리하기 위해 kd-tree 알고리즘을 수정할 수 있습니까? 그렇지 않은 경우, 업데이트 및 쿼리가 쉽지만 이러한 비 유클리드 하위 공간을 처리 할 수있는 가장 가까운 이웃 구조가 있습니까? FLANN 도 살펴 보았지만 유클리드가 아닌 하위 공간을 처리 할 수 ​​있는지 여부는 문서에서 명확하지 않았습니다.


그건 그렇고, 근사치에 가까운 이웃도 괜찮습니다 (속도 향상이 중요한 경우에도 선호)
giogadi

1
훌륭한 답변을 수락했지만 일반적으로 다른 옵션을 제공 할 수있는 추가 답변을 방해하지 않도록 답변을 수락하기 전에 며칠을 기다리는 것이 좋습니다.
마크 부스

고마워 마크, 나는 대답을 수락하기 전에 얼마나 기다려야할지 실제로 불확실했다.
giogadi

답변:


6

kd-tree는 일반적으로 작은 유클리드 메트릭 공간에서만 작동하는 것이 맞습니다. 그러나 미터법 공간 (일반적으로 거리 기능을 정의 할 수있는 곳)에서 가장 가까운 일반 이웃 응용 프로그램에는 많은 작업이 있습니다.

고전적인 작품은 볼 트리 에 관한 것이며, 그런 다음 메트릭 트리 로 일반화되었습니다 .

GPL 코드를 가진 커버 트리 라는 새로운 작업 이 있습니다. 2 년 이상이 트리와 kd- 트리의 성능 특성을 살펴보고 싶었습니다.

희망적으로, 그것은 당신의 응용에 적합합니다.


받아 들여서 죄송합니다. 다른 질문자의 조언에 따라이 질문에 몇 일을 더 뿌려 "버릴"것입니다. 그래도 귀하의 답변이 도움이되었다는 것을 알게되었습니다!
지오 가디

멍청 아 농담이야 도움이되었다 니 다행입니다.
Chris Mansley

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.