Wenn dann wissen wir, dass die Menge keine Antichain von Sperners Lemma ist, und so ist die Entscheidungsversion des Problems wird trivial. Es könnte jedoch interessant sein, den Fall zu betrachten, in dem nahe an diesem Wert liegt.n>(dd/2)≈2dπd/2√n
Friedguts Arbeit zum Erdős-Ko-Rado-Theorem zeigt, dass man angesichts des charakteristischen Vektors einer Familie von Teilmengen von in der Zeit feststellen kann, ob eine sich überschneidende Familie ist (alle zwei Elemente von schneiden). Allgemeiner erlaubt uns seine Methode, zu berechnen
wobei eine (spezifische) bekannte Funktion ist, die nicht Null nur, wenn disjunkt sind. hängt nur vom Histogramm von , wobei der Indikator für .f[m]O(m2m)ff
Σ=∑x,y∈fS(x,y),
S(x,y)≥0x,yS(x,y){(xi,yi):i∈[d]}xii∈x
(Nebenbei, wir anmerken , dass seine Methode funktioniert auch , wenn wir gegeben sind zwei Familien , und interessiert sind in . In In beiden Fällen müssen wir die verzerrten Fourier-Walsh-Transformationen von für ein beliebiges und dann , wobei nur vom Hamming-Gewicht von abhängt .)f,gΣ=∑x∈f,y∈gS(x,y)pf,gp∈(0,1/2)Σ=∑xT(x)f^(x)g^(x)T(x)x
Wie hängt das alles mit dem vorliegenden Problem zusammen? Betrachten Sie die Familie
Jedes ist von jedem . Da explizit angegeben ist, können wir den Beitrag dieser Paare zu berechnen . Gibt es noch mehr unzusammenhängende Paare? Wenn von dann ist und somit . Also ist ein Antichain iff
F={Si∪{x}:i∈[n]}∪{Si¯¯¯¯¯∪{y}:i∈[n]}.
Si∪{x}Si¯¯¯¯¯∪{y}S(x,y)ΣSi∪{x}Sj¯¯¯¯¯∪{y}Si∩Sj¯¯¯¯¯=∅Si⊆SjS1,…,SnΣ=∑i=1nS(Si∪{x},Si¯¯¯¯¯∪{y}).
Dieser Algorithmus läuft in der Zeit und ignoriert die polynomiellen Faktoren in . Wenn in der Nähe von , ist dies signifikant besser als . Im Allgemeinen erhalten wir eine Verbesserung, solange .O~(n+2d)dn2dO~(n2)n=ω(2d/2)
Wenn wir wissen, dass ein Paar existiert, das , wie finden wir es? Angenommen, wir teilen alle Mengen nach dem Zufallsprinzip in zwei Gruppen auf. Mit einer Wahrscheinlichkeit von ungefähr befinden sich die Mengen und in derselben Gruppe. Wenn wir so viel Glück haben, können wir unseren Algorithmus auf und ausführen , herausfinden, zu welcher Gruppe diese gehören, und so die Anzahl der zu berücksichtigenden Mengen halbieren. Wenn nicht, können wir es erneut versuchen. Dies zeigt, dass wir mit einer erwarteten Anzahl von Orakelaufrufen zur Entscheidungsversion tatsächlich ein Paar finden können, das .Si⊆SjS1,…,SnG1,G21/2SiSjG1G2O(logn)Si⊆Sj
Wir können den Algorithmus auch derandomisieren. Nehmen wir an, dass ohne dass die Allgemeinheit verloren geht . In jedem Schritt partitionieren wir nach jedem der Bits. Eine dieser Partitionen setzt und in denselben Teil, es sei denn, sie haben entgegengesetzte Polaritäten. Wir können dies explizit nur mit testen . Dies ergibt einen deterministischen Algorithmus, der Orakelaufrufe für die Entscheidungsversion verwendet.n=2kkxyO(nd)O(log2n)