Belirli bir Yarıçapın Maksimum Kapalı Çevresi


19

Aşağıdaki soruna bir yaklaşım bulmaya çalışıyorum:

noktası ve yarıçapı seti göz önüne alındığında, dairenin kümeden maksimum nokta sayısını içereceği şekilde dairenin merkez noktasını bulun. Çalışma süresi .SrÖ(n2)

İlk başta, kolayca çözülebilen en küçük çevreleyen daire problemine benzer bir şey gibi görünüyordu . Fikir, keyfi bir merkez kurmak ve her noktasını kuşatmaktı . Daha sonra, adım adım, daireyi en sol / sağ noktalara dokunacak şekilde değiştirin ve daireyi verilen yarıçapa küçültün, açıkçası bu işe yaramayacak.SÖ(n2)S

Yanıtlar:


7

Bu sorunun Ö(n2) zamanında nasıl çözüleceğini bilmiyorum , ancak bir Ö(n2günlükn) algoritması var.

Let C(sben) olan merkezi çember sben , ben yarıçap ile inci noktası, r . Bu nokta grubu bulmak zor değil P={p0,p1,,pm} yarıçapı olan bir daire ile kapalı olabilir r kesişme IFF I(P) arasında boş değil. Ayrıca, eğer bir ( P ) boş değilse, bazı noktalar olmalıdır I ( P ) bir bırakmaya bd C ( p i ) (sınır C ( p i ) ). Bu yüzden, her C ( s i ) ve her bir p noktası için, onun karnında kaç tane p içerdiğini bulmaya çalışıyoruz. Tüm arasında maksimum sayım p bu sorunun cevabı olacaktır.C(p0),C(p1),,C(pm)I(P)I(P)bdC(pi)C(pi)C(si)ppp

deki noktaları inceleyelim . Bd C ( s i ) üzerindeki noktalar ile [ 0 , 2 π ) içindeki gerçek sayı arasında bire bir eşleme vardır . Her C ( s j ) dairesi için , C ( s j ) ve bd C ( s i ) arasındaki kesişme bir aralık ile temsil edilebilir [ b e g i n jbdC(si)bdC(si)[0,2π)C(sj)C(sj)bdC(si) . Dolayısıyla C ( s i ) dışındaki tüm daireleriçin en fazla n - 1 aralık vardır (bazı daireler C ( s i ) ile kesişmeyebilir). Maksimumsayı, aralığıntüm 2 ( n - 1 ) uç noktasını sıralayarak, sırayla tarayarak ve mevcut çakışan sayıyı sayarak kolayca bulunabilir. Her C ( s i ) için bu adım O ( n log n[beginj,endj]C(si)n1C(si)2(n1)C(si) Saat ve orada n bu algoritmanın zaman karmaşıklığı yani, daireler, O ( n, 2 günlük , n ) .Ö(ngünlükn)nÖ(n2günlükn)


2
Çevrelerin düzenlemesi yapılabilir , standart bir artımlı bir algoritma rasgele kullanılarak (yüksek olasılıkla) zaman. Aslında, çalışma süresi O ( n log n + k ) 'dir , burada k kesişen daire çiftlerinin sayısıdır. En sevdiğiniz hesaplamalı geometri ders kitabına bakın. Ö(n2)Ö(ngünlükn+k)k
JeffE

2

Bence zor sorular seçtiğiniz çemberin set içinde aslında "maksimum" olup olmadığını bilmek. Bunu belirlemenin tek yolu, noktaların tüm olası kombinasyonlarını denemek ve onları çevreleyen dairenin boyutunu test etmektir.

Nokta alanını ilk önce genişlik 2r olan kare hücrelerin bir ızgarasına bölerek arama alanını azaltabilirsiniz. Sonra en büyük yoğunlukta hücre bulun. Zaten bir X noktası dairesi bulduğunuzdan, daha fazla noktalı bir daire varsa, içinde en az X noktası olması gerektiği sonucuna varabilirsiniz. Ve bunu noktaların farklı kombinasyonlarını test etmek için başlangıç ​​noktası olarak kullanın.

Yalnızca maksimum olması muhtemel bir dizi nokta arıyorsanız, o zaman mahallenin yoğunluğunun olduğu bir hücre mahallesine düşen noktaları seçerek test etmeniz gereken kombinasyon sayısını daha da azaltabilirsiniz. X'den büyük.

Bunu söyledikten sonra, her iki "indirgeme" başarısız olabilir ve en kötü durumda tüm olası nokta kombinasyonları için daireler hesaplayacaksınız.


1

Chazelle, B .; Lee, DT'nin Computing 36, 1-16 (1986) makalesi, sayfa 15'teki teorem 3, maksimum çevreleme daire bulma algoritmasının zaman maliyetini aldığını belirtir .Ö(n2)

Bence anahtar hala erken bahsettiği kavşak grafiği yapı algoritmasıdır (veya Edelsbrunner, H. (1987), Kombinatoryal Geometride Algoritmalar, bölüm 7). Daha sonra, maksimum çevreleyen daire bulgusu basit olmalıdır.Ö(n2)

Görünüşe göre, bu problem, verilen çember sayısının en fazla kapsadığı noktayı bulmak için eşdeğerdir ve sadece belirli n çemberlerle kesişen çoğunlukla noktanın aday olarak kabul edilmesi gerektiğini bilmek kolaydır . (Bu ayrıca doğrudan bir O ( n 2 l o g ( n ) ) algoritmasına yol açar )2n2Ö(n2lÖg(n))

Bununla birlikte, yukarıda belirtilen kullanılarak yapı algoritması, bir neden O ( n, 2 ) , çok bu sorun için bir algoritma. Çünkü kavşak noktaları olarak köşeler ve yaylar olarak kenarlar ile inşa edilen kavşak grafiği bir Euler düzlemsel grafiğidir. Böylece tüm yaylar bir Euler döngüsü ve ait olduğu çevrelerin indeksleri tarafından endekslenen bir yay sırası ve herhangi bir yayın "geriye doğru yay" (geriye doğru kavisli) veya "ark içine girme" olup olmadığı hakkında bilgi ( eğri öne doğru), bu yayın meydana geldiği travling sırasındaki metis köşesi için kaydedilir.Ö(n2)Ö(n2)

Ürdün teoremi ile bir kavşak köşesi, yalnızca o daireye ait bir "ayrılan yay" ile karşılaştığında veya o daireye ait bir olay yayına sahipse, bir daire ile çevrelenir. Böylece tüm seyahatten sonra maksimum çevreleme çemberi kolayca bulunabilir. Yolculuk tarafından daha önce verilmiş olması haricinde, düz bir çizgi boyunca düzenli aralıklarla (veya yani bu kapatma sorununun 1D versiyonu) sıralı aralıkları olan noktaların kaplama sürelerine karar verilmesi durumudur. Euler formülü ikenV+E-F=2Ö(n2)


Eğer bu kabul edilen cevabın bir tamamlayıcısı olarak okunacaksa ve kendi başına okunmamalıdır (ki bu konuyu bilmediğim gibi bilmiyorum), bu konuda açık olmalısınız.
babou
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.