kümelenme problemi için en uygun açgözlü


16

Bize 2 boyutlu noktalar verilir ve k tamsayısı . En büyük dairenin yarıçapı mümkün olduğunca küçük olacak şekilde tüm n noktalarını çevreleyen bir k dairesi koleksiyonu bulmalıyız . Diğer bir deyişle, bir dizi bulmalıyız C = { c 1 , c 2 , ... , c k } ve k maliyet fonksiyonu bu şekilde merkez noktaları maliyet ( ) = maks i dakika j D (|P|=nkknC={c1,c2,,ck}k en aza indirilir. Buradabir giriş noktası arasındaki Öklid mesafe belirtmektedirve bir orta nokta. Her nokta, köşelerifarklı kümelerhalinde gruplandıran en yakın küme merkezine kendini atar.cost(C)=maximinjD(pi,cj)p i c j kDpicjk

Sorun, (ayrık) kümeleme problemi olarak bilinir ve NP- serttir. NP- tamamlayıcı hakim küme probleminden bir azalma ile gösterilebilir , eğer ρ < 2 problemi için bir ρ- yakınlaştırma algoritması varsa o zaman P = NP .kNPNPρρ<2P=NP

Optimum yaklaşım algoritması çok basit ve sezgiseldir. Birincisi p P noktasını keyfi olarak seçer ve küme merkezlerinin C setine yerleştirir . Sonra bir sonraki küme merkezini diğer tüm küme merkezlerinden olabildiğince uzakta seçer. Öyleyse | C | < K , tekrar tekrar bir noktaya bulmak j P mesafesi olan D ( j , Cı- ) maksimize edilir ve ekleyin C . Bir Kez | C | =2pPC|C|<kjPD(j,C)C işimiz bitti.|C|=k

Optimal açgözlü algoritmanın sürede çalıştığını görmek zor değildir . Bu bir soru doğurur: o ( n k ) zamanını elde edebilir miyiz ? Ne kadar iyi yapabiliriz?O(nk)o(nk)

Yanıtlar:


7

Sorun gerçekten de noktalarını k ile kaplamak istediğimiz şekilde geometrik olarak görülebilir.Vk de en büyük top yarıçapının en aza indirildiği topları .

elde etmek gerçekten oldukça basit ama daha iyisini yapabilir. Feder ve Greene, Yaklaşık kümeleme için en uygun algoritmalar, 1988,daha akıllı veri yapıları kullanarak Θ ( n log k ) çalışma süresine ulaşır ve bunun cebirsel karar ağacı modelinde optimal olduğunu gösterir.O(nk)Θ(nlogk)


1

Benim sorum: Açgözlü toplama stratejisini zamanında çalıştırmamın bir yolu var mı ?o(|V|2)

Bana öyle geliyor ki tarif ettin. Açıklamanızda çok fazla okursam, anladım. Her elemanını S elemanlarına olan mesafenin toplamı ile ilişkilendiren bir ilişkisel veri yapısına sahip olun . Bu veri yapısı, p'ye olan mesafe ile O ( | V | ) maliyetinde başlatılabilir ve bu başlatma, karmaşıklığı arttırmadan bir yan etki olarak bir sonraki öğeyi üretebilir. Yeni bir eleman seçildikten sonra O ( | V | ) maliyetiyle güncellenebilir ve yine bir sonraki elemanı yan etki olarak üretir. S almak için tekrarlayınVSO(|V|)pO(|V|)S . Ortaya çıkan karmaşıklık .O(k|V|)


1
Ancak üzerindeki sınırı not edin : en kötü durumda | V | . Daha iyi sınırlara ulaşan veri yapıları olduğundan şüpheleniyorum, ama gerçekten bilmiyorum. k|V|
Juho

oOk3
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.