적용 범위 문제 (송신기 및 수신기)


14

다음 범위 문제를 해결하려고합니다.

있습니다 1km와의 커버리지와 송신기 N 수신기. 모든 수신기가 모든 송신기로 덮여 있는지 O ( n log n )로 결정 하십시오. 모든 리버와 송신기는 xy 좌표로 표시됩니다.nnO(nlogn)xy

내가 함께 할 수있는 가장 진보 된 솔루션은 소요 . 모든 수신기에서이 수신기까지의 거리를 기준으로 모든 송신기를 정렬 한 다음, 가장 짧은 거리의 송신기를 가져 가십시오.이 최단 거리는 0.5km 이내에 있어야합니다.O(n2logn)

그러나 순진한 접근 방식은 시간 복잡성 에서 훨씬 더 좋아 보인다 . 송신기와 수신기의 모든 쌍 사이의 모든 거리를 계산하십시오.O(n2)

이 문제에 범위 검색 알고리즘을 적용 할 수 있는지 잘 모르겠습니다. 예를 들어 kd-trees를 사용하면 이러한 범위를 찾을 수 있지만 예를 보지 못했으며 원에 대한 범위 검색이 있는지 확실하지 않습니다.

주어진 복잡도 는 솔루션이 어떻게 든 정렬과 유사해야한다고 가정합니다.O(nlogn)


1
예상 시간 이 괜찮다 면 송신기 위에 k d- tree를 구축하고 (taking time O ( n log n ) ) 각 수신기에 대해 가장 가까운 이웃 쿼리를 수행 할 수 있다고 생각합니다 (평균을 취함) 의 O ( 로그 N ) 각각의 수신기에 대한 시간). 이것은 속임수이지만 최악의 경우 복잡성이 필요하다고 가정합니다. k d- tree 에서 가장 가까운 인접 쿼리를 여러 개 수행 할 때 속도 향상을위한 몇 가지 트릭이 있습니다 . O(nlogn)kdO(nlogn)영형(로그)케이
utdiscant

1
스위프 라인 알고리즘 이 트릭을 수행 할 수 있다고 생각합니다 : 송신기와 수신기를 x 좌표로 정렬하고 목록을 단계별로 수행하십시오. 실행 가능한 송신기 세트를 영리하게 관리하는 것이 필수적입니다.
Raphael

@Raphael, 좀 더 자세히 설명해 주시겠습니까? 최악의 경우에는 매우 느려질 것 같습니다.
com

1
비행기에서 보로 노이 다이어그램 을 계산하는 Fortune의 알고리즘 을 살펴볼 가치가 있다고 생각합니다 . 그것은 O ( n log n ) 에서 작동 하며 Voronoi 다이어그램이 주어지면 문제가 쉬워집니다. 영형(로그)
Syzygy

답변:


4

이 문제를 해결하기 위해 Voronoi 다이어그램과 Kirkpatrick의 데이터 구조를 함께 사용할 수 있습니다 .

Raphael과 Syzygy가 제안한 것처럼 Fortune (스위프 라인) 알고리즘 을 사용하여 Voronoi 다이어그램을 만들 수 있습니다. 최악의 경우 : .영형(로그)

보로 노이 다이어그램에는 각각 다각형이 송신기를 포함하고 있습니다. 다각형 내의 모든 지점이 해당 송신기에 가장 가깝습니다. 당신은 수신기를 포함하는 다각형 찾을 수있는 경우에 따라서, 당신은 어떻게 든에있는 폴리곤 찾는하여 가장 가까운 송신기를 찾을 수 있습니다. 송신기가 이내이면 그 후, 당신은 확인 .1 km

영형(로그)영형(로그)영형(로그)

보로 노이 다이어그램의 각 셀은 볼록한 다각형이며, 끝이 없을 수 있습니다.

...

[n 개의 사이트의 보로 노이 다이어그램의 정점 수] V ≤ 2n-5

www.cs.arizona.edu

Θ(V)V영형()영형()영형()영형()영형()

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