Náhodnost IBllO 1/8 Alternatívne spôsoby počítania Motivácia existencia veľkej triedy prakticky neriešiteľných (a/e rozhodnutelných) problémov, ktoré potrebujeme prakticky riešiť! Idea relaxovať požiadavky, ktoré kladieme na výpočty • náhodnostné algoritmy • aproximatívne algoritmy pomôže to 111 Náhodnostné algoritmy náhodnostný protokol pre večerajúcich filozofov 3/8 Náhodnostné algoritmy Porovnávanie reťazcov Na počítačoch A a B sú uložené databázy x a y; nech x a y sú binárne reťazce dĺžky n. Úlohou je rozhodnúť, či x a y sú zhodné. Zaujíma nás, koľko bitov si musia počítače A a B vymeniť, aby dokázali vyriešiť problém rovnosti. Dá sa dokázať, že neexistuje deterministický komunikačný protokol, ktorý by riešil problém rovnosti a pritom si A a B vymenili nanajvýš n — 1 bitov. T.j. protokol, v ktorom A pošle celý reťazec x počítaču B je optimálny. 4/8 I Náhodnostné algoritmy Porovnávanie retazcov Randomizovany protokol pre problém rovnosti Vstup x = xix2 ...xn,y = yiy2 ...yn Krok 1 A vyberie náhodne prvočíslo p z intervalu [2, n2]. Krok 2 A vypočíta číslo s = x mod p a pošle čísla s, p počítaču B. Kro/c 3 B vypočíta číslo q = y mod p. Ak q t^ s, tak B vráti odpoveď x^y. Ak q = s, tak B vráti odpoveď x = y. počet bitov, ktoré si počítače pošlú je 2 • |~log2 n2] < 4 • |~log2 n] t t I 2 pravděpodobnost, že protokol vráti nesprávnu odpoved je < JL^- Ak n = 1016, tak zložitosi: deterministického protokolu je 1016, zatiaľ čo zložitosi randomizovaného protokolu je 256. Pravdepodobnosi, že randomizovany protokol vráti nesprávnu odopoved' je < 0.36892 • 10"14. 5/8 Náhodnostné algoritmy Randomizovaný Quicksort Rand-Quicksort(A) Vstup zoznam prvkov A Krok 1 ak A má jeden prvok, je utriedený ak A má viac prvkov, tak náhodne vyber prvok x z A Krok 2 vytvor zoznam A< obsahujúci prvky z A menšie než x vytvor zoznam A> obsahujúci prvky z A väčšie než x Krok 3 výstup je Rand-QuicksortfA,^), x, Rand-QuicksortfAy) očakávaná zložitosť algoritmu je ö(N\ogN) 6/8 Náhodnostné algoritmy Typy náhodnostných algoritmov Monte Carlo s ohraničenou pravdepodobnosťou je odpoveď nesprávna príklad: randomizovaný protokol pre problém rovnosti Las Vegas odpoveď je vždy správna; ciel': očakávaná zložitosť Las Vegas algoritmu pre problém je lepšia než zložitosť (deterministického) algorimtu príklad: randomizovaný Quicksort 7/8 I Náhodnostné algoritmy Náhodnostné zložitostné triedy Pravdepodobnostný Turingov stroj pracuje ako nedeterministický TS s tým rozdielom, že nedeterministický výber kroku výpočtu interpretujeme ako náhodnostnú volbu Trieda RP obsahuje rozhodovacie problémy, pre ktoré existuje polynomiálně časovo ohraničený pravdepodobnostný Turingov stroj s vlastnosťou: ak odpoveďou pre vstup X je "Nie", tak s pravdepodobnosťou 1 stroj dá správnu odpoveď ak odpoveďou je "Áno", tak stroj s pravdepodobnosťou > 1/2 dá yes. P C RP C NP náhodnostné algoritmy nemôžu efektívne riešit problémy mimo NP; problémy z N P ale dokážu (často) riešit s väčšou efektivitou 8/8