Efektywność Procedur Obliczeniowych. wykład 5

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

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

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

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

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

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

Języki, automaty i obliczenia

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

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1

Maszyna Turinga języki

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

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}

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

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

Wstęp do programowania

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

Obliczenia inspirowane Naturą

Złożoność obliczeniowa wybranych problemów szeregowania zadań jednostkowych na równoległych procesorach

Matematyczne Podstawy Informatyki

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

PROBLEMY NIEROZSTRZYGALNE

Imię, nazwisko, nr indeksu

Algorytmy asymetryczne

Hierarchia Chomsky ego Maszyna Turinga

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

Kombinatoryczne aspekty nieklasycznego sekwencjonowania DNA przez hybrydyzację

Lista 6 Problemy NP-zupełne

Zaawansowane algorytmy i struktury danych

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

Języki formalne i automaty Ćwiczenia 7

Maszyna Turinga (Algorytmy Część III)

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

Maszyna Turinga, ang. Turing Machine (TM)

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

Języki formalne i automaty Ćwiczenia 1

Teoria obliczeń czyli czego komputery zrobić nie mogą

Elementy Teorii Obliczeń

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

5. Rozwiązywanie układów równań liniowych

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

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

Projektowanie i analiza algorytmów

Algorytmy i Struktury Danych

10110 =

Języki formalne i automaty Ćwiczenia 9

Obliczenia inspirowane Naturą

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

JAO - Wprowadzenie do Gramatyk bezkontekstowych

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Algorytmika Problemów Trudnych

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Zastosowanie metod opartych na teorii grafów do rozwiązywania wybranych problemów analizy sekwencji nukleotydowych i aminokwasowych

Wielomiany. dr Tadeusz Werbiński. Teoria

Języki, automaty i obliczenia

Metody numeryczne w przykładach

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

Podstawy Informatyki Maszyna Turinga

Wprowadzenie do algorytmiki

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

1 Automaty niedeterministyczne

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Zasady analizy algorytmów

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

TEORETYCZNE PODSTAWY INFORMATYKI

Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

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

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Języki, automaty i obliczenia

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Maszyna Turinga Złożoność obliczeniowa

Wykład z równań różnicowych

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Modelowanie wybranych pojęć matematycznych. semestr letni, 2016/2017 Wykład 10 Własności funkcji cd.

Zakładamy, że maszyna ma jeden stan akceptujacy.

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

Języki formalne i automaty Ćwiczenia 2

IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I

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

Analiza algorytmów zadania podstawowe

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

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:

Relacje. opracował Maciej Grzesiak. 17 października 2011

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

Przykładowe zadania z teorii liczb

Algorytm. Krótka historia algorytmów

Przestrzenie wektorowe

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

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Podstawy Informatyki. Sprawność algorytmów

RACHUNEK PRAWDOPODOBIEŃSTWA - POJĘCIA WSTĘPNE MATERIAŁY POMOCNICZE - TEORIA

Wykład z równań różnicowych

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 4 WSTĘP DO INFORMATYKI

Transkrypt:

Efektywność Procedur Obliczeniowych wykład 5

Modele procesu obliczeń (8) Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie ograniczonym od góry przez wielomian zależny od rozmiarów problemu, to przy założeniu logarytmicznego kryterium kosztów jest on również rozwiązywany przez każdy model w czasie ograniczonym od góry przez wielomian zależny od jego rozmiarów.

Modele procesu obliczeń (8a) Kryteria kosztów operacji elementarnych (zapisania, dodawania, odejmowania, porównania dwu liczb, itp.) Logarytmiczne kryterium kosztów Czas wykonania elementarnej operacji zależy liniowo od długości łańcucha danych kodujących liczby, a zatem od logarytmów liczb. Analiza teoretyczna z użyciem DMT prowadzona jest przy tym kryterium. Jednorodne kryterium kosztów Czas wykonania elementarnej operacji jest jednostkowy. Analiza praktyczna często oparta jest na tym kryterium.

Modele procesu obliczeń (9) Zadanie 7 Czy dany język L alfabetu Σ jest poprawny? Rozwiązanie 7 Program P na DTM rozpoznaje język L alfabetu Σ, jeżeli dla tego języka program P zatrzymuje się w stanie q Y. L Y (P) = {L: P rozpoznaje L} zbiór języków rozpoznawanych przez program P.

Modele procesu obliczeń (10) Dla problemu decyzyjnego Π programu P, kodowania e języki L alfabetu Σ można podzielić na zbiory: L 0 : języki, które nie kodują instancji problemu Π L N (P):języki które kodują instancje problemu Π i nie są rozpoznawane przez P ( q N ) L Y (P):języki które kodują instancje problemu Π i są rozpoznawane przez P ( q Y )

Modele procesu obliczeń (11) L(Π):języki kodujące instancje problemu Π. L(Π)= L Y (P) L N (P) Językiem L alfabetu Σ jest skończony ciąg słów tego alfabetu oddzielonych separatorami.

