위치 저장 및 쿼리 알고리즘을 이해하고 있습니까?


9

GIS가 장착 된 데이터베이스의 가장 중요한 측면 중 하나는 사용자가 일부 추가 기준과 일치하는 임의의 지리적 영역 내의 모든 지점을 신속하게 쿼리 할 수있는 기능을 사용자에게 제공한다는 것입니다. (예 : "지도에서이 지점에 가장 가까운 식당 3 개를 찾으십시오.")

누구든지 관련 알고리즘에 대한 이론적 논의를 지적 할 수 있습니까? 나는 그들이 어떻게 작동하는지 배우고 싶다.

궁극적으로, 동일한 기능을 일반화 된 수치 데이터 세트 (임의의 n- 차원, 비-유클리드 공간의 큰 점 구름)에 적용하고 싶습니다. 예를 들어, 사람의 얼굴은 숫자의 벡터로 특징 지어 질 수 있습니다 : [눈 사이의 거리, 눈에서 입으로의 거리, 얼굴의 폭, 얼굴의 길이 등]. 보도 트래픽을 촬영하고 각 사람의 얼굴 특징을 추정 한 다음 나중에 "이 사람의 얼굴을주고 가장 비슷한 100 개의 얼굴을 찾으십시오"와 같은 데이터를 쿼리 할 수 ​​있기를 원합니다.

현재 이러한 일반 공간을 검색 할 수있는 기존 소프트웨어가 있습니까?

답변:


4

Preparata & Shamos고전 텍스트 에는 2 차원과 3 차원 알고리즘이 잘 설명되어 있습니다. GIS에 사용 된 알고리즘 은이 주제에 관한 여러 책을 출판 한 Hanan Samet 의 전문 분야입니다 .

보다 높은 차원의 검색은 일반적으로 예비 데이터 마이닝, 클러스터링 또는 차원 축소 기술을 통해 지원되거나 가속화됩니다. 이는 GIS가 아닌 데이터 분석 및 통계의 문제이며, 본질적으로 1에서 4 개의 유클리드 차원의 검색에 중점을 둡니다. 자세한 내용은 자매 포럼 stats.stackexchange.com 에서 클러스터링 , 차원 축소다차원 스케일링 과 같은 용어pca (주요 구성 요소 분석) 및 svm (지지 벡터 머신) 과 같은 덜 명확한 용어를 검색하십시오 . 또한 기존 소프트웨어에 대해 문의하기에 좋은 곳입니다.


4

고전적인 고생물학자는 KD 트리를 사용하여 데이터를 저장하는 것입니다 ( http://en.wikipedia.org/wiki/Kd-tree 참조 ). 이들은 트리를 아래로 이동할 때 각 차원에서 두 개의 파티션으로 데이터를 대략 절반으로 줄임으로써 작동합니다. 이들의 장점은 가장 가까운 품목을 찾을 때 추가 비용없이 가장 가까운 품목의 목록을 만들 수 있으므로 가장 가까운 3 곳의 식당에 대한 답변은 가장 가까운 곳을 찾는 것만 큼 쉽다는 것입니다.

eHarmony가 KD 트리를 사용하여 14 차원에서 "호환되는 일치 항목"을 찾는 곳을 읽었습니다.


+1 효율적인 검색 방법에 대한 간단한 설명이 훌륭하게 이루어졌습니다.
whuber

2

Netezza 가 혁신적인 공간 병렬 처리 알고리즘을 구현 했다고 들었습니다 . 백서가 여기 있습니다 .

Netezza의 비대칭 대규모 병렬 처리 아키텍처는 대칭형 다중 처리 (SMP)와 대규모 병렬 처리 (MPP)의 최상의 조합을 제공하여 기존 시스템에 필요한 복잡성, 조정 및 집계없이 공간 및 비 공간 데이터의 테라 스케일, 복잡한 쿼리 처리를 용이하게합니다.

최신 정보

나는 Netezza가 Bayes Theorem을 많이 활용한다는 것을 언급하지 않았습니다 . 여기에 비디오 모음이 있습니다 .

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