Set dahil edilmesini kontrol etmenin en hızlı yolu nedir?


24

Verilen n altkümeleri { 1 , , d } 'S1,,Sn nin S n'si .{1,,d}

Si,SjSiSj

Bu problemin önemsiz çözümü tüm set çiftlerinden geçer ve zamanındaki bir çiftin dahil edilmesini kontrol eder , bu nedenle genel çalışma zamanı . Bu sorun daha hızlı çözülebilir mi? Literatürde bunun için bir isim var mı?O(d)O(n2d)

Yanıtlar:


27

Güçlü Üstel Zaman Hipotezi yanlış olmadığı sürece, herhangi bir sabit için süresinde çözemezsiniz .O(n2ϵ)ϵ>0

Ki biz böyle bir algoritma olsaydı, Çözebileceğimiz de-Değişken CNF Gerçeklenebilirlik bir zaman . Bunun nedeni, değişkenleri her biri değişken olan ve eşit iki kısma . Her kısım için, aşağıdaki şekilde, fıkraların altkümelerinin sırasıyla ve ailesini inşa ediyoruz . Her ödev için ödevden memnun olmayan cümleciklerden oluşan bir alt küme ekleriz. Bu yapınO((2ϵ)n)ϵ>0P1P2n/2F1F2poly(n)2n/2 saatinde çalışır.

İnşaatı bitirmek için, bir alt küme vardır IFF orijinal CNF örneği bir çözümü var olduğuna dikkat bazı alt kümesine ayrık olan F 2 .F1F2

Her maddeye ek olarak setinize ek bazı unsurlar ekleyerek, bu ayrıklık problemini bir kümelenme sorusu olarak gömmek çok zor değildir. Temel olarak altkümelerin tamamlayıcılarını alırsınız . Yapmak için emin iki set F 1 ekstra unsurları bir anti-zincirinden bir kod eklemek bir katkı olarak sayılmaz. (Toprak setinin diğer ekstra elemanlar üzerinde) başka bir anti-zincirli kodu alt-grupları için kullanılan F 2 den alt-emin bir çift yapmak amacıyla F 2 bir katkı oluşturmaktadır. Son olarak, oluşan bütün bebekler F 1 tüm elemanlarını ihtiva F 2 'nin anti-zincirli kodları.F1F1F2F2F1F2

Bu, bir d = p o l y ( n ) yer kümesi üzerinde altkümeyle ilgili kümelenme sorusudur . Argüman temel olarak Ryan Williams'ın bazı eski yazılarına dayanır (hangisini hatırlayamıyorum).2n/2+1d=poly(n)


Hızlı cevap için çok teşekkür ederim. İlk önce Sparsification Lemma kullanıyorsak, bile var , değil mi? d=O(n)
Karl

9

ayarlı ailelerle ilgileniyorsanız , o zaman kavramsal olarak Yuval'ın cevabında belirtilene benzer bir başka çözüm de zeta dönüşümünü hesaplamaktır.n=ω(2d/2)

fζ(T)=STf(S),

burada giriş ailesinin gösterge işlevi olan F = { S 1 , S 2 , ... , S , n } . Diğer bir deyişle, S F ve f ( S ) = 0 ise, f ( S ) = 1 olur . Açıkça S iS j kümeleri var, öyle ki S iSf:2[d]RF={S1,S2,,Sn}f(S)=1SFf(S)=0SiSj eğer ve sadecebazı S F için f ζ ( S ) > 1 ise.SiSjfζ(S)>1SF

Zeeta dönüşümü, Yates algoritması kullanılarak zamanı içinde hesaplanabilir , bakınız örneğin Knuth's TAOCP, vol. 2, §4.6.4. Algoritmanın kendisi oldukça basit bir dinamik programlamadır ve eğer varsa dahil edilmiş bir küme örneği verecek şekilde değiştirmek kolaydır.O(d2d)


Bu benim cevabımdan çok daha basit!
Yuval Filmus,

8

Bu sorun, hızlı matris çarpımı için bir algoritma kullanılarak çözülebilir ve ayrıca bunun matris çarpımına hesaplamalı olarak denk geldiğinden şüpheleniyorum (bunu kanıtlamanın bir yolunu bilmeme rağmen, bunu kanıtlamak için teknikler olduğunu sanmıyorum. ). Bu çözüm n = d olduğunda O (n ^ {2.373}) çalışma zamanına ve d ve n arasındaki diğer ilişkiler için diğer çalışma zamanlarına sahip olacaktır.

Matris çarpımını kullanarak nasıl çözdüğünüzü söylersiniz: Kümelerin karakteristik vektörlerini n'nin d matrisi A n satırlarına ve kümelerin tamamlayıcılarının karakteristik vektörlerini n matris B'nin adındaki sütunlara yazarsınız sonra A ile B'yi çarpın. Kesişen kümeler çiftleri, A * B ürününün sıfıra eşit olan konumlarıdır.

Bu sorunla ilgili bilinen en iyi çalışma süresi için, konuyla ilgili Huang ve Pan makalesine bakın. Doğru hatırlıyorsam, d yeterince büyüdüğünde, çalışma süresi açıkça optimal O olacaktır. N = d için O çalışma süresine sahip olacaksınız (n ^ {2.373}). Diğer n ve d ilişkileri için başka değerler elde edersiniz. Dikdörtgen matris çarpımı için optimal bir algoritma mevcutsa, probleminiz için O (n ^ 2 + nd) çalışma zamanına sahip bir algoritma elde edersiniz. Sorunu çözmenin bundan daha iyi bir yolu olmadığından şüpheleniyorum, ama emin değilim.

