ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Podobne dokumenty
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Języki, automaty i obliczenia

Obliczenia inspirowane Naturą

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}

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

Języki, automaty i obliczenia

Maszyna Turinga języki

Imię, nazwisko, nr indeksu

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

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

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

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

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

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

Hierarchia Chomsky ego Maszyna Turinga

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

1 Automaty niedeterministyczne

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

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

Wstęp do programowania

10110 =

Wprowadzenie do złożoności obliczeniowej

Obliczenia inspirowane Naturą

Języki formalne i automaty Ćwiczenia 9

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

Języki, automaty i obliczenia

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Sortowanie topologiczne skierowanych grafów acyklicznych

Teoretyczne podstawy informatyki

Matematyczne Podstawy Informatyki

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

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

Podstawy Informatyki. Sprawność algorytmów

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

TEORETYCZNE PODSTAWY INFORMATYKI

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

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

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

Języki, automaty i obliczenia

Przykłady problemów optymalizacyjnych

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

Problemy Decyzyjne dla Systemów Nieskończonych

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

Algorytmy i Struktury Danych, 2. ćwiczenia

Języki formalne i automaty Ćwiczenia 7

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

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

Teoretyczne podstawy informatyki

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

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

Sztuczna Inteligencja i Systemy Doradcze

Podstawowe własności grafów. Wykład 3. Własności grafów

Matematyczne Podstawy Informatyki

Zasady analizy algorytmów

Wprowadzenie do złożoności obliczeniowej

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Wyrażenia regularne.

Lista 6 Problemy NP-zupełne

Jaki język zrozumie automat?

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Analiza algorytmów zadania podstawowe

Wykład 8. Informatyka Stosowana. 26 listopada 2018 Magdalena Alama-Bućko. Informatyka Stosowana Wykład , M.A-B 1 / 31

Kolorowanie wierzchołków grafu

Krzysztof Jakubczyk. Zadanie 2

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

Lista 0. Kamil Matuszewski 1 marca 2016

O ISTOTNYCH OGRANICZENIACH METODY

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S

Teoretyczne podstawy informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

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

Teoria Złożoności Zadania

Efektywność algorytmów

PROBLEMY NIEROZSTRZYGALNE

Hierarchia Chomsky ego

Analiza Algorytmów 2018/2019 (zadania na laboratorium)

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Efektywność Procedur Obliczeniowych. wykład 5

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Automaty Büchi ego i równoważne modele obliczeń

RÓWNANIA NIELINIOWE Maciej Patan

Algorytmy i Struktury Danych.

Rozwiązania części z około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

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

Algorytmy i Struktury Danych.

Technologie informacyjne Wykład VII-IX

TEORETYCZNE PODSTAWY INFORMATYKI

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

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

Złożoność algorytmów. Wstęp do Informatyki

Sortowanie przez scalanie

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Transkrypt:

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012

KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model obliczeń (tu: maszyny Turinga z wieloma ciagami). Tryb obliczeń: deterministyczny, niedeterministyczny. Zasoby które chcemy ograniczać, np: czas, pamięć. Ograniczenie, czyli funkcję f : N N KLASE ZŁOŻONOŚCI ZBIÓR WSZYSTKICH JEZYKÓW L T.Ż.: L rozstrzygany przez maszynę Turinga M L o wielu ciagach, działajac a w wybranym trybie, dla dowolnego sł. wejść. x zużywajac a najwyżej f ( x ) jednostek wybranego zasobu. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 2 / 19

WŁAŚCIWE FUNKCJE ZŁOŻONOŚCI FUNKCJA f : N N JEST WŁAŚCIWA FUNKCJA ZŁOŻONOŚCI jeśli f jest niemalejaca (f (n + 1) f (n) dla każdego n) i istnieje maszyna Turinga M f = (K, Σ, δ, s) o k ciagach z wyróżnionym we/wy, taka że dla każdego słowa wejściowego x zachodzi (s,, x,, ɛ,...,, ɛ) M f t (h,, x,, j 2,...,, j k 1,, f ( x ) ), gdzie t = O( x + f ( x )) i j i = O(f ( x )) dla i = 2, 3,..., k 1, oraz t i liczby j i zależa tylko od x. Obliczonego ciagu f ( x ) można użyć jako licznika. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 3 / 19

