Ecco i limiti inferiori che posso mostrare. Immagino che per un fisso , il limite inferiore destro sia Ω ( log n ) , ma naturalmente potrei sbagliarmi.ϵΩ(logn)
Userò una sequenza decrescente (solo per comodità). Il meccanismo di base sta spezzando la sequenza in blocchi a Nel i esimo blocco Ci stanno per essere n i elementi (cioè, Σ i n i = n ).Lini∑ini=n
Di seguito, vogliamo che l'algoritmo abbia esito positivo con probabilità , per alcuni parametri δ > 0 .≥1−δδ>0
Primo limite inferiore: .Ω(1ϵlog1δ)
L' blocco ha n i = 2 i - 1 elementi, quindi L = lg n . Si imposta il valore di tutti gli elementi della i esima blocco essere ( 1 + X i ) / ( 2 n i L ) , dove X i è una variabile che è o 0 o 1 . Chiaramente, la somma totale di questa sequenza è
α = L ∑ i = 1 1 + Xini=2i−1L=lgni(1+Xi)/(2niL)Xi01
Immagina di scegliere ogniXicon probabilitàβche sia1e0altrimenti. Per stimareα, abbiamo bisogno di una stima affidabile diβ. In particolar modo, vogliamo essere in grado di distinguere la baseβ=1-4ϵe, diciamo,β=1.
α=∑i=1L1+Xi2niL=12+12L(∑i=1LXi).
Xiβ10αββ=1−4ϵβ=1
Ora, immagina di campionare di queste variabili casuali e lascia che Z 1 , ... , Z m siano le variabili campionate. Impostazioni Y = ∑ m i = 1 ( 1 - X i ) (nota che stiamo prendendo la somma delle variabili del complemento ), abbiamo μ = E [ Y ] = ( 1 - β ) m e la disuguaglianza di Chernoff ci dice che se β = 1 - 4mZ1,…,ZmY=∑mi=1(1−Xi)μ=E[Y]=(1−β)m , quindi μ = 4 ε m , e la probabilità di fallimento è
P [ Y ≤ 2 ε m ] = P [ Y ≤ ( 1 - 1 / 2 ) μ ] ≤ exp ( - μ ( 1 / 2 ) 2 / 2 ) = exp ( - ϵ m / 2 ) .
Per ridurre questa quantità diβ=1−4ϵμ=4ϵm
P[Y≤2ϵm]=P[Y≤(1−1/2)μ]≤exp(−μ(1/2)2/2)=exp(−ϵm/2).
, abbiamo bisogno di
m ≥ 2δ .
m≥2ϵln1δ
L'osservazione chiave è che la disuguaglianza di Chernoff è stretta (bisogna stare attenti, perché non è corretto per tutti i parametri, ma è corretto in questo caso), quindi non si può fare di meglio (fino alle costanti).
Secondo limite inferiore: .Ω(logn/loglogn)
Impostare la esima dimensione del blocco di essere n i = L i , dove L = Θ ( log n / log log n ) è il numero di blocchi. Un elemento nel i esimo blocco ha valore α i = ( 1 / L ) / n i . Quindi la somma totale dei valori nella sequenza è 1 .ini=LiL=Θ(logn/loglogn)iαi=(1/L)/ni1
Ora, potremmo decidere di scegliere un blocco arbitrario, dire il °, e impostare tutti i valori nel suo blocco su α j - 1 = L α j (invece di α j ). Ciò aumenta il contributo del j ° blocco da 1 / L a 1 e aumenta la massa totale della sequenza a (quasi) 2 .jαj−1=Lαjαjj1/L12
Ora, in modo informale, qualsiasi algoritmo randomizzato deve verificare il valore in ciascuno dei blocchi. Come tale, deve leggere almeno valori della sequenza.L
Per rendere l'argomento sopra più formale, con probabilità , indica il sequenza originale della massa 1 come ingresso (ci riferiamo a questo come input originale). Altrimenti, selezionare casualmente il blocco con i valori aumentati (input modificato). Chiaramente, se l'algoritmo randomizzato legge meno rispetto, ad esempio, L / 8 voci, ha probabilità (circa) 1 / 8 per rilevare un ingresso modificata. Pertanto, la probabilità che questo algoritmo fallisca, se legge meno di L / 8 voci è almeno
( 1 - p ) ( 7 /p=1/21L/81/8L/8
(1−p)(7/8)>7/16>1/3.
PS Penso che prestando maggiore attenzione ai parametri, il primo limite inferiore può essere migliorato a .Ω(1/ϵ2)