Yanıtlar:
Güçlü Üstel Zaman Hipotezi yanlış olmadığı sürece, herhangi bir sabit için süresinde çözemezsiniz .
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ı 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 .
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ı.
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).
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.
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 i ≠ S j kümeleri var, öyle ki S i ⊆ S eğer ve sadecebazı S ∈ F için f ζ ( S ) > 1 ise.
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.
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.
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.
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 ) ≥ 0
(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 ),T(x)tek Hamming ağırlığına bağlıdırx).
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 ,
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 .
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., 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 i ⊆ S j .
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 .