Oto dolne granice, które mogę pokazać. Przypuszczam, że dla ustalonego prawą dolną granicą jest , ale oczywiście mogę się mylić.Ω ( log n )ϵΩ ( logn )
Użyję sekwencji malejącej (dla wygody). Podstawowym mechanizmem jest dzielenie sekwencji na bloków. W tym bloku będą elementy (tj. ).i n i ∑ i n i = nL.janja∑janja= n
Poniżej chcemy, aby algorytm odniósł sukces z prawdopodobieństwem , dla niektórych parametrów .δ > 0≥ 1 - δδ> 0
Pierwsza dolna granica: .Ω ( 1ϵlog1δ)
tego bloku jest elementów, więc . Ustawiamy wartość wszystkich elementów w tym bloku na , gdzie jest zmienną lub . Oczywiście całkowita suma tej sekwencji wynosi
Wyobraź sobie, że każdy z prawdopodobieństwem ma wartość a w przeciwnym razie . Aby oszacować , potrzebujemy wiarygodnego oszacowanian i = 2 i - 1 L = lg n i ( 1ini=2i−1L=lgniX i 0 1 α = L ∑ i = 1 1 + X i(1+Xi)/(2niL)Xi01Xiβ10αβ
α=∑i=1L1+Xi2niL=12+12L(∑i=1LXi).
Xiβ10αβ. W rozdrobnionej, chcemy być w stanie odróżnić podstawę
i, powiedzmy,
β = 1 .
β=1−4ϵβ=1
Teraz wyobraź sobie próbkowanie tych zmiennych losowych i niech Z 1 , … , Z m będą próbkami zmiennych. Ustawienia (zauważ, że bierzemy sumę zmiennych dopełniacza ), mamy , a nierówność Chernoffa mówi nam, że jeśli , to , a prawdopodobieństwo niepowodzenia to
Aby ta ilość była mniejsza niżmZ1,…,Zmμ = E [ Y ] = ( 1 - β ) mY=∑mi=1(1−Xi)μ=E[Y]=(1−β)mμ = 4 ϵ m P [ Y ≤ 2 ϵ m ] = P [ Y ≤ ( 1 - 1 / 2 ) μ ] ≤ expβ=1−4ϵμ=4ϵmδ m ≥ 2
P[Y≤2ϵm]=P[Y≤(1−1/2)μ]≤exp(−μ(1/2)2/2)=exp(−ϵm/2).
δ, potrzebujemy .
m≥2ϵln1δ
Kluczową obserwacją jest to, że nierówność Chernoffa jest ścisła (należy zachować ostrożność, ponieważ nie jest poprawna dla wszystkich parametrów, ale w tym przypadku jest poprawna), więc nie można tego zrobić lepiej (aż do stałych).
Druga dolna granica: .Ω(logn/loglogn )
Ustaw ty rozmiar bloku na , gdzie to liczba bloków. Element w tym bloku ma wartość . Tak więc całkowita suma wartości w sekwencji wynosi .n i = L i L = Θ (janja= L.jai α i = ( 1 / L ) / n i 1L = Θ ( logn / loglogn )jaαja= ( 1 / L ) / nja1
Teraz możemy wybrać dowolny blok, powiedzmy ty, i ustawić wszystkie wartości w tym bloku na (zamiast ). Zwiększa to udział tego bloku z do i zwiększa całkowitą masę sekwencji do (prawie) .α j - 1 = L α j α j j 1 / L 1 2jotαj - 1= L αjotαjotjot1 / L12)
Teraz, nieformalnie, każdy randomizowany algorytm musi sprawdzić wartość w każdym z bloków. Jako taki musi odczytać przynajmniej wartości sekwencji.L.
Aby powyższy argument był bardziej formalny, z prawdopodobieństwem , podaj pierwotną sekwencję masy jako dane wejściowe (nazywamy to pierwotnym danymi wejściowymi). W przeciwnym razie losowo wybierz blok, który ma zwiększone wartości (zmodyfikowane dane wejściowe). Oczywiście, jeśli randomizowany algorytm odczytuje mniej niż, powiedzmy, wpisy , ma prawdopodobieństwo (z grubsza) wykrycia zmodyfikowanego wejścia. Jako takie, prawdopodobieństwo, że ten algorytm zawodzi, jeśli odczytuje mniej niż pozycji, wynosi co najmniej
1 l /p = 1 / 211 / 8 l / 8 ( 1 - P ) ( 7 / 8 ) > 7 / 16 > 1 / 3.L / 81 / 8L / 8
( 1 - P ) ( 7 / 8 ) > 7 / 16 > 1 / 3.
PS Myślę, że uważając na parametry, pierwszą dolną granicę można poprawić do .Ω ( 1 / ϵ2))