Проблема покриття (передавач і приймач)


14

Я намагаюся вирішити наступну проблему покриття.

Є передавачів із зоною покриття 1 км та приймачами. Вирішіть у що всі приймачі охоплені будь-яким передавачем. Усі випромінювачі та передавачі представлені їх координатами та .n O ( n log n ) x yннО(нжурналн)ху

Найбільш вдосконалене рішення, з яким я можу взяти, займає . Для кожного приймача сортуйте весь передавач по цій відстані до цього поточного приймача, тоді приймайте передавач з найменшою відстані, і ця найкоротша відстань повинна бути в межах 0,5 км.О(н2журналн)

Але наївний підхід виглядає набагато краще за часовою складністю . Просто обчисліть всю відстань між усіма парами передавача та приймача.О(н2)

Я не впевнений, чи можна застосувати алгоритми пошуку дальності в цій проблемі. Наприклад, kd-дерева дозволяють нам знаходити такі діапазони, проте я ніколи не бачив приклад, і я не впевнений, чи є такі види пошуку діапазону для кіл.

Дана складність передбачає, що рішення має бути якимось подібним до сортування.О(нжурналн)


1
Якщо очікуваний час нормальний, я думаю, ви могли б створити k d- дерево над передавачами (зайнявши час O ( n log n ) ), а потім виконати запит найближчого сусіда для кожного приймача (приймаючи середнє значення часу O ( log n ) для кожного приймача). Це має бути хитрощів, але я вважаю, що вам потрібна найгірша складність. Здається, є кілька хитрощів для прискорення роботи, коли ви виконуєте кілька запитів найближчих сусідів у k d- дереві. О(нжурналн)кгО(нжурналн)О(журналн)кг
відверто

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

@Raphael, будь ласка, докладно розробимо трохи більше, схоже, у гіршому випадку це буде дуже повільним.
com

1
Я думаю, що варто переглянути алгоритм Фортуна для обчислення діаграми Вороного в площині. Він працює в , і, задавши діаграму Вороного, ваша проблема стає легкою. О(нжурналн)
Сизигія

Відповіді:


4

Ви можете використовувати діаграму Вороного разом із структурою даних Кіркпатріка для вирішення цієї проблеми.

О(нжурналн)

1 км

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

Кожна комірка на діаграмі Вороного - це опуклий багатокутник, можливо, не обмежений.

...

Кількість вершин [діаграми Вороного з n ділянок] V ≤ 2n-5

- www.cs.arizona.edu

Θ(v)vннО(н)О(н)О(н)О(н)О(н)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.