Inilah batas bawah yang bisa saya tunjukkan. Aku dugaan bahwa untuk tetap , hak batas bawah adalah Ω ( log n ) , tapi tentu saja aku mungkin salah.ϵΩ(logn)
Saya akan menggunakan urutan menurun (hanya untuk kenyamanan). Mekanisme dasarnya adalah memecah urutan menjadi blok Dalam blok ke- i akan ada elemen n i (yaitu, β i n i = n ).Lini∑ini=n
Berikut ini, kami ingin algoritma berhasil dengan probabilitas , untuk beberapa parameter δ > 0 .≥1−δδ>0
Batas bawah pertama: .Ω(1ϵlog1δ)
The blok th memiliki n i = 2 i - 1 elemen, sehingga L = lg n . Kami menetapkan nilai semua elemen di blok ke - i menjadi ( 1 + X i ) / ( 2 n i L ) , di mana X i adalah variabel yang bernilai 0 atau 1 . Jelas, jumlah total urutan ini adalah
α = L Σ i = 1 1 + Xini=2i−1L=lgni(1+Xi)/(2niL)Xi01
Bayangkan memilih setiapXidengan probabilitasβmenjadi1dan0sebaliknya. Untuk memperkirakanα, kita membutuhkan estimasiβ yangandal. Dalam partikulat, kami ingin dapat membedakan basisβ=1-4ϵdan, katakanlah,β=1.
α=∑i=1L1+Xi2niL=12+12L(∑i=1LXi).
Xiβ10αββ=1−4ϵβ=1
Sekarang, bayangkan sampel dari variabel-variabel acak, dan biarkan Z 1 , ... , Z m menjadi variabel sampel. Pengaturan Y = ∑ m i = 1 ( 1 - X i ) (perhatikan, bahwa kami mengambil jumlah variabel komplemen ), kami memiliki μ = E [ Y ] = ( 1 - β ) m , dan ketidaksamaan Chernoff memberi tahu kami bahwa jika β = 1 - 4mZ1,…,ZmY=∑mi=1(1−Xi)μ=E[Y]=(1−β)m , maka μ = 4 ε m , dan probabilitas kegagalan adalah
P [ Y ≤ 2 ε m ] = P [ Y ≤ ( 1 - 1 / 2 ) μ ] ≤ exp ( - μ ( 1 / 2 ) 2 / 2 ) = exp ( - ϵ m / 2 ) .
Untuk membuat jumlah ini lebih kecil dariβ=1−4ϵμ=4ϵm
P[Y≤2ϵm]=P[Y≤(1−1/2)μ]≤exp(−μ(1/2)2/2)=exp(−ϵm/2).
, kita perlu
m ≥ 2δ .
m≥2ϵln1δ
Pengamatan utama adalah bahwa ketimpangan Chernoff ketat (kita harus hati-hati, karena tidak benar untuk semua parameter, tetapi itu benar dalam hal ini), sehingga Anda tidak dapat melakukan lebih baik dari itu (hingga konstanta).
Batas bawah kedua: .Ω(logn/loglogn)
Mengatur th ukuran blok menjadi n i = L i , di mana L = Θ ( log n / log log n ) adalah jumlah blok. Elemen dalam blok ke- i memiliki nilai α i = ( 1 / L ) / n i . Jadi jumlah total nilai dalam urutan adalah 1 .ini=LiL=Θ(logn/loglogn)iαi=(1/L)/ni1
Sekarang, kita mungkin memutuskan untuk memilih blok arbitrer, katakan yang , dan set semua nilai dalam bloknya menjadi α j - 1 = L α j (bukan α j ). Ini meningkat kontribusi dari j th blok dari 1 / L untuk 1 , dan meningkatkan massa total urutan ke (hampir) 2 .jαj−1=Lαjαjj1/L12
Sekarang, secara informal, algoritma acak apa pun harus memeriksa nilai di masing-masing blok. Karena itu, ia harus membaca setidaknya nilai dari urutan.L
Untuk membuat argumen di atas lebih formal, dengan probabilitas , memberikan urutan asli dari massa 1 sebagai input (kita sebut ini sebagai masukan asli). Jika tidak, pilih secara acak blok yang memiliki nilai tambah (input yang dimodifikasi). Jelas, jika algoritma acak membaca kurang dari, katakanlah, L / 8 entri, ia memiliki probabilitas (kira-kira) 1 / 8 untuk mendeteksi input dimodifikasi. Dengan demikian, probabilitas algoritma ini gagal, jika membaca kurang dari entri L / 8 setidaknya
( 1 - p ) ( 7 /p=1/21L/81/8L/8
(1−p)(7/8)>7/16>1/3.
PS Saya pikir dengan lebih berhati-hati tentang parameter, batas bawah pertama dapat ditingkatkan menjadi .Ω(1/ϵ2)