Kapsama sorunu (verici ve alıcı)


14

Aşağıdaki kapsama sorununu çözmeye çalışıyorum.

Orada 1km ve kapsama alanı ile vericiler n alıcıları. O ( n log n ) içinde tüm alıcıların herhangi bir verici tarafından kapsanmasına karar verin . Tüm reveiver'lar ve vericiler x ve y koordinatları ile temsil edilir .nnO(nlogn)xy

Gelebileceğim en gelişmiş çözüm . Her alıcı için tüm vericiyi bu geçerli alıcıya olan mesafesine göre sıralayın, sonra vericiyi en kısa mesafeyle alın ve bu en kısa mesafe 0,5 km içinde olmalıdır.O(n2logn)

Ancak saf yaklaşım zaman karmaşıklığında çok daha iyi görünür . Sadece verici ve alıcı çiftleri arasındaki tüm mesafeyi hesaplayın.O(n2)

Bu soruna aralık arama algoritmaları uygulayıp uygulayamayacağımdan emin değilim. Örneğin, kd ağaçları bu aralıkları bulmamıza izin verir, ancak hiç bir örnek görmedim ve daireler için bir çeşit aralık araması olup olmadığından emin değilim.

Verilen karmaşıklık , çözeltinin bir şekilde sınıflandırmaya benzer olması gerektiğini varsayar.O(nlogn)


1
O(nlogn)kdO(nlogn)O(logn)kd

1
Bir süpürme hattı algoritması hile yapabilir sanırım : hem vericileri hem de alıcıları x-koordinatı ile sıralayın ve listede adım atın. Canlı vericiler setinin akıllıca yönetilmesi esastır.
Raphael

@ Raphael, lütfen biraz daha ayrıntı verebilir misiniz, en kötü durumda çok yavaş olacak gibi görünüyor.
com

1
O(nlogn)

Yanıtlar:


4

Bu sorunu çözmek için Voronoi diyagramını Kirkpatrick'in veri yapısı ile birlikte kullanabilirsiniz .

O(nlogn)

1 km

O(logn)O(nlogn)O(nlogn)

Bir Voronoi diyagramındaki her hücre, muhtemelen sınırsız olan dışbükey bir çokgendir.

...

[N sitenin Voronoi diyagramının] köşe sayısı V V 2n-5

- www.cs.arizona.edu

Θ(v)vnnO(n)O(n)O(n)O(n)O(n)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.