Modele procesu obliczeń (12) Program P na DTM rozwiązuje problem Π przy kodowaniu e jeśli: L N (P):zawiera wszystkie takie i tylko takie języki, które kodują instancje problemu Π,dla których odpowiedź brzmi nie L Y (P):zawiera wszystkie takie i tylko takie języki, które kodują instancje problemu Π,dla których odpowiedź brzmi tak

Modele procesu obliczeń (13) Jeżeli czas działania programu P na DTM rozwiązującego problem decyzyjny Π jest ograniczony od góry wielomianem zależnym od długości języka L, tzn. czas działania t p( L ) dla każdego L i pewnego wielomianu p, to P jest algorytmem wielomianowym.

Modele procesu obliczeń (14) Jeżeli algorytm nie jest algorytmem wielomianowym to nazywamy go algorytmem ponadwielomianowym.

NDTM (1) Niedeterministyczna Maszyna Turinga (NDTM) moduł zgadujący sterowanie głowica zapisująca głowica odczytująco-zapisująca łańcuch S dane wejściowe -4-3 -2-1 0 1 2 3 4 taśma dwustronnie nieskończona

NDTM (2) Niedeterministyczna Maszyna Turinga (NDTM) składa się z DTM i modułu zgadującego (generującego). Moduł zgadujący zapisuje na taśmie odgadnięte rozwiązanie np. kolejność odwiedzania miast w TSP, podzbiór przedmiotów do upakowania w problemie plecakowym.

NDTM : wykonanie programu (3) Wykonanie programu składa się z wielu sekwencyjnych wykonań pary działań: 1. Zgadywania rozwiązania generowania łańcucha S symboli. 2. Sprawdzania jaka jest odpowiedź na pytanie problemu decyzyjnego dla wygenerowanego rozwiązania.

NDTM : wykonanie programu (4) Wykonanie programu NDTM dla łańcucha danych x(i) instancji I przebiega następująco: Moduł zgadujący zapisuje na taśmie łańcuch S symboli ze skończonego zbioru symboli taśmy. NDTM sprawdza, wykonując program jak na DTM, czy wygenerowany łańcuch S spełnia warunki pytania dla instancji I, dla której może istnieć wiele łańcuchów S reprezentujących rozwiązanie.

NDTM : wykonanie programu (5) Zadanie 8 Jak działa NDTM dla problemu podziału? X = {x 1,, x i,, x n } zbiór n elementów x i N +, gdzie N + = {1, 2, } 5 i=1 x i = 2B Pytanie: Czy istnieje podzbiór X 1 X takie, że xi X 1 x i = B

NDTM : wykonanie programu (5) Rozwiązanie 8 Łańcuch S liczba binarna, której i-ta pozycja wskazuje czy i-ty element zbioru X należy do wygenerowanego rozwiązania X 1. Dane wejściowe x 1 x 2 x k B Liczba generowanych łańcuchów reprezentujących zbiór X? Ograniczenie czasu sprawdzenia relacji xi X 1 x i = B?

NDTM (5) NDTM rozwiązuje problem decyzyjny Π jeśli dla każdej instancji I D Π spełnione są warunki: 1. Jeżeli odpowiedź dla I brzmi tak, to zostanie wygenerowany łańcuch S, który wraz z x(i) spowoduje, że po wykonaniu programu przez NDTM maszyna osiągnie stan końcowy q Y. 2.

NDTM (6) NDTM rozwiązuje problem decyzyjny Π jeśli dla każdej instancji I D Π spełnione są warunki: 1. 2. Jeżeli odpowiedź dla I brzmi nie, to dla każdego wygenerowanego łańcucha S albo NDTM osiągnie stan końcowy q N, albo etap sprawdzania nie zostanie zakończony.

NDTM (7) NDTM rozwiązuje problem decyzyjny Π (w co najwyżej) wielomianowym czasie, jeśli dla każdej instancji, dla każdej odpowiedzi tak zostanie wygenerowany taki łańcuch S, że czas wykonania etapów zgadywania i sprawdzania zakończonego odpowiedzią tak przez NDTM (dla I oraz S) jest O(p(N(I))) dla pewnego wielomianu p.