Bu çözüm muhtemelen pratik kullanımda değildir, çünkü bu algoritmaların sabitleri çok büyük. Strassen'in algoritması, n ve d'nin makul değerleri için naif çözüm üzerinde bir gelişme sağlayabilir, ancak bundan emin değilim. Bununla birlikte, matris çarpımıyla ilişkili gibi görünen problemlerin nadiren, naif algoritmadan daha iyi olan kombine edici algoritmaları varmış gibi görünüyor (pollogaritmik faktörlerden daha fazla), bu yüzden tahmin etmek zorunda olsaydım, probleminiz için iyi bir algoritma olmadığını tahmin ederdim. günümüz tekniklerini kullanarak, saf olandan önemli ölçüde daha iyidir.


6

Eğer o zaman setin Sperner lemması tarafından bir antichain olmadığını biliyoruz ve bu yüzden problemin karar versiyonu önemsiz hale geliyor. Ancak,n'ninbu değere yakınolduğu durumu düşünmek ilginç olabilir.n>(dd/2)2dπd/2n

Karakteristik vektörü verilen erdos-Ko-Rado teoremi dizilerinde Friedgut çalışması altkümelerinden bir ailenin [ m ] , bir kez bulabilirsiniz O ( m, 2 m ) olup f kesişen bir familya (her iki eleman olan f kesişim). Daha genel olarak, yöntemi bize Σ = x , y f S ( x , y ) hesaplamasını sağlar , burada S ( x , y ) 0f[m]O(m2m)ff

Σ=x,yfS(x,y),
S(x,y)0yalnızca ( ayrıksa) sıfır olmayan bazı (belirli) bilinen bir işlevdir . S ( x , y ), sadece histogram bağlıdır { ( X ı , y i ) : i [ d ] } , burada x i için bir göstergedir i x .x,yS(x,y){(xi,yi):i[d]}xiix

(Bir kenara, eğer iki aileye verilirse ve Σ = x f , y g S ( x , y ) ile ilgileniyorsak , yönteminin de işe yaradığını yorumluyoruz . hesaplamak s Fourier Walsh dönüşümler -skewed f , g, keyfi için p ( 0 , 1 / 2 ) ve sonra da Σ = Σ x T ( x )f,gΣ=xf,ygS(x,y)pf,gp(0,1/2),T(x)tek Hamming ağırlığına bağlıdırx).Σ=xT(x)f^(x)g^(x)T(x)x

Bütün bunlar eldeki sorunla nasıl ilgilidir? Aile düşünün Her S i{ x } her ¯ S i{ y } ' den ayrıdır . S'den beri ( x ,

F={Si{x}:i[n]}{Si¯{y}:i[n]}.
Si{x}Si¯{y} açıkça verildiyse, bu çiftlerin katkısını Σ olarak hesaplayabiliriz. Başka ayrık çift var mı? Eğer S i{ x } gelen ayrık olan ¯ S j{ y } sonra S i¯ S j = ve böylece S iS j . Öyleyse S 1 , , S n bir antikasirdir iff Σ = n i =S(x,y)ΣSi{x}Sj¯{y}SiSj¯=SiSjS1,,Sn
Σ=i=1nS(Si{x},Si¯{y}).

Zamandaki bu algoritma çalışır faktörler polinom gözardı etme, d . Tüm n yakın olan 2 d , bu önemli ölçüde daha iyi olan ~ O ( n, 2 ) . Genel olarak, n = ω ( 2 d / 2 ) olduğu sürece bir iyileşme elde ederiz .O~(n+2d)dn2dO~(n2)n=ω(2d/2)

Biz tatmin bir çift biliyoruz göz önüne alındığında var, nasıl bulacağız? Biz bölmek varsayalım tüm setleri S 1 , ... , S n iki gruba G 1 , G 2 rastgele. Olasılık kabaca ile 1 / 2 , kümeler S i ve S j aynı grupta kendilerini bulacaksınız. Eğer çok şanslıysak, algoritmamızı G 1 ve G 2 ' de çalıştırabiliriz.SiSjS1,,SnG1,G21/2SiSjG1G2, bunlardan hangisine ait olduğunu bulun ve dikkate almamız gereken set sayısını yarıya indirin. Olmazsa, tekrar deneyebiliriz. Beklenen numarası ile bu Şekil karar sürümüne torpil aramaları, aslında tatmin edici bir çift bulabilirsiniz S iS j .O(logn)SiSj

Ayrıca algoritmayı derandomize edebiliriz. Genel kayıp olmadan olduğunu varsayalım . Her adımda, k bitlerinin her birine göre bölümlenir . Bu bölümlerden biri, zıt kutuplara sahip olmadıkları sürece , daima aynı bölümü x ve y olarak koyacaktır ; açıkça yalnızca O ( n d ) işlemlerini kullanarak test edebiliriz . Bu O ( log 2 n ) oracle kullanarak karar versiyonuna çağrı yaparak deterministik bir algoritma verir .n=2kkxyO(nd)O(log2n)


İlginç. Bununla ilgili daha fazla şey öğrenmek istersem ne okumam gerekir?
Janne H. Korhonen,

2
Friedgut'un makalesini "Kesişen ailelerin, benzersizliğin ve istikrarın ölçüsü hakkında" kontrol edin.
Yuval Filmus
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.