PRZYKŁADY WŁAŚCIWYCH FUNKCJI ZŁOŻONOŚCI PRZYKŁADY Funkcja stała (f (n) = c), log(x), wielomiany, n!, 2 n, n. LEMAT Jeśli f i g sa właściwymi funkcjami złożoności to właściwymi funkcjami złożoności sa także n f (g(n)), n f (n)g(n), n f (n) + g(n), n f g(n). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 4 / 19

NOTACJA DLA KLAS ZŁOŻONOŚCI TIME(f (n)) (deterministyczny czas), SPACE(f (n)) (deterministyczna pamięć), NTIME(f (n)) (niedeterministyczny czas), NSPACE(f (n)) (niedeterministyczna pamięć). UNIE KLAS I SPECJALNE SYMBOLE P = TIME(n k ), NP = NTIME(n k ), k>0 k>0 PSPACE = SPACE(n k ), NPSPACE = NSPACE(n k ), k>0 k>0 EXP = k>0 TIME(2 nk ), LSPACE = SPACE(log(n)), NLSPACE = NSPACE(log(n)) BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 5 / 19

DOPEŁNIENIA KLAS Dopełnieniem języka L Σ jest język L := Σ L. Dla dowolnej klasy złożoności C oznaczamy COC := { L L C}. Jeśli C jest klasa deterministyczna to C = COC. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 6 / 19

TWIERDZENIE O HIERARCHII. WPROWADZENIE Dla każdej właściwej funkcji złożoności f takiej że f (n) n zdefiniujmy H f = {M; x M akceptuje x po co najwyżej f ( x ) krokach}. LEMAT ( H f TIME (f (n)) 3 ) BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 7 / 19

DOWÓD Konstruujemy maszynę U f rozstrzygajac a H f w czasie (f (n)) 3 : Niech wejściem dla U f będzie M; x. Rozmiar danych wejściowych to n = x + M + 1. Niech M f oblicza f ( x ). U f najpierw wykonuje M f na x. Wynik zostaje zachowany w osobnym ciagu. Czas na razie O(n + f (n)). U f symuluje M na x przez co najwyżej f ( x ) kroków wykorzystujac słowo f ( x ) jako licznik. Jeśli M zaakceptuje x to U f także zaakceptuje x. Jeśli M odrzuci x lub nie zatrzyma się w ciagu f ( x ) kroków to U f odrzuca x. Maszyna U f symuluje każdy krok M w czasie O(l M km 2 f (n)) gdzie l M jest rozmiarem kodu każdego ze stanów i symboli M a k M jest liczba ciagów maszyny M. Ale l M, k M log( M ), stad symulacja pojedyńczego kroku O((f (n)) 2 ) a wszystkich kroków O((f (n)) 3 ). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 8 / 19

