Randomized Algorithms 7 a 9.3.2017 RA 2016/17 1 / 26
Modely podľa umiestnenia pravdepodobnosti I. modelom pravdepodobnostného algoritmu je pravdepodobnostné rozdelenie nad množinou deterministických stratégií {A 1,..., A m } Pre vstup w náhodne zvolíme i R {1,..., m} a realizujeme výpočet C i = A i (w), ktorého časová zložitosť je Time(C i ) (X? = Y, AB? = C,...) II. pravdepodobnostný algoritmus modelujeme nedeterministickým algoritmom s pravdepodobnostným rozdelením nad nedeterministickými voľbami opakované používanie náhodnej voľby (pravdepodobnostný QSort,...) Modely 2016/17 2 / 26
Modely podľa chyby A() - algoritmus; F() - čo počítame Las Vegas Pr[A(x) = F (x)] = 1 (voľba šéfa, Lazy Select,...); snaha o znižovanie zložitosti dobrým očakávaným prípadom { x L, Pr[A(x) = 1] 1/2 Monte Carlo s jednosmernou chybou x / L, A(x) = 0 (porovnanie databáz na rovnosť) Monte Carlo s obojsmernou { chybou 1/2 + ε Pr[A(x) = F (x)] (porovnanie databáz na rôznosť) > 1/2 Modely 2016/17 3 / 26
Modely X Y a Monte Carlo s obojsmernou chybou X = x 1 x 2... x n v počítači R I Y = y 1 y 2... y n v počítači R II L = {(X, Y ) X Y } R I j R {1,..., n} j, xj R II if x j { y j then accept Pr[accept] = 1 2 else 1 2n Pr[reject] = 1 2 + 1 2n počet prenášaných bitov: 2 log n vs. n pri determinizme korektnosť: X = Y chyba pri Pr[accept] = 1 2 1 2n X Y chyba pri voľbe j R {1,..., n} a následne Pr[reject] = 1 2 + 1 2n aká je pravdepodobnosť chyby? Modely 2016/17 4 / 26
Modely X Y - analýza korektnej odpovede pravdepodobnosť korektnej odpovede accept return(1) reject return(0) { i {1,..., n} C i,l l {0, 1} v prvej fáze v druhej fáze C i i {1,..., n}v prvej fáze X = Y, (X, Y ) / L E 0 = {C i0 1 i n} Pr[E 0 ] = Pr[C i0 ] = 1 n ( 1 2 + 1 ) ( 2n = n 1 1 n 2 + 2n) 1 > 1/2 X Y, (X, Y ) L!j : x j y j E 1 = {C j } {C i1 i j} Pr[E 1 ] = 1 n + i j 1 n ( 1 2 1 ) 2n = 1 n + n 1 n ( n 1 ) 2n > 1/2 Modely 2016/17 5 / 26
Modely 2 definície LasVegas 1 algoritmus A? je Las Vegas ak A? (x) = F (x) alebo A? (x) =?, pričom Pr[A? (x) =?] 1/2 2 algoritmus A je Las Vegas ak Pr[A(x) = F (x)] = 1 1 = 2 1 opakuj A, kým nezískaš korektnú odpoveď 2 E(# opakovaní ) = 2 2 = 1 nechaj A bežať max 2E(T) krokov ak nemáš odpoveď, return(?) Modely 2016/17 6 / 26
znižovanie chyby opakovaním Monte Carlo s ohraničenou chybou Pr[A(x) = F (x)] 1/2 + ε požadovaná pravdepodobnosť chyby δ znižovanie { chyby opakovaním t krát opakuj A A t rozhodni väčšinou X počíta korektné odpovede A t vypočítame 1 Pr[X = i] 2 1 Pr[A(x) = F (x)] = t/2 1 i=0 Pr[X = i] 3 1 Pr[A(x) = F (x)] = δ postačujúci počet opakovaní t = 2 ln δ ln(1 4ε 2 ) ε, δ sú konštanty, preto aj t je konštanta Modely 2016/17 7 / 26
znižovanie chyby opakovaním Monte Carlo s ohraničenou chybou pre konkrétne x: p(x) = Pr[A(x) = F (x)] = 1/2 + ε x, ε x ε Pr[X = i] = ( ) t i ( 1 2 + ε x) i ( 1 2 ε x) t i = ( t i < ( ) t i ( 1 4 ε2 x) i [ ( 1 2 ε x)( 1 2 + ε x) ] t/2 i = ( ) t i ( 1 4 ε2 x) i ( 1 4 ε2 x) t 2i = ( t i ) ( 1 4 ε2 x) i ( 1 2 ε x) t 2i ) ( 1 4 ε2 x) t/2 ( t i 1 Pr[A(x) = F (x)] = t/2 1 i=0 Pr[X = i] < ( 1 4 ε2 ) t/2 t/2 1 i=0 < ( 1 4 ε2 ) t/2 t ( t i=0 i = (1 4ε 2 ) t/2 ) = (1 4ε 2 ) t/2 2 t 2 t ) ( 1 4 ε2 ) t/2 ( t i) (1 4ε 2 ) t/2 = δ t = 2 ln δ ln(1 4ε 2 ) Modely 2016/17 8 / 26
znižovanie chyby opakovaním Monte Carlo s neohraničenou chybou Pr[A(x) = F (x)] > 1/2 Napr: Pr[A(x) = F (x)] = 1/2 + 2 x, δ požadovaná chyba 2 ln δ 2 ln δ t = ln(1 4ε 2 t = ) ln(1 4 2 2 x ) 2 ln δ t = ln(1 4 2 2 x ) 2 ln δ 2 2 x = 2(ln δ)2 2 x ln(1 4y) 4y y počet opakovaní potrebný pre dosiahnutie chyby δ môže byť exponenciálny Modely 2016/17 9 / 26
pravdepodobnostné triedy zložitosti RP { x L : Pr[A(x) = 1] 1/2 RP x / L : A(x) = 0 Lemma L RP polynóm q a PTM M: polynomiálny čas RP NP x L Pr[M(x) = 1] > 1/q( x ) x / L M(x) = 0 L RP : Pr[A(x) = 1] 1/2, stačí q( x ) = 2 Pr[M(x) = 1] > 1/q( x ) Pr[chyba po t opakovaniach] ( ) t 1 1 q( x ) = e t/q( x ) t=q( x ) < 1/2 Modely 2016/17 10 / 26
pravdepodobnostné triedy zložitosti ZPP ZPP := RP corp polynomiálny čas ZPP NP conp Lemma L ZPP PTM M? : x L return accept alebo? x / L return reject alebo? Pr[?] 1/2 L RP corp, M, com sú odpovedajúce stroje if x L(M) then accept else if x L(coM) then reject else return(?) z M? získame M RP preklopením? na reject M corp preklopením? na accept Modely 2016/17 11 / 26
pravdepodobnostné triedy zložitosti PP polynomiálny čas PP := x L Pr[A(x) = 1] > 1/2 Lemma NP PP PSPACE PP PSPACE simulácia s počítaním M NP PP nárast počtu akceptujúcich výpočtov pridaním rovnakoveľkého akceptujúceho podstromu N + + + + + Modely 2016/17 12 / 26
pravdepodobnostné triedy zložitosti BPP BPP { x L : Pr[A(x) = 1] 2/3 x / L : Pr[A(x) = 0] 2/3 2/3 3/4; stačí ɛ > 1/2 polynomiálny čas Lemma L BPP PTM a polynóm p(x) taký, že Pr[chyba] 1/2 p( x ) analýza počtu opakovaní: pre Pr[korektne] > 1/2 + ε a požadovanú pravdepodobnosť chyby δ: BPP: ε = 1/4, δ = 1/2 p( x ) t = t = ln δ 2 ln(1 4ε 2 ) ln δ 2 ln(1 4ε 2 ) = 2p( x ) ln 2 4/3 Modely 2016/17 13 / 26
pravdepodobnostné triedy zložitosti BPP Theorem BPP P/poly 1 PTM M, vstup x, x = n, čas výpočtu p(n), r {0, 1} p(n) M(x, r) je deterministický výpočet 2 ukážeme, že existuje m vektorov r i,..., r m takých, že x, x = n, Majority(M(x, r 1 ),..., M(x, r m )) dáva korektnú odpoveď 3 z polynomiality m vyplýva existencia stroja z P/poly Modely 2016/17 14 / 26
pravdepodobnostné triedy zložitosti BPP 2. r i,..., r m {0, 1} p(n) : x, x = n, Majority(M(x, r 1 ),..., M(x, r m)) je korektná odpoveď A(n) = (r 1,..., r m), M(x, A(n)) = Majority(M(x, r 1 ),..., M(x, r m)) BPP: z m náhodných behov je m/4 zlých; nechceme, aby ich bolo >m/2 Chernoff: Pr[# zlých m/2] e δ2 µ/3 = e m/12 S x = {A(n) M(x, A(n)) je nesprávna odpoveď } E( S x ) e m/12 2 A(n) E( S x ) 2 n e m/12 2 A(n) ak E( S x ) < 2 A(n), tak existuje konkrétne A(n), ktoré vedie ku korektnej odpovedi M(x, A(n)) pre všetky x, x = n A(n) = mp(n) 2 n e m/12 2 mp(n) < 2 mp(n) m = 12(n + 1) vyhovuje Modely 2016/17 15 / 26
pravdepodobnostné triedy zložitosti vzťah zložitostných tried RP NP P ZPP NP BPP PP PSPACE co-np co-rp co-np Modely 2016/17 16 / 26
δ BPP Zdroje náhodných postupností/bitov perfect random source náhodná premenná generujúca nekonečné postupnosti x 1, x 2,... {0, 1} bitov také, že vyžadujeme (y 1,..., y n ) {0, 1} n Pr[x 1 = y 1,..., x n = y n ] = 2 n nezávislosť výsledok i-teho hodu mincou nezávisí od výsledkov predchádzajúcich hodov korektnosť pravdepodobnosť x i = 1 musí byť presne1/2. čo ak od nezávislosti upustíme? δ-random source S p náhodná premenná generujúca nekonečné postupnosti x 1, x 2,... {0, 1} bitov taká, že 0 < δ 1/2, p : {0, 1} (δ, 1 δ) y 1,..., y n Pr[x 1 = y 1,..., x n = y n ] = n i=1 (y ip(y 1,..., y i 1 ) + (1 y i )(1 p(y 1,..., y i 1 ))) pravdepodobnosť, že i-ty bit=1 je p(y 1,..., y i 1 ), čo je číslo medzi δ a 1 δ, ľubovoľne závislé od prvých (i 1) hodnôt Modely 2016/17 17 / 26
δ BPP Zdroje náhodných postupností/bitov 2SAT začni s náhodným priradením α R {0, 1} n ; opakuj náhodné preklopenie bitu tak, aby sa nesplnená klauzula stala splnenou E[# preklopení ] n 2 pri δ-náhodnom zdroji možno vynútiť exponenciálne //E[t(n)] fair minca, x spĺňajúce priradenie t(i) - očakávaný počet preklopení, ak na začiatku sa od x líši v i bitoch t(0) = 0 t(i) 1/2(t(i 1) + t(i + 1)) + 1 t(n) = t(n 1) + 1 t(1) 2n 1, t(i) 2ni i 2, t(n) n 2 nahradíme rovnosťami a potom t(i) x(i) Modely 2016/17 18 / 26
δ BPP Zdroje náhodných postupností/bitov 0 δ 1/2, TS M, 0/1-synovia, P(v)-cesta z koreňa stromu výpočtu C(x) do vrchola v δ-priradenie F: hrany(c(x)) (δ, 1 δ) F(0-syn)+F(1-syn)=1 Pr[list] = α P(list) F (α) Pr[M(x) = + ] = +list l Pr[l] 0 RP=0 BPP=P každý list musí hovoriť správne 1/2 RP = RP, 1/2 BPP = BPP každá hrana ohodnotená 1/2 ak δ < 1/2 tak δ BPP = BPP δ BPP BPP BPP δ BPP simulácia BPP použitím δ random source Modely 2016/17 19 / 26
δ BPP BPP δ BPP predpoklady: chyba BPP stroja N znížená na 1/32 x je vstup p( x ) čas výpočtu, n = p( x ) 3 log n + 5 k vhodná konštanta, k = 2δ 2δ 2 idea: simulácia 2 k výpočtov s "náhodnými bitmi" získanými prepočtom z bitov generovaných δ-náhodným zdrojom + rozhodovanie väčšinou blok k bitov tvorí binárne číslo κ = κ 1,..., κ k λ = λ 1,..., λ k k bit κ λ= κ i λ i mod 2 i=1 Modely 2016/17 20 / 26
δ BPP BPP δ BPP β 1,..., β n bloky bitov generovaných δ-náhodným zdrojom 2 k j-ty výpočet N(x) používa "náhodné bity" (β 1 j, β 2 j,..., β n j) zlá postupnosť bitov vedie k chybnej odpovedi B množina zlých postupností z predpokladov: B 1 32 2n Σ stroj rozhoduje väčšinou j-te vlákno simuluje výpočet N((β 1 j,β 2 j,...β n j),x) T = {(β 1 Z, β 2 Z,..., β n Z); Z = 0, 1,..., 2 k 1} pravdepodobnosť chyby: Pr[ T B T /2] Modely 2016/17 21 / 26
δ BPP BPP δ BPP bias(β i Z) = (Pr[β i Z = 1] Pr[β i Z = 0]) 2 ukážeme 2 1 k 1 1 2 k (Pr[β i Z = 1] Pr[β i Z = 0]) 2 = Z=0 2 k 1 β=0 pr[β] 2 2 2 k 1 β=0 pr[β]2 (δ 2 + (1 δ) 2 ) k 3 E( T B ) T 8 4 Pr[ T B > T /2] 1/4 Modely 2016/17 22 / 26
δ BPP BPP δ BPP Lemma (1) 1 2 k 1 2 k Z=0 (Pr[β i Z = 1] Pr[β i Z = 0]) 2 = 2 k 1 β=0 pr[β]2 2 k 1 ( 1) β Z pr[β] = β Z = 0 ( 1)β Z = 1 β Z = 1 ( 1) β Z = 1 = Pr[β Z = 0] Pr[β Z = 1] β=0 2 k 1 Z=0 (Pr[β i Z = 1] Pr[β i Z = 0]) 2 = = ( 2 k 1 2 ) k 2 1 Z=0 β=0 ( 1)β Z pr[β] = 2 k 1 2 k 1 Z=0 β=0 pr[β]2 + 2 2 k 1 2 k 1 Z=0 β 1,β 2 =0 ( 1)(β 1+β 2 ) Z pr[β 1 ]pr[β 2 ] = 2 k 1 2 k 1 Z=0 β=0 pr[β]2 + 2 2 2 k 1 β 1,β 2 =0 pr[β k 1 1]pr[β 2 ] ( 1) (β 1+β 2 ) Z Z=0 }{{} 0 = 2 k 2 k 1 β=0 pr[β]2 Modely 2016/17 23 / 26
δ BPP BPP δ BPP Lemma (2) 2 k 1 β=0 pr[β]2 (δ 2 + (1 δ) 2 ) k nech β a β sa líšia v i-tom bite, p i = pr[i-ty bit je 1] v sume 2 k 1 β pr[β] 2 sú dvojice líšiace sa v jednom bite; optikou i-teho bitu, v ktorom sa líšia, je to Api 2 + A(1 p i ) 2 maximum pre p i {δ, (1 δ)} preto 2 k 1 β=0 pr[β] 2 k i=0 ( ) k δ 2i (1 δ) 2(k i) = (δ 2 + (1 δ) 2 ) k i Modely 2016/17 24 / 26
δ BPP BPP δ BPP 2 k 1 Z=0 bias(β i Z) L1 2k 1 = 2 k β=0 pr[β] 2 L2 2 k (δ 2 + (1 δ) 2 ) k bit β i Z je vychýlený, ak bias(β i Z) 1/n 2 pr[ nevychýlený bit = 1] ( 1 2 1 2n, 1 2 + 1 2n ) inak by bias(β j ) > (1/n) 2 počet vychýlených bitov "v riadku" je max n 2 2 k (δ 2 + (1 δ) 2 ) k, v celom výpočte max n 3 2 k (δ 2 + (1 δ) 2 ) k chceme n 3 2 k (δ 2 + (1 δ) 2 ) k 2 k /32 k 5 + 3 log n 2δ 2δ 2 inak by súčet vychýlení presiahol bias riadku Modely 2016/17 25 / 26
δ BPP BPP δ BPP Lemma (3) E( T B ) T 8 vychýlená postupnosť - obsahuje vychýlený bit; max 2 k /32 postupností je vychýlených E[ T B ] = n (t 1...t n) T (b 1...b n) B i=1 pr[b i = t i ] Corollary T obsahuje vychýlené (B) aj nevychýlené (U) postupnosti (T = B U, B 2 k /32) E( T B = (t 1...t n) T 2k + 32 }{{} B t 1,...,t n U b 1...b n B (b 1...b n) B n i=1 pr[b i = t i ] ( 1 2 + 1 ) n = 2k 2n + 2k 2n 32 32 ( ( = 2k 1 + 1 + 1 ) n ) 2k 2k (1 + e) 32 n 32 8 = T 8 Pr[ T B > T /2] 1/4 ( ) 1 n ( 1 + 1 ) n 2 n Modely 2016/17 26 / 26