포인트 를 포함하는 가장 작은 축 정렬 상자


11

입력 : 세트의 에서 점 R 3 및 정수 K N .nR3kn

출력 적어도 포함한 최소 부피 축 정렬 된 경계 박스 이들 n 개의 포인트.kn

이 문제에 대해 알려진 알고리즘이 있는지 궁금합니다. 내가 생각할 수있는 최선의 방법은 다음과 같이 느슨하게 시간 이었다 . 이러한 각 O ( n 4 ) 가능성에 대해 슬라이딩 윈도우 알고리즘을 사용하여 O ( n ) 시간에 해당 1 차원 버전의 문제를 해결할 수 있습니다 .O(n5)O(n4)1O(n)


우리는 크기의 테이블 계산하지 수 점의 수를 페이지페이지 . x < x , p . y < y , p . z < z ? const 수의 연산으로 포인트 수와 부피를 계산할 수 있으며 크기가 k n 3 인 테이블을 사용하여 동적 프로그래밍을 사용할 수 있으며 O ( k n 3 ) 알고리즘 을 얻을 수 있어야 합니다. n3pp.x<x,p.y<y,p.z<zkn3O(kn3)
Kaveh

확인. 이 경우 이면 실제로 n 5 보다 나은 결과를 기대할 수 없습니다 . n 개의 서로 다른 상자 가 n 있기 때문에, k의 난수에 대한 인수의 평균을 계산하면 정확히 k 개의 점을 포함하는 n 개의 5 개의 상자가 있습니다. 검색 공간을 작게 만들기 위해 볼륨을 사용할 수 없다면 어떻게 든 낙관적 인 것처럼 보입니다 ...k=Θ(n)n5n6n5
Sariel Har-Peled

(1ϵ)kkO(((n/k)/ϵ2logn)O(1))k=Θ(n)

답변:


11

nO(n3)

1/kn/kO((n/k)3)RO(k6logn)타임스. 높은 확률로 시도한 상자 중 하나가 원하는 상자입니다.

O((n/k)3k6polylogn)=O(n3k3logO(1)n)

왜 이것이 작동하는지 확인하려면 최적의 상자를 고려하십시오. 경계에 6 포인트의 P가 있습니다. 무작위 표본이이 6 개의 점을 선택하고 상자 안의 점이 이상이 아닐 확률1k6(11/k)k61/k6=pO((1/p)logn)

Θ(n3)

O(n3log2n)


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