Typy algorytmów losowych ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Typy algorytmów losowych Las Vegas - zawsze daje prawidłowa odpowiedź (różny czas działania). Przykład: RandQuicksort ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Typy algorytmów losowych Las Vegas - zawsze daje prawidłowa odpowiedź (różny czas działania). Przykład: RandQuicksort Monte Carlo - może dać odpowiedź błędna z pewnym prawdopodobieństwem. Przykład: MIN-CUT. ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Typy algorytmów losowych Las Vegas - zawsze daje prawidłowa odpowiedź (różny czas działania). Przykład: RandQuicksort Monte Carlo - może dać odpowiedź błędna z pewnym prawdopodobieństwem. Przykład: MIN-CUT. Można dowolnie zredukować prawdopodobieństwo błędu przez niezależne powtórzenie algorytmu. ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Typy algorytmów losowych Las Vegas - zawsze daje prawidłowa odpowiedź (różny czas działania). Przykład: RandQuicksort Monte Carlo - może dać odpowiedź błędna z pewnym prawdopodobieństwem. Przykład: MIN-CUT. Można dowolnie zredukować prawdopodobieństwo błędu przez niezależne powtórzenie algorytmu. Dla problemów decyzyjnych (odp. TAK/NIE) wyróżnia się algorytmy Monte Carlo * z jednostronnym błędem (one-sided error) - jedna z odpowiedzi jest poprawna * z dwustronnym błędem (two-sided error)- każda odp ma niezerowe prawdopodobieństwo błędu. ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Monte Carlo i Las Vegas ALP520 - Wykład z Algorytmów Probabilistycznych p.3
Monte Carlo i Las Vegas Zadanie. Rozważmy algorytm Monte Carlo A dla problemu P o oczekiwanym czasie działania co najwyżej T(n) dla dowolnych danych wejściowych rozmiaru n, który daje poprawna odpowiedź z prawdopodobieństwem γ(n). Załóżmy ponadto, że można zweryfikować poprawność danego rozwiazania problemu P w czasie t(n). Pokaż jak otrzymać algorytm Las Vegas, który zawsze da poprawne rozwiazanie problemu P w oczekiwanym czasie nie większym niż (T(n) + t(n))/γ(n). ALP520 - Wykład z Algorytmów Probabilistycznych p.3
Odrobina teorii złóżoności ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Odrobina teorii złóżoności I. Modele obliczeń ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Odrobina teorii złóżoności I. Modele obliczeń Maszyna Turinga M = (S, Σ,δ,s) ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Odrobina teorii złóżoności I. Modele obliczeń Maszyna Turinga M = (S, Σ,δ,s) RAM (maszyna o swobodnym dostępie), operacje in/out, operacje na komórkach pamięci, +,,,/ ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Odrobina teorii złóżoności I. Modele obliczeń Maszyna Turinga M = (S, Σ,δ,s) RAM (maszyna o swobodnym dostępie), operacje in/out, operacje na komórkach pamięci, +,,,/ RAM i Maszyna Turinga sa równoważne ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Odrobina teorii złóżoności I. Modele obliczeń Maszyna Turinga M = (S, Σ,δ,s) RAM (maszyna o swobodnym dostępie), operacje in/out, operacje na komórkach pamięci, +,,,/ RAM i Maszyna Turinga sa równoważne II. Klasy złożoności ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Odrobina teorii złóżoności I. Modele obliczeń Maszyna Turinga M = (S, Σ,δ,s) RAM (maszyna o swobodnym dostępie), operacje in/out, operacje na komórkach pamięci, +,,,/ RAM i Maszyna Turinga sa równoważne II. Klasy złożoności Rozpatrujemy problemy decyzyjne (TAK/NIE). Każdy problem decyzyjny można traktować jako problem rozpoznawania pewnego języka (łatwiej). Ustalmy alfabet Σ, zwykle Σ = {0, 1} i niech Σ zbiór wszystkich możliwych słów nad alfabetem. Język L Σ jest zbiorem słów nad alfabetem Σ. ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Klasy złożoności ALP520 - Wykład z Algorytmów Probabilistycznych p.5
Klasy złożoności Problem rozpoznawania języka - sprawdzenie czy dane słowo x Σ należy do języka L. ALP520 - Wykład z Algorytmów Probabilistycznych p.5
Klasy złożoności Problem rozpoznawania języka - sprawdzenie czy dane słowo x Σ należy do języka L. Algorytm rozwiazuje ten problem dla danego języka L poprzez akceptację (odp. TAK) każdego słowa wejściowego, które należy do języka i odrzucenie (odp. NIE) każdego słowa, które nie należy do L. ALP520 - Wykład z Algorytmów Probabilistycznych p.5
Klasy złożoności Problem rozpoznawania języka - sprawdzenie czy dane słowo x Σ należy do języka L. Algorytm rozwiazuje ten problem dla danego języka L poprzez akceptację (odp. TAK) każdego słowa wejściowego, które należy do języka i odrzucenie (odp. NIE) każdego słowa, które nie należy do L. Klasa złożoności to rodzina języków, które można rozpoznać za pomoca algorytmu o z góry zadanych parametrach obliczeniowych (zwykle efektywny = o wielomianowym czasie działania n O(1), gdzie n-rozmiar wejścia). ALP520 - Wykład z Algorytmów Probabilistycznych p.5
Deterministyczne klasy zlożoności ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Deterministyczne klasy zlożoności Definicja. P={L : alg. wielomianowy A : x Σ x L A(x) akceptuje x/ L A(x) odrzuca.} ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Deterministyczne klasy zlożoności Definicja. P={L : alg. wielomianowy A : x Σ x L A(x) akceptuje x/ L A(x) odrzuca.} Definicja. NP={L : alg. wielomianowy A : x Σ x L y Σ, y < Pol( x ) A(x,y) akceptuje, x/ L y Σ A(x,y) odrzuca.} ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Deterministyczne klasy zlożoności Definicja. P={L : alg. wielomianowy A : x Σ x L A(x) akceptuje x/ L A(x) odrzuca.} Definicja. NP={L : alg. wielomianowy A : x Σ x L y Σ, y < Pol( x ) A(x,y) akceptuje, x/ L y Σ A(x,y) odrzuca.} NP- tylko problemy, dla których można efektywnie zweryfikować rozwiazania. Przykład: cykl Hamiltona w grafie. ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Losowy model obliczeń ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Losowy model obliczeń Probabilistyczna maszyna Turinga- maszyna Turinga, która potrafi wygenerować losowy bit w jednym kroku. Jeśli r ciag losowych bitów, to r = Poly( x ), gdzie x dana wejściowa. ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Losowy model obliczeń Probabilistyczna maszyna Turinga- maszyna Turinga, która potrafi wygenerować losowy bit w jednym kroku. Jeśli r ciag losowych bitów, to r = Poly( x ), gdzie x dana wejściowa. Losowe klasy złożoności ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Losowy model obliczeń Probabilistyczna maszyna Turinga- maszyna Turinga, która potrafi wygenerować losowy bit w jednym kroku. Jeśli r ciag losowych bitów, to r = Poly( x ), gdzie x dana wejściowa. Losowe klasy złożoności Definicja. RP(Randomized Polynomial time)= {L : alg. losowy A o wielomianowym czasie w najgorszym przypadku : x Σ x L Pr[A(x) akceptuje] 1 2 x/ L Pr[A(x) akceptuje] = 0} ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Losowy model obliczeń Probabilistyczna maszyna Turinga- maszyna Turinga, która potrafi wygenerować losowy bit w jednym kroku. Jeśli r ciag losowych bitów, to r = Poly( x ), gdzie x dana wejściowa. Losowe klasy złożoności Definicja. RP(Randomized Polynomial time)= {L : alg. losowy A o wielomianowym czasie w najgorszym przypadku : x Σ x L Pr[A(x) akceptuje] 1 2 x/ L Pr[A(x) akceptuje] = 0} one-sided error Monte Carlo, 1 2 można zastapić dowoln a funkcja będac a odwrotnościa wielomianu. co_rp : x L Pr[A(x) akceptuje] = 1 x/ L Pr[A(x) odrzuca] 1 2. ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Losowe klasy złożoności Definicja. ZPP(Zero-error Probabilistic Polynomial time)= {L : L ma algorytm Las Vegas o wielomianowym oczekiwanym czasie działania.} ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Losowe klasy złożoności Definicja. ZPP(Zero-error Probabilistic Polynomial time)= {L : L ma algorytm Las Vegas o wielomianowym oczekiwanym czasie działania.} Fakt. RP co_rp = ZPP (Dowód na ćwiczeniach.) ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Losowe klasy złożoności Definicja. ZPP(Zero-error Probabilistic Polynomial time)= {L : L ma algorytm Las Vegas o wielomianowym oczekiwanym czasie działania.} Fakt. RP co_rp = ZPP (Dowód na ćwiczeniach.) Definicja. PP (Probabilistic Polynomial time)= {L : alg. losowy A o wielomianowym czasie w najgorszym przypadku: x Σ x L Pr[A(x) akceptuje] > 1 2 x/ L Pr[A(x) akceptuje] < 1 2 } ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Losowe klasy złożoności Definicja. ZPP(Zero-error Probabilistic Polynomial time)= {L : L ma algorytm Las Vegas o wielomianowym oczekiwanym czasie działania.} Fakt. RP co_rp = ZPP (Dowód na ćwiczeniach.) Definicja. PP (Probabilistic Polynomial time)= {L : alg. losowy A o wielomianowym czasie w najgorszym przypadku: x Σ x L Pr[A(x) akceptuje] > 1 2 x/ L Pr[A(x) akceptuje] < 1 2 } two-sided error Monte Carlo Redukcja błędu - powtórzyć wielokrotnie i wybrać przeważajac a odpowiedź. Ograniczone możliwości - nie działa gdy prawd. bliskie 1 2. ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Losowe klasy złożoności Definicja. BPP (Bounded-error Probabilistic Polynomial time)= {L : alg. losowy A o wielomianowym czasie w najgorszym przypadku: x Σ x L Pr[A(x) akceptuje] 3 4 x/ L Pr[A(x) akceptuje] 1 4 } ALP520 - Wykład z Algorytmów Probabilistycznych p.9
Losowe klasy złożoności Definicja. BPP (Bounded-error Probabilistic Polynomial time)= {L : alg. losowy A o wielomianowym czasie w najgorszym przypadku: x Σ x L Pr[A(x) akceptuje] 3 4 x/ L Pr[A(x) akceptuje] 1 4 } Redukcja błędu - zawsze można do 2 1 (dowód poźniej). n Wartośći: 3 4 i 1 4 można zast apić przez 2 1 + 1 p(n) i 2 1 1 p(n) opowiednio, gdzie p(n) jest dowolona funkcja ograniczona przez wielomian. ALP520 - Wykład z Algorytmów Probabilistycznych p.9
Zwiazki pomiędzy losowymi klasami złożoności PP a BPP ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Zwiazki pomiędzy losowymi klasami złożoności PP a BPP P RP NP ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Zwiazki pomiędzy losowymi klasami złożoności PP a BPP P RP NP RP BPP PP ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Zwiazki pomiędzy losowymi klasami złożoności PP a BPP P RP NP RP BPP PP PP = co_pp, BPP = co_bpp ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Zwiazki pomiędzy losowymi klasami złożoności PP a BPP P RP NP RP BPP PP PP = co_pp, BPP = co_bpp Otwarte problemy: RP = co_rp, BPP NP ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Zwiazki pomiędzy losowymi klasami złożoności PP a BPP P RP NP RP BPP PP PP = co_pp, BPP = co_bpp Otwarte problemy: RP = co_rp, BPP NP Jeśli NP BPP, to NP = RP. (zadanie) ALP520 - Wykład z Algorytmów Probabilistycznych p.10