Belli bir ailenin set içerme pozisyonunu ne kadar hızlı hesaplayabiliriz?


20

Bir dizi ailesini Verilen Bir evrenin alt kümelerinin . Bırakın ve cevaplamak istiyoruz .FUS1,S2FS1S2

Buna hızlı bir şekilde cevap vermemi sağlayacak bir veri yapısı arıyorum. Uygulamam, bir tepe noktasını ve çevresini silmenin herhangi bir yalıtılmış köşe noktası bırakıp bırakmadığını görmek istediğim grafik teorisinden ve her köşe noktası için bıraktığı tüm izole köşe noktalarını listeliyor.

Tam bir poset veya sonunda tam olarak hangi kümeleri birbirinin alt kümesidir gerçek yanlış söylüyorum saklayan bir tablo oluşturmak istiyorum .|F|2

Bırakın,ve, varsayalımm=SF|S|u=|U|n=|F|u,nm

Biz oluşturabilir içinde muhafaza matrisi (bipartit grafik) tüm tablosu oluşturabilir daha sonra zaman ve karşılaştırmaları Her set için süresi , diğer tüm setleri tüm unsurları döngü ve dizi olarak değil bir alt kümesini işaretlemek elemanı değil onlar eğer . Toplam süresinde.n×uO(un)n2O(nm)SFSSO(nm)

Daha hızlı bir şey yapabilir miyiz? Özellikle, O((n+u)2) zamanı mümkün mü değil mi?

İlgili bazı makaleler buldum:

O(m2/log(m)) algoritması veren Kısmi Sıra (1995) Alt Kümesini Hesaplamak için Basit Bir Alt Karesel Algoritma .

Alt Küme Kısmi Sipariş: Bilgisayar ve Kombinatorik birazüstte geliştirir ama aynı zamanda iddia yukarıdaki kağıt çözer problem O(md) Zaman ortak elemanları paylaşan setlerinin maksimum sayıdır, ama bu sonucu anlayamadım.d

Makalede arasında veO ( n- α )O(nm)O(nα) yazarlar bir grafikte için matris çarpımını kullanarak bir tepe kapalı mahalle silindikten sonra bağlı bileşenleri bulmak şeklini göstermektedir. Bu, çalışma zamanı olan tekil tüm bileşenleri bularak ayarlanmış dahil etme posetini hesaplamak için kullanılabilir .O((n+u)2.79)

Ayrıca bu forum tartışması da ilgili: Set içerme durumunu kontrol etmenin en hızlı yolu nedir? ki alt sınırını ifade eder .O(n2ϵ)


Sadece bir öneri: ayarlayarak soruyu basitleştirebilir misiniz ? Yoksa uygulamanızda her iki parametre de önemli mi? u=n
Colin McQuillan

Benim uygulamada burada asimptotik olarak daha küçük anlamına gelir. < <u<<n<<2u<<
Martin Vatshelle

Yanıtlar:


2

Rasgelelik sınırlar içindeyse, kabaca bir fikir, bir grup "rasgele monotonik imza" işlevi oluşturmak ve bunları alt küme ilişkisine (la Bloom filtreleri) yaklaşmak için kullanmak olacaktır. Ne yazık ki, bunu pratik bir algoritmaya nasıl dönüştüreceğimizi bilmiyorum, ama burada fikri hemen imkansız olduğunu kanıtlamayan bazı tahminler var. Bu yararlı bir çözümden çok uzak, ama yardımcı olması durumunda yazacağım.

Basitlik için setlerin neredeyse aynı boyutta olduğunu varsayalım, diyelim ve bu s = o ( u ) . Biz varsayabiliriz 1 « s aksi bitti. Tanımlama Not bu .|S|=s±O(1)s=o(u)1sp1

q=[s/2]p=[(uq)(sq)]
p1

İşte çılgınca pratik olmayan kısım. Rastgele tercih alt kümelerini yerine, boyut her biri ile , ve bir işlev tanımlar tarafından IFF bazıları için . İle sabit ve rastgele şekilde farklılaşan, elimizdeki yana , monoton imapA1,,ApUqf:2U{0,1}f(S)=1AiSiSAi,f f(S)STf(S)f(T)TStT-SfTS Pr ( f ( S ) = 0 < 1 = f ( T ) )

Pr(f(S)=0)=Pr(i.AiS)=Pr(A1S)p=(1(sq)/(uq))p=eΘ(1)
f(S)STf(S)f(T) . Eğer , bazı düzeltmek . Olasılığı o algılar isimli TStTSfTS ff(S) ˜ O (n+u) ˜ O (n2+u2)
Pr(f(S)=0<1=f(T))=Pr(f(S)=0)Pr(f(T)=1|f(S)=0)=eΘ(1)Pr(i.AiT,AiTS0|f(S)=0)=eΘ(1)Pr(i.tAiT|f(S)=0)eΘ(1)Pr(i.tAiT)eΘ(1)pPr(tA1T)eΘ(1)p(sq1)/(uq)eΘ(1)pqsq(sq)/(uq)=eΘ(1)
Bu adımlardan bazıları oldukça yavaştır, ancak bu gece onları iyileştirecek zamanım yok. Her halükarda, hepsi tutarsa, en azından alt kümeleri alt kümelerden ayırma olasılığı olan imza işlevlerini rastgele oluşturmak imkansız değildir. Bu tür fonksiyonların logaritmik sayısı tüm çiftleri doğru şekilde ayırt edecektir. İmza işlevi ve hesaplaması süresine düşürülebilirse , sonuç genel bir algoritması olur.ff(S)O~(n+u)O~(n2+u2)

Yukarıdaki hesaplamalar doğru olsa bile, istenen özelliklerle hızlı bir şekilde monotonik imza işlevlerinin nasıl oluşturulacağı hakkında hiçbir fikrim yok. Ayrıca bu tekniğin önemli ölçüde farklı set boyutlarına uzanmaması da muhtemeldir.

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.