두 세트 감안 와 각각 포함하는 면에서 분리 된 지점에서, A 지점 사이의 최단 거리를 계산 과 점을 , 즉 .
내가 옳은지는 잘 모르겠지만,이 문제는 계산 기하학의 선형 프로그래밍으로 해결할 수있는 문제와 매우 유사합니다. 그러나 LP 로의 축소는 간단하지 않습니다. 또한 내 문제는 2 차원 공간 에서 O (n)의 LP로 해결할 수있는 두 세트의 점 사이에서 가장 얇은 팁을 찾는 것과 관련이 있습니다 .
두 세트 감안 와 각각 포함하는 면에서 분리 된 지점에서, A 지점 사이의 최단 거리를 계산 과 점을 , 즉 .
내가 옳은지는 잘 모르겠지만,이 문제는 계산 기하학의 선형 프로그래밍으로 해결할 수있는 문제와 매우 유사합니다. 그러나 LP 로의 축소는 간단하지 않습니다. 또한 내 문제는 2 차원 공간 에서 O (n)의 LP로 해결할 수있는 두 세트의 점 사이에서 가장 얇은 팁을 찾는 것과 관련이 있습니다 .
답변:
약간 복잡한 것처럼 보일 수있는 솔루션이 있지만 순진한 무차별 검색 보다 효율적이어야합니다 .
나머지는 의사 코드로 명확하게합니다.
d = infinity.
for j from 1 to n
if (b_1 - a_j) along v > d then break endif
for k from 1 to n
if (b_k - a_j) along v > d then
break
else
d = min( d , ||b_k - a_j|| )
endif
enddo
enddo
즉함으로써, 따라 포인트를 미리 정렬 , 당신이 내 없을 것 쌍 필터링 할 수 있습니다 있기 때문에 서로를 함께 항상있을 것입니다.
더 나쁜 경우 이것은 여전히 이지만 와 가 잘 분리되어 있으면 그보다 훨씬 빠르지 만 보다 빠르지 않아야 합니다. 정렬을 위해.
최신 정보
이 솔루션은 결코 모자에서 뽑아지지 않습니다. 파티클 시뮬레이션에서 공간 비닝과 상호 작용하는 모든 입자 쌍을 찾기 위해 사용하는 특별한 경우입니다. 더 일반적인 문제를 설명하는 내 자신의 작업이 여기 있습니다 .
수정 된 라인 스윕 알고리즘을 사용하라는 제안은 직관적으로 간단하지만 분리 세트를 고려할 때 이것이 임을 확신하지 못합니다 . Rabin의 무작위 알고리즘도 마찬가지입니다.
이 개별 세트에서 가장 가까운 쌍의 문제를 다루는 많은 문헌 될 것 같지 않습니다,하지만 난 찾은 이 아래에있는에 청구 할 수없는, , 그리고 이 , 보이지 않는를 어떤 것에 대한 주장을합니다.
위의 알고리즘은 첫 번째 논문 (Shan, Zhang 및 Salzberg)에서 제안 된 평면 스윕의 변형으로 볼 수 있지만 축을 사용하고 정렬하지 않고 세트 사이의 축을 사용하고 세트를 순회합니다. 내림차순 / 오름차순으로
"가장 가까운 쌍" 라인 스윕 알고리즘 인 적용 할 수 있습니다 .
동일한 세트에 속하는 쌍을 무시하는 것이 유일한 변경입니다.
편집 : 이것은 실제로 설명한 것처럼 간단하지 않습니다. 토론 의견을 참조하십시오.
이와 같은 문제에 대한 아이디어는 가장 가까운 이웃을 효율적으로 쿼리 할 수있는 집합 중 하나에서 정렬 된 구조를 만드는 것입니다. 임의의 차원에 대한 O (log n) 쿼리 구조를 제시 한 고전 논문은 다음과 같습니다.
Delauney 테셀레이션의 아이디어를 기반으로하는 다른 많은 공간 파티션이 그 이후로 만들어졌으며 다양한 하위 공간 스윕 설명으로 변환됩니다. Voronoi 방법은 구성 단계 O (n log n)를 만드는 평면 파티셔닝으로 인해 일반적인 분할 및 정복 설명에 속합니다.
따라서이 문제에 대한 기본 해결책은 다음과 같습니다.
각 단계의 복잡성을 보면 알 수 있듯이 총 복잡도는 O (n log n)입니다. 고전 논문을 보지 않는 현대 독자의 경우, 이것은 Skiena의 "알고리즘 디자인 매뉴얼"과 같은 많은 알고리즘 책에서 다룹니다.
내가 옳은지는 잘 모르겠지만,이 문제는 계산 기하학의 선형 프로그래밍으로 해결할 수있는 문제와 매우 유사합니다. 그러나 LP 로의 축소는 간단하지 않습니다. 또한 내 문제는 2 차원 공간에서 LP로 해결할 수있는 두 세트의 점 사이에서 가장 얇은 팁을 찾는 것과 관련이 있습니다.
이 문제의 하한은 대수 의사 결정 트리 모델에서. 나는 여기에 그 증거의 대략적인 스케치를 줄 것이다.
요소 구별 문제 E의 인스턴스를 C로 줄입니다.
요소 구별 문제를 결정하기위한 런타임의 하한은 . 따라서 하한을 줄임으로써 우리의 문제에도 적용됩니다.