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

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)

Реал Слав
источник