wyklad3
Transkrypt
wyklad3
Typy algorytmów losowych ALP520 - Wykład z Algorytmów Probabilistycznych – p.2 Typy algorytmów losowych - zawsze daje prawidłowa˛ odpowiedź (różny czas działania). Przykład: RandQuicksort Las Vegas ALP520 - Wykład z Algorytmów Probabilistycznych – p.2 Typy algorytmów losowych - zawsze daje prawidłowa˛ odpowiedź (różny czas działania). Przykład: RandQuicksort Las Vegas - może dać odpowiedź błedn ˛ a˛ z pewnym prawdopodobieństwem. Przykład: MIN-CUT. Monte Carlo ALP520 - Wykład z Algorytmów Probabilistycznych – p.2 Typy algorytmów losowych - zawsze daje prawidłowa˛ odpowiedź (różny czas działania). Przykład: RandQuicksort Las Vegas - może dać odpowiedź błedn ˛ a˛ z pewnym prawdopodobieństwem. Przykład: MIN-CUT. Można dowolnie zredukować prawdopodobieństwo błedu ˛ przez niezależne powtórzenie algorytmu. Monte Carlo ALP520 - Wykład z Algorytmów Probabilistycznych – p.2 Typy algorytmów losowych - zawsze daje prawidłowa˛ odpowiedź (różny czas działania). Przykład: RandQuicksort Las Vegas - może dać odpowiedź błedn ˛ a˛ z pewnym prawdopodobieństwem. Przykład: MIN-CUT. Można dowolnie zredukować prawdopodobieństwo błedu ˛ przez niezależne powtórzenie algorytmu. Monte Carlo Dla problemów decyzyjnych (odp. TAK/NIE) wyróżnia sie˛ algorytmy Monte Carlo * z jednostronnym błedem ˛ (one-sided error) - jedna z odpowiedzi jest poprawna * z dwustronnym błedem ˛ (two-sided error)- każda odp ma niezerowe prawdopodobieństwo błedu. ˛ 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 wiekszym ˛ 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 dostepie), ˛ operacje in/out, operacje na komórkach pamieci, ˛ +, −, ×, / 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 dostepie), ˛ operacje in/out, operacje na komórkach pamieci, ˛ +, −, ×, / 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 dostepie), ˛ operacje in/out, operacje na komórkach pamieci, ˛ +, −, ×, / 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 dostepie), ˛ operacje in/out, operacje na komórkach pamieci, ˛ +, −, ×, / 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 jezyka ˛ (łatwiej). Ustalmy alfabet Σ, zwykle Σ = {0, 1} i niech Σ∗ zbiór wszystkich możliwych słów nad alfabetem. Jezyk ˛ 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 jezyka ˛ - sprawdzenie czy dane słowo x ∈ Σ∗ należy do jezyka ˛ L. ALP520 - Wykład z Algorytmów Probabilistycznych – p.5 Klasy złożoności Problem rozpoznawania jezyka ˛ - sprawdzenie czy dane słowo x ∈ Σ∗ należy do jezyka ˛ L. Algorytm rozwiazuje ˛ ten problem dla danego jezyka ˛ L poprzez akceptacje˛ (odp. TAK) każdego słowa wejściowego, które należy do jezyka ˛ 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 jezyka ˛ - sprawdzenie czy dane słowo x ∈ Σ∗ należy do jezyka ˛ L. Algorytm rozwiazuje ˛ ten problem dla danego jezyka ˛ L poprzez akceptacje˛ (odp. TAK) każdego słowa wejściowego, które należy do jezyka ˛ i odrzucenie (odp. NIE) każdego słowa, które nie należy do L. Klasa złożoności to rodzina jezyków, ˛ które można rozpoznać za pomoca˛ algorytmu o z góry zadanych parametrach obliczeniowych (zwykle efektywny = o wielomianowym czasie działania nO(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| < P ol(|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| < P ol(|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| = P oly(|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| = P oly(|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| = P oly(|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] ≥ 21 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| = P oly(|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] ≥ 21 x∈ / L ⇒ Pr[A(x) akceptuje] = 0} one-sided error Monte Carlo, 12 można zastapić ˛ dowolna˛ funkcja˛ bed ˛ ac ˛ a˛ odwrotnościa˛ wielomianu. co_RP : x ∈ L ⇒ Pr[A(x) akceptuje] = 1 x∈ / L ⇒ Pr[A(x) odrzuca] ≥ 12 . 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] > 12 x∈ / L ⇒ Pr[A(x) akceptuje] < 21 } 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] > 12 x∈ / L ⇒ Pr[A(x) akceptuje] < 21 } two-sided error Monte Carlo Redukcja błedu ˛ - powtórzyć wielokrotnie i wybrać przeważajac ˛ a˛ odpowiedź. Ograniczone możliwości - nie działa gdy prawd. bliskie 12 . 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] ≥ 43 x∈ / L ⇒ Pr[A(x) akceptuje] ≤ 41 } 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] ≥ 43 x∈ / L ⇒ Pr[A(x) akceptuje] ≤ 41 } Redukcja błedu ˛ - zawsze można do Wartośći: 3 4 i 1 4 1 2n można zastapić ˛ przez (dowód poźniej). 1 2 + 1 p(n) i 1 2 − 1 p(n) opo- wiednio, gdzie p(n) jest dowolona˛ funkcja˛ ograniczona˛ przez wielomian. ALP520 - Wykład z Algorytmów Probabilistycznych – p.9 Zwiazki ˛ pomi˛edzy losowymi klasami złożoności PP a BPP ALP520 - Wykład z Algorytmów Probabilistycznych – p.10 Zwiazki ˛ pomi˛edzy losowymi klasami złożoności PP a BPP P ⊆ RP ⊆ NP ALP520 - Wykład z Algorytmów Probabilistycznych – p.10 Zwiazki ˛ pomi˛edzy 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˛edzy 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˛edzy 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˛edzy 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