주어진 반지름의 최대 둘러싸는 원


19

다음 문제에 대한 접근 방식을 찾으려고합니다.

와 반지름 r 의 세트로 , 원이 세트의 최대 점 수를 포함하도록 원의 중심점을 찾으십시오. 실행 시간은 O ( n 2 ) 여야합니다 .SrO(n2)

처음에는 에서 쉽게 해결할 수있는 가장 작은 엔 클로징 서클 문제와 비슷한 것으로 보였습니다 . 아이디어는 임의의 중심을 설정하고 S의 모든 지점을 둘러싼 것입니다 . 다음으로, 단계별로 원을 교체하여 가장 왼쪽 / 가장 오른쪽 점을 터치하고 원을 주어진 반지름으로 줄이십시오. 분명히 작동하지 않습니다.O(n2)S

답변:


7

시간 에이 문제를 해결하는 방법을 모르지만 O ( n 2 log n ) 알고리즘이 존재합니다.O(n2)O(n2logn)

하자 는 중심 인 원 수 s의 I를 상기 반경을 가진 번째 포인트, R . 이 지점 세트 찾기 어렵지 않다 P = { P 0 , P 1 , ... , P는 m이 } 반경을 가진 원에 의해 둘러싸인 수 R 교차 IFF I ( P )C ( P 0 ) , C ( P 1 ) , C(si)siirP={p0,p1,,pm}rI(P) 는 비어 있지 않습니다. 경우 또한, I ( P는 ) 비어 있지 않은, 몇 가지 포인트가 있어야 I ( P ) 일부에 누워 BD의 C ( P I ) (의 경계 C ( P I ) ). 그래서 각각 C ( s의 I를 ) 각각의 점 P 의 bondary에, 우리는 원 포함 얼마나 많은 찾으려고 . 모든 p 중 최대 개수는이 문제에 대한 답입니다.C(p0),C(p1),,C(pm)I(P)I(P)bdC(pi)C(pi)C(si)ppp

점을 살펴 보자 . bd C ( s i )의 점[ 0 , 2 π ) 의 실수 사이에는 일대일 매핑이 있습니다. 각 원 들어 C ( S J ) 사이의 교점 C ( S J )BD C ( s의 I를 ) 의 간격에 의해 표현 될 수있다 [ B의 전자 g I N JbdC(si)bdC(si)[0,2π)C(sj)C(sj)bdC(si) . 그래서 제외한 모든 원에 대한 C ( s의 난을 ) 대부분에있다 N - 1 개 간격 (일부 서클 수 없습니다 교차와 C ( s의 I ) ). 최대 카운트는간격의 2 ( n - 1 ) 끝점을모두 정렬하고순서대로 스캔하고 현재 겹치는 숫자를 계산하여쉽게 찾을 수 있습니다. 각 C ( s의 ) 이 단계는 수행 될 수 O ( N 로그 N[beginj,endj]C(si)n1C(si)2(n1)C(si) 시간, 거기 N 이 알고리즘의 시간 복잡도가 있으므로 이러한 원은 O ( N 2 로그 N ) .O(nlogn)nO(n2logn)


2
원의 배열은 표준 무작위 증분 알고리즘을 사용하여 시간 (높은 확률로) 으로 구성 될 수 있습니다 . 실제로, 실행 시간은 O ( n log n + k ) 이며, 여기서 k 는 교차하는 원 쌍의 수입니다. 좋아하는 전산 기하학 교과서를 참조하십시오. O(n2)O(nlogn+k)k
JeffE

2

어려운 질문은 선택한 원이 실제로 세트 내에서 "최대"인지 아는 것입니다. 내가 이것을 결정할 수있는 유일한 방법은 가능한 모든 점 조합을 시도하고 점을 둘러싸는 원의 크기를 테스트하는 것입니다.

먼저 점 공간을 너비가 2r 인 정사각형 셀 격자로 나눠서 검색 공간을 줄일 수 있습니다. 그런 다음 밀도가 가장 높은 셀을 찾으십시오. X 점의 원 하나를 이미 찾았으므로 더 많은 점이있는 원이 있으면 그 안에 X 점 이상이 있어야한다는 결론을 내릴 수 있습니다. 그리고 이것을 여러 가지 조합의 포인트를 테스트하기위한 시작점으로 사용하십시오.

최대 일 가능성이있는 일련의 점만 찾으려면 이웃의 밀도가있는 셀의 주변에 해당하는 지점을 선택하여 테스트해야하는 조합 수를 추가로 줄일 수 있습니다 X보다 큽니다.

이것을 말하면, "감소"는 모두 실패 할 수 있으며, 최악의 경우 가능한 모든 포인트 조합에 대한 원을 계산하게됩니다.


1

O(n2)

O(n2)

2n2O(n2log(n))

O(n2)O(n2)

V+EF=2O(n2)


이것이 받아 들여진 답변의 보완 물로 읽히고 독자적으로 읽히지 않아야한다면 (이 주제에 대해 무지하기 때문에 알지 못합니다), 그것에 대해 명시해야합니다.
babou
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.