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

Podobne dokumenty