NDTM (8) Twierdzenie Jeśli jednotaśmowa NDTM rozwiązuje problem decyzyjny Π w czasie wielomianowym, to istnieje wielomian p taki, że jednotaśmowa DTM rozwiązuje ten problem w czasie O(2 p(n(i) ), gdzie I D Π a N(I) jest rozmiarem danych wejściowych instancji I.

NDTM jako model obliczeń (9) Adekwatność NTMD jako model obliczeń Sekwencyjny dostęp do danych wejściowych i wyników pośrednich (organizacja taśmowa) Obrazuje zdolność weryfikacji pozytywnej odpowiedzi dla rozwiązania (wygenerowania łańcucha S) instancji I D Π.

Kartkówka 1. Napisać program na jednotaśmową DTM rozwiązujący problem/decydujący, czy dana liczba binarna jest liczbą podzielną przez 4. Należy określić, kiedy liczba binarna jest podzielna przez 4. 2. Powyższy problem jest problemem decyzyjnym czy optymalizacyjnym? Odpowiedź uzasadnić.

Powtórzmy (1) DTM rozwiązuje problem decyzyjny Π przy kodowaniu e w czasie co najwyżej wielomianowym, jeśli dla wszystkich łańcuchów wejściowych x(i)takich że I D Π zatrzymuje się po czasie działania t p( x(i) dla każdego x(i) i pewnego wielomianu p, oraz kończy obliczenia w stanie q Y dla wszystkich x(i) takich, że I Y Π i tylko dla nich.

Powtórzmy (2) NDTM rozwiązuje problem decyzyjny Π jeśli dla każdej instancji I D Π spełnione są warunki: 1. Jeżeli odpowiedź dla I brzmi tak, to zostanie wygenerowany łańcuch S, który wraz z x(i) spowoduje, że po wykonaniu programu przez NDTM maszyna osiągnie stan końcowy q Y. 2. Jeżeli odpowiedź dla I brzmi nie, to dla każdego wygenerowanego łańcucha S albo NDTM osiągnie stan końcowy q N, albo etap sprawdzania nie zostanie zakończony.

Powtórzmy (3) NDTM rozwiązuje problem decyzyjny Π (w co najwyżej) wielomianowym czasie, jeśli dla każdej instancji, dla każdej odpowiedzi tak zostanie wygenerowany taki łańcuch S, że czas wykonania etapów zgadywania i sprawdzania zakończonego odpowiedzią tak przez NDTM (dla I oraz S) jest O(p(N(I))) dla pewnego wielomianu p. co z tego wynika?

Klasy problemów (1) Klasę P tworzą wszystkie problemy decyzyjne, które w co najwyżej wielomianowym czasie może rozwiązać DTM. Klasę NP tworzą wszystkie problemy decyzyjne, które w co najwyżej wielomianowym czasie może rozwiązać NDTM P NP

Klasy problemów (2) Klasa P wielomianowa (ang. polynomial) Klasa NP niedeterministycznie wielomianowa (ang. nondeterministic polynomial)

Klasy problemów (3) Klasa P zawiera wszystkie te problemy decyzyjne, dla których znaleziono wielomianowe algorytmy ich rozwiązania. Klasa NP zawiera te wszystkie problemy decyzyjne, dla których znaleziono ponadwielomianowe algorytmy ich rozwiązania.

Transformacja wielomianowa (1) Transformacją wielomianową problemu Π 2 do problemu Π 1 (Π 2 Π 1 ) jest funkcja f:d Π2 D Π1 spełniająca warunki: 1. Dla każdej instancji I 2 D Π2 odpowiedź brzmi tak wtw., gdy dla instancji f(i 2 )odpowiedź również brzmi tak 2. Czas obliczenia funkcji f przez DTM dla każdej instancji I 2 D Π2 jest ograniczony od góry przez wielomian od N(I 2 )

Transformacja wielomianowa (2) Własności transformacji wielomianowej Lemat 1 Transformacja wielomianowa jest przechodnia, tzn. jeśli Π 2 Π 1 i Π 2 Π 1, to Π 3 Π 1 Lemat 2 Jeżeli Π 2 Π 1 i Π 1 P, to Π 2 P Lemat 3 Jeżeli Π 2 Π 1 i Π 2 P, to Π 1 P Wniosek: jeżeli Π 2 Π 1,to problem Π 1 jest co najmniej tak trudny jak Π 2.

Klasy problemów (4) Problem decyzyjny Π 1 jest nazywany NP zupełnym, jeśli: 1. Π 1 NP, 2. Dal każdego innego problemu decyzyjnego Π 2 NP jest Π 2 Π 1.

Klasy problemów (5) Zatem, jeśli istniałby algorytm wielomianowy do rozwiązywania jakiegokolwiek problemu NP zupełnego, to każdy problem klasy NP (w tym również problemy NP zupełne) mógłby być rozwiązany za pomocą algorytmu wielomianowego. Ponieważ jak dotąd bezskuteczne są poszukiwania algorytmu wielomianowego dla któregokolwiek problemu NP zupełnego, wynika pesymistyczny wniosek, że prawie na pewno wszystkie problemy NP zupełne można rozwiązać tylko przy użyciu algorytmów ponadwielomianowych.

Klasy problemów wnioski (6) 1. Klasa problemów NP zupełnych zawiera problemy równoważne wielomianowo, tzn jeśli Π 1 i Π 2 są NP zupełne to Π 2 Π 1 i Π 1 Π 2. 2. Klasa problemów NP zupełnych zawarta jest w klasie NP. 3. Jeśli dla pewnego problemu NP zupełnego istnieje wielomianowy algorytm rozwiązania, to wszystkie problemy NP zupełne są rozwiązywalne w czasie wielomianowym. 4. Klasa problemów NP zupełnych zawiera najtrudniejsze problemy z klasy NP.

Klasy problemów resume (7) P klasa problemów rozwiązywalnych w czasie wielomianowym. NP klasa problemów nie rozwiązywalnych w czasie wielomianowym. Problemy otwarte to takie, dla których nie znaleziono algorytmu wielomianowego rozwiązania ani nie wykazano NP zupełności.