LEMAT H f / TIME(f ( n 2 )). DOWÓD (PRZEZ ZAPRZECZENIE Przypuśćmy że istnieje maszyna M Hf f ( n 2 ). Skonstruujmy maszynę rozstrzygajaca H f w czasie D f (M) := if M Hf (M; M) = tak then nie else tak. D f (M) wykonuje tyle kroków co M Hf (M; M) czyli ( ) ( ) M; M 2 M + 1 f = f = f ( M ). 2 2 Czy D f akceptuje D f? BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 9 / 19

TWIERDZENIE O HIERARCHII CZASOWEJ TWIERDZENIE Jeśli f (n) n jest właściwa funkcja złożoności to TIME(f (n)) jest ściśle zawarta w TIME((f (2n + 1)) 3 ). WNIOSEK P jest właściwym podzbiorem EXP. DOWÓD P TIME(2 n ) TIME(2 3(2n+1) ) EXP gdzie ostre zawieranie jest dane przez Twierdzenie o hierarchii. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 10 / 19

TWIERDZENIE O HIERARCHII PAMIECIOWEJ TWIERDZENIE Jeśli f (n) jest właściwa funkcja złożoności to SPACE(f (n)) jest właściwym podzbiorem SPACE(f (n) log(f (n))). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 11 / 19

TWIERDZENIE O LUCE TWIERDZENIE Istnieje funkcja rekurencyjna f : N N taka że TIME(f (n)) = TIME(2 f (n) ). DOWÓD M 0, M 1, M 2,... maszyny uporzadkowane względem kodu. P(i, k) każda maszyna spośród M 0, M 1,..., M i uruchomiona dla dowolnego słowa długości i albo zatrzyma się po mniej niż k krokach albo zatrzyma się po więcej niż 2 k krokach albo nie zatrzyma się wcale. Zdefiniujmy ciag k 1 = 2i, k j+1 = 2 k j + 1. Niech N(i) ilość słów długości i w alfabetach pierwszych i + 1 maszyn. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 12 / 19

CD. DOWODU TWIERDZENIA O LUCE Każde słowo o długości i tylko dla jednej wartości j może spowodować że P(i, k j ) jest fałszywe. Zatem istnieje liczba l i N(i) + 1 taka że P(i, k li ) jest prawdziwa. Zdefiniujmy f (i) := k li. Niech L TIME(2 f (n) ). L jest rozstrzygany przez jakaś maszynę M j. Dla każdego x z x > j maszyna M j nie może zatrzymać się po liczbie kroków z przedziału f ( x ) i 2 f ( x ) bo zachodzi P( x, f ( x )). Zatem M j zatrzymuje się po najwyżej f ( x ) krokach. Czyli L TIME(f (n)). Zatem TIME(2 f (n) ) TIME(f (n)). Wiemy że TIME(f (n)) TIME(2 f (n) ), zatem TIME(f (n)) = TIME(2 f (n) ). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 13 / 19

ZWIAZKI POMIEDZY KLASAMI ZŁOŻONOŚCI TWIERDZENIE Przypuśćmy że f (n) jest właściwa klasa złożoności. Wtedy 1 SPACE(f (n)) NSPACE(f (n)) i TIME(f (n)) NTIME(f (n)). 2 NTIME(f (n)) SPACE(f (n)). 3 NSPACE(f (n)) TIME(k log(n)+f (n) ). WNIOSEK LSPACE NLSPACE P NP PSPACE. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 14 / 19

DOWÓD CZEŚCI 3) Niech M = (K, Σ,, s) niedeterministyczna maszyna o k ciagach z wyróżnionym wejściem rozstrzygajaca język L NSPACE(f (n)). Ilość konfiguracji maszyny M na słowie x można oszacować jako K ( x + 1) Σ (2k 2)f ( x ) log( x )+f ( x ) = Θ(c1 ). Graf konfiguracji wierzchołki to konfiguracje, krawędzie M między konfiguracjami C 1 i C 2 gdy C 1 C2. x L istnieje ścieżka w grafie konfiguracji od (s,, x,, ɛ,...,, ɛ) do jednej z konfiguracji o formie ( tak,...). Rozstrzygnięcie istnienia ścieżki w czasie kwadratowym w 2(log( x )+f ( x )) ilości wierzchołków, czyli Θ(c1 ). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 15 / 19

TWIERDZENIE SAVITCHA TWIERDZENIE REACHABILITY SPACE(log 2 (n)). WNIOSEK Dla dowolnej właściwej funkcji złożoności f (n) log(n): NSPACE(f (n)) SPACE((f (n)) 2 ). WNIOSEK DO WNIOSKU PSPACE = NPSPACE. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 16 / 19

DOWÓD TWIERDZENIA SAVITCHA Niech G graf o n wierzchołkach. Niech G V zbiór wierzchołków G. Niech G E zbiór krawędzi G. Niech (x, y) G E x i y sa sasiadami w G. Niech x, y G V. Zachodzi PATH(x, y, i) jeśli w G istnieje ścieżka od x do y o długości nie przekraczajacej 2 i. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 17 / 19

OBLICZENIE PATH(x, y, i) 1: function PATH(x,y,i) 2: if i = 0 then 3: return x = y (x, y) G E 4: else 5: for z G V do 6: if PATH(x,z,i 1) then 7: if PATH(z,y,i 1) then 8: return true 9: end if 10: end if 11: end for 12: return false 13: end if 14: end function BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 18 / 19

TWIERDZENIE Jeśli f (n) log(n) jest właściwa funkcja złożoności to NSPACE(f (n)) = CONSPACE(f (n)). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 19 / 19