Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Podobne dokumenty
Efektywność Procedur Obliczeniowych. wykład 5

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Teoria obliczeń i złożoność obliczeniowa

Obliczenia inspirowane Naturą

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Imię, nazwisko, nr indeksu

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Języki, automaty i obliczenia

Algorytmy asymetryczne

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Technologie Informacyjne

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Lista 6 Problemy NP-zupełne

Wstęp do programowania

10110 =

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Języki, automaty i obliczenia

Maszyna Turinga języki

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Dopełnienie to można wyrazić w następujący sposób:

Problem P = NP. albo czy informacja może. biec na skróty

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Obliczenia inspirowane Naturą

Losowość w rozproszonym modelu

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Języki, automaty i obliczenia

Zasady analizy algorytmów

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Struktura danych. Sposób uporządkowania informacji w komputerze.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Algorytmy zrandomizowane

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Statystyka matematyczna i ekonometria

Złożoność obliczeniowa. wykład 1

(j, k) jeśli k j w przeciwnym przypadku.

Algorytmika Problemów Trudnych

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 9

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Badanie pierwszości liczby, klasa NP i test Rabina

Prawdopodobieństwo i statystyka

Aproksymacja funkcji a regresja symboliczna

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Wprowadzenie do złożoności obliczeniowej

Statystyka matematyczna i ekonometria

Wykład 9: Markov Chain Monte Carlo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI

Temat: Algorytmy wyszukiwania wzorca w tekście

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Teoretyczne podstawy informatyki

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Hierarchia Chomsky ego Maszyna Turinga

0 + 0 = 0, = 1, = 1, = 0.

JAO - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Złożoność informacyjna Kołmogorowa. Paweł Parys

Metody numeryczne. materiały do wykładu dla studentów. 1. Teoria błędów, notacja O

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Podstawy metod probabilistycznych. dr Adam Kiersztyn

Uczenie sieci neuronowych i bayesowskich

Wstęp do informatyki- wykład 1

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm. Algorytmy Marek Pudełko

Generowanie i optymalizacja harmonogramu za pomoca

Struktury danych i złożoność obliczeniowa. Prof. dr hab. inż. Jan Magott

VI WYKŁAD STATYSTYKA. 9/04/2014 B8 sala 0.10B Godz. 15:15

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Teoria Złożoności Zadania

Złożoność obliczeniowa zadania, zestaw 2

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Wykład 2 Hipoteza statystyczna, test statystyczny, poziom istotn. istotności, p-wartość i moc testu

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Algorytmy i Struktury Danych.

Algorytmy MCMC (Markowowskie Monte Carlo) dla skokowych procesów Markowa

Efektywność algorytmów

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Zastosowanie sztucznej inteligencji w testowaniu oprogramowania

Hierarchia Chomsky ego

Testowanie hipotez statystycznych

Złożoność Obliczeniowa Algorytmów

Program MC. Obliczyć radialną funkcję korelacji. Zrobić jej wykres. Odczytać z wykresu wartość radialnej funkcji korelacji w punkcie r=

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Algorytmy genetyczne w interpolacji wielomianowej

Tomasz M. Gwizdałła 2012/13

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

Zaawansowane metody numeryczne

Metody numeryczne w przykładach

Transkrypt:

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