Se allora sappiamo che il set non è un antitaglio del lemma di Sperner, e quindi il la versione decisionale del problema diventa banale. Ma potrebbe essere interessante considerare il caso in cui è vicino a quel valore.n>(dd/2)≈2dπd/2√n
Il lavoro di Friedgut sul teorema di Erdős-Ko-Rado mostra che, dato il vettore caratteristico di una famiglia di sottoinsiemi di , si può trovare nel tempo se è una famiglia che si interseca (ogni due elementi di intersecano). Più in generale, il suo metodo ci consente di calcolare
dove è una funzione nota (specifica) che non è zero solo se sono disgiunti. dipende solo dall'istogramma di , dove è l'indicatore per .[ m ] O ( m 2 m ) f f Σ = ∑ x , y ∈ f S ( x , y ) , S ( x , y ) ≥ 0 x , y S ( x , y ) { ( x i , y i ) :f[m]O(m2m)ff
Σ=∑x,y∈fS(x,y),
S(x,y)≥0x,yS(x,y)x i{(xi,yi):i∈[d]}xii∈x
(A parte, commentiamo che il suo metodo funziona anche se ci vengono date due famiglie e siamo interessati a . In entrambi i casi, si devono calcolare il -skewed Fourier-Walsh trasformate di per un arbitrario , e quindi , dove dipende solo dal peso di Hamming di .)Σ = ∑ x ∈ f , y ∈ g S ( x , y ) p f , g p ∈ ( 0 , 1f,gΣ=∑x∈f,y∈gS(x,y)pf,gΣ = Σ x T ( x ) f ( x ) g ( x ) T ( x ) xp∈(0,1/2)Σ=∑xT(x)f^(x)g^(x)T(x)x
In che modo tutto ciò si collega al problema attuale? Considera la famiglia
Ogni è disgiunto da ogni . Poiché viene fornito esplicitamente, possiamo calcolare il contributo di queste coppie a . Ci sono altre coppie disgiunte? Se è disgiunto da allora e quindi . Quindi è un iff antichain
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}).
Questo algoritmo viene eseguito in time , ignorando i fattori polinomiali in . Quando è vicino a , questo è significativamente migliore di . In generale, otteniamo un miglioramento purché .O~(n+2d)dn2dO~(n2)n=ω(2d/2)
Dato che sappiamo che esiste una coppia che soddisfa , come la troviamo? Supponiamo di dividere tutti i set in due gruppi a caso. Con probabilità circa , i set e si troveranno nello stesso gruppo. Se siamo così fortunati, possiamo eseguire il nostro algoritmo su e , scoprire a quale appartengono questi e quindi dimezzare il numero di set che dobbiamo considerare. In caso contrario, possiamo riprovare. Ciò dimostra che con un numero previsto di chiamate oracle alla versione decisionale, possiamo effettivamente trovare una coppia che soddisfa .S 1 , … , S n G 1 , G 2 1Si⊆SjS1,…,SnG1,G2S i S j G 1 G 2 O ( log n )1/2SiSjG1G2O(logn)Si⊆Sj
Possiamo anche derandomizzare l'algoritmo. Senza perdita di generalità, supponiamo che . In ogni passaggio, partizioniamo in base a ciascuno dei bit. Una di queste partizioni saranno sempre messo ed nella stessa parte, se non hanno polarità opposte; possiamo testarlo esplicitamente usando solo operazioni . Questo dà un algoritmo deterministico usando chiamate oracle alla versione decisionale. k x y O ( n d ) O ( log 2 n )n=2kkxyO(nd)O(log2n)