Проблема покрытия (передатчик и приемник)


14

Я пытаюсь решить следующую проблему покрытия.

Есть передатчиков с зоной покрытия 1 км и n приемников. Определите в O ( n log n ), что все приемники охвачены любым передатчиком. Все приемники и передатчики представлены своими координатами x и y .NNО(Nжурнал⁡N)ИксY

Самое продвинутое решение, которое я могу найти, - . Для каждого приемника отсортируйте все передатчики по его расстоянию до этого текущего приемника, затем возьмите передатчик с самым коротким расстоянием, и это самое короткое расстояние должно быть в пределах 0,5 км.О(N2журнал⁡N)

Но наивный подход выглядит намного лучше по временной сложности . Просто рассчитайте все расстояния между всеми парами передатчика и приемника.О(N2)

Я не уверен, что смогу применить алгоритмы поиска диапазона в этой задаче. Например, kd-деревья позволяют нам находить такие диапазоны, однако я никогда не видел такого примера, и я не уверен, есть ли какой-то диапазон поиска кругов.

О(Nжурнал⁡N)


1
О(Nжурнал⁡N)КdО(Nжурнал⁡N)О(журнал⁡N)Кd

1
Я предполагаю, что алгоритм строчной линии может сделать свое дело: отсортировать и передатчики и приемники по x-координате и пройти по списку. Умное управление набором жизнеспособных передатчиков имеет важное значение.
— Рафаэль

@ Рафаэль, не могли бы вы рассказать подробнее, похоже, в худшем случае это будет очень медленно.
— ком

1
О(Nжурнал⁡N)

Ответы:


4

Для решения этой проблемы вы можете использовать диаграмму Вороного вместе со структурой данных Киркпатрика .

О(Nжурнал⁡N)

1 км

О(журнал⁡N)О(Nжурнал⁡N)О(Nжурнал⁡N)

Каждая ячейка на диаграмме Вороного представляет собой выпуклый многоугольник, возможно, неограниченный.

...

Количество вершин [диаграммы Вороного из n узлов] V ≤ 2n-5

- www.cs.arizona.edu

Θ(v)vNNО(N)О(N)О(N)О(N)О(N)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.