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

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

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

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

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}

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

Imię, nazwisko, nr indeksu

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

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

10110 =

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

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

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

Zasady analizy algorytmów

Lista 6 Problemy NP-zupełne

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

Efektywność Procedur Obliczeniowych. wykład 5

Obliczenia inspirowane Naturą

Języki, automaty i obliczenia

PROBLEMY NIEROZSTRZYGALNE

LOGIKA I TEORIA ZBIORÓW

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

Maszyna Turinga języki

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

Algorytmiczne aspekty teorii gier: Wykład 5

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n

Logika Stosowana. Wykład 2 - Logika modalna Część 3. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2017/2018

Sortowanie zewnętrzne

Lista 4. Kamil Matuszewski 22 marca 2016

Wprowadzenie do maszyny Turinga

1 Automaty niedeterministyczne

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

Wprowadzenie do złożoności obliczeniowej

Lista 0. Kamil Matuszewski 1 marca 2016

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

Złożoność obliczeniowa

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Schematy Piramid Logicznych

Problemy NP-zupełne. Spis treści. Osoba prowadząca wykład i ćwiczenia: dr inż. Marek Sawerwain. Ostatnia zmiana: 15 styczeń Notatki.

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Sortowanie topologiczne skierowanych grafów acyklicznych

Teoria Złożoności Zadania

Hierarchia Chomsky ego Maszyna Turinga

Matematyka dyskretna

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Topologia zbioru Cantora a obwody logiczne

Zasada indukcji matematycznej

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

Języki formalne i automaty Ćwiczenia 7

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

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

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Przykładowe zadania z teorii liczb

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

Matematyka dyskretna - 7.Drzewa

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

Komiwojażer na płaszczyźnie

Dystrybucje, wiadomości wstępne (I)

6a. Grafy eulerowskie i hamiltonowskie

Indukcja matematyczna

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)

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Matematyczne Podstawy Informatyki

Turing i jego maszyny

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

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

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Programowanie dynamiczne i algorytmy zachłanne

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

7 Twierdzenie Fubiniego

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Matematyczne kolorowanki. Tomasz Szemberg. Wykład dla studentów IM UP Kraków, 18 maja 2016

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

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

LXIX Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 18 kwietnia 2018 r. (pierwszy dzień zawodów)

Teoretyczne podstawy informatyki

Informatyka 1. Złożoność obliczeniowa

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Lista zadań - Relacje

Wstęp do programowania

Znajdowanie skojarzeń na maszynie równoległej

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Krzywe na płaszczyźnie i w przestrzeni

Języki, automaty i obliczenia

Luty 2001 Algorytmy (4) 2000/2001

Sieć (graf skierowany)

Przykład planowania sieci publicznego transportu zbiorowego

Programowanie w Baltie klasa VII

Języki formalne i automaty Ćwiczenia 9

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

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

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

Indukcja matematyczna. Zasada minimum. Zastosowania.

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

Sprzedaż online. Piotr Sankowski Uniwersytet Warszawski Warszawa p. 1/40

Transkrypt:

Złożoność pamięciowa Rozważamy następujac a maszynę Turinga: 1 0 0 1 1 0 1 1 1 1 Taśma wejściowa (read only) 1 0 1 1 0 0 0 1 0 0 1 Taśma robocza (read/write) 0 1 1 0 0 1 0 0 1 Taśma wyjściowa (write only) q i Zakładamy, że maszyna ma jeden stan akceptujacy.

Złożoność pamięciowa Niech L {0, 1} będzie językiem i c > 0 pewna stała. Mówimy, że L SPACE(S(n)) jeżeli istnieje DTM rozstrzygajaca L, która wykorzystuje nie więcej niż cs(n) komórek taśmy roboczej dla każdego słowa wejściowego x o długości n. Niech L {0, 1} będzie językiem i c > 0 pewna stała. Mówimy, że L NSPACE(S(n)) jeżeli istnieje NTM rozstrzygajaca L, która wykorzystuje nie więcej niż cs(n) komórek taśmy roboczej dla każdego słowa wejściowego x o długości n w każdej ścieżce obliczeń. Uwaga: NTM rozstrzyga L jeżeli każda ścieżka obliczeń jest skończona.

Złożoność pamięciowa Uwagi: Pamięć (w przeciwieństwie do czasu) jest zasobem odnawialnym, tj. jedna komórka może być wykorzystywana wielokrotnie. Można łatwo skonstruować DTM, która nie kończy pracy i zużywa 1 komórkę pamieci. Komórki taśmy wejściowej i wyjściowej (dla problemów decyzyjnych wystarczy 1 komórka wyjściowa) nie licza się do złożoności pamięciowej. Ma więc sens rozważać np: klasę SPACE(log n).

Klasy złożoności pamięciowej PSPACE = c>0 SPACE(n c ) NPSPACE = c>0 NSPACE(n c ) L = SPACE(log n) NL = NSPACE(log n)

Złożoność pamięciowa Obserwacja 1 Obliczenia NTM na słowie x można przedstawić w postaci grafu konfiguracji. Wierzchołkami garfu sa konfiguracje c i istnieje łuk od c i do c j jeżeli konfigurację c j można osiagn ać z c i. Słowo jest akceptowane wtedy i tylko wtedy gdy istnieje ścieżka od stanu poczatkowego do akceptujacego w grafie konfiguracji. Obserwacja 2 Liczba możliwych konfiguracji maszyny Turinga zużywajacej nie więcej niż S(n) komórek taśmy roboczej i jednej komórki taśmy wyjściowej dla słowa wejściowego o rozmiarze n jest nie większa niż 2 O(S(n)).

Złożoność pamięciowa K-OSIAGALNOŚĆ (K-REACHABILITY) Zadany jest graf skierowany G = (V, A). Czy w G istnieje ścieżka między dwoma zadanymi wierzchołkami s i t składajaca się z nie więcej niż k wierzchołków? Twierdzenie Problem K-OSIAGALNOŚĆ można rozwiazać w pamięci c 1 log V + c 2 log V log k, gdzie c 1, c 2 sa stałymi. Zatem można sprawdzić czy istnieje ścieżka od s do t w pamięci O(log 2 V ), pomijajac pmięć potrzebna do zakodowania grafu.

Klasy złożoności pamięciowej Twierdzenie L NL P NP PSPACE NPSPACE EXP Nietrywialnymi inkluzjami sa: NL P NP PSPACE NPSPACE EXP

Klasy złożoności pamięciowej Dowód NL P. Niech L NL. Obliczenia odpowiedniej NDTM można przedstawić w postaci grafu konfiguracji: n log n 1 0 0 1 1 0 1 1 0 1 0 1 1 0 c 2 c 0 c 1 c 3 c m 1 0 c i = (10q0110110, 10110q0, 0) 1 Liczba wszystkich konfiguracji wynosi 2 O(log n) zatem jest wielomianowa. 2 Graf konfiguracji można skonstruować w czasie wielomianowym i można w czasie wielomianowym sprawdzić czy istnieje ścieżka od c 0 do konfiguracji akceptujacej c m. Zatem L P. 3 Dowód NPSPACE EXP jest analogiczny.

Klasy złożoności pamięciowej Dowód NP PSPACE. Niech L NP. Konstruujemy DTM, która działa następujaco: dla danego słowa wejściowego x, na taśmie roboczej zapisywane sa kolejno certyfikaty u 1, u 2,..., przy czym kolejny certyfikat nadpisuje poprzedni. Wymaga to wielomianowej pamięci na taśmie roboczej. Maszyna następnie weryfikuje certyfikat w czasie wielomianowym co może wymagać dodatkowej pamięci wielomianowej na taśmie roboczej. Zatem maszyna potrzebuje pamięci wielomianowej na taśmie roboczej i L PSPACE. n 1 0 0 1 1 0 x {0, 1}, x = n n k 1 0 1 1 0 0 0 1 u i {0, 1}, u u i n k 1 0

Klasy złożoności pamięciowej Twierdzenie (Savitch 1970) PSPACE = NPSPACE Dowód: Niech L NSPACE(S(n)). Dla zadanego słowa x {0, 1} rozpatrujemy graf konfiguracji dla odpowiedniej NTM rozstrzygajacej L. Graf konfiguracji ma nie więcej niż 2 O(S(n)) wierzchołków. Nie musimy konstruować całego grafu, wystarczy że potrafimy zidentyfikować następniki każdej konfiguracji. Aby sprawdzić czy x L trzeba sprawdzić czy istnieje ścieżka od c 0 do konfiguracji c m ze stanem akceptujacym składajaca się z nie więcej niż 2 O(S(n)) wierzchołków. Na mocy poprzedniego twierdzenia można to zrobić w pamięci c 1 O(S(n))+c 2 O(S(n) 2 )) = O(S(n) 2 ). Zatem L SPACE(S(n) 2 ). Stad łatwo wynika twierdzenie Savitcha.

Obserwacja Jeżeli P = PSPACE, to P = NP. Nie wiemy czy P = PSPACE ale zakłada się, że P PSPACE a nawet NP PSPACE. Implikacja odwrotna nie musi być prawdziwa, czyli jest możliwe P = NP ale P PSPACE.

Język L jest PSPACE-zupełny jeżeli L PSPACE i L p L dla każdego L PSPACE. Obserwacja Jeżeli jakiś język PSPACE-zupełny jest w P, to PSPACE=P.

TQBF Zadana jest wyrażenie (zdanie logiczne) postaci Q 1 x 1 Q 2 x 2...Q n x n φ(x 1,...,x n ), gdzie Q i jest jednym z dwóch kwantyfikatorów, a φ jest formuła logiczna. Pytamy czy wyrażenie to jest prawdziwe. Przykłady: x 1 x 2 [(x 1 x 2 ) ( x 1 x 2 )] - prawda x 1 x 2 [(x 1 x 2 ) ( x 1 x 2 )] - fałsz Problem x 1 x 2... x n Problem x 1 x 2... x n jest w conp. φ(x 1,...,x n ) jest równoważny SAT i jest w NP. φ(x 1,...,x n ) jest równoważny TAUTOLOGY i

Twierdzenie Problem TQBF jest PSPACE-zupełny.

TQBF GAME Plansza gry jest formuła logiczna φ(x 1,...,x 2n ). Dwóch graczy na przemian ustala wartość logiczna zmiennych x 1, x 2,...,x 2n, w ten sposób, że pierwszy gracz ustala wartość nieparzystych zmiennych a gracz drugi parzystych. Pierwszy gracz wygrywa jeżeli pod koniec gry wartość formuły będzie prawdziwa. Czy pierwszy gracz ma strategię wygrywajac a, tj. czy następujace zdanie jest prawdziwe? x 1 x 2 x 3... x 2n φ(x 1,...,x n ) TQBF GAME jest PSPACE-zupełny. Wielomianowy algorytm weryfikujacy strategię wygrywajac a nie jest znany (gdyby istniał to PSPACE = NP). Strategia jako poddrzewo drzewa gry ma rozmiar wykładniczy.

Przykładowa rozgrywka i strategia wygrywajaca gracza 1:

Inne problemy (gry) PSPACE-zupełne: KÓŁKO I KRZYŻYK Zadana jest plansza o rozmiarach m na n. Gracz 1 stawia na planszy kółka a gracz 2 krzyżyki. Zaczyna gracz 1. Wygrywa ten z graczy, który jako pierwszy ułoży k sasiednich kółek (krzyżyków) w jednym wierszu. Czy gracz 1 ma strategię wygrywajac a? REVERSI Zadana jest plansza o rozmiarach n na n. Gracze na przemian ustawiaja kostki w swoich kolorach na planszy. Kiedy gracz i umieszcza swoja kostkę, wszystkie linie kostek drugiego gracza znajdujace się między jakaś kostka gracza i a kostka umieszczona zmieniaja kolor. Wygrywa gracz, który po zapełnieniu planszy ma na niej więcej kostek swojego koloru.

PARZYSTOŚĆ (EVEN) Czy zadana liczba p jest parzysta? Łatwo sprawdzić, że PARZYSTOŚĆ L. Intuicyjnie, w klasie L sa problemy, które wymagaja zapamiętania tylko stałej liczby indeksów (liczb całkowitych). Twierdzenie Jeżeli L jest językiem regularnym, to L SPACE(O(1)) L.

Twierdzenie 2 OSIAGALNOŚĆ SPACE(log 2 n) OSIAGALNOŚĆ NSPACE(log n)=nl Otwarty problem OSIAGALNOŚĆ L (?) Twierdzenie (Reingold 2008) Jeżeli zadany graf jest nieskierowany (równoważnie dla każdego (i, j) A istnieje (j, i) A), to OSIAGALNOŚĆ L.

Dowód Twierdzenia 2: punkt pierwszy wynika od razu z twierdzenia podanego wcześniej. Aby udowodnić punkt drugi rozpatrzmy obliczenia nideterministyczne: Ścieżkę obliczeń kończymy w stanie akceptujacym jeżeli osiagnięto wierzchołek t i w stanie nieakceptujacym jeżeli w n krokach nie osiagnięto t. Każda ścieżka ma więc długość co najwyżej n i wymaga zapamiętania tylko indeksu bieżacego wierzchołka i licznika wierzchołków.

Język L jest redukowalny w pamięci logarytmicznej do języka L (co oznaczamy jako L l L ) jeżeli istnieje funkcja f obliczalna w pamięci logarytmicznej, taka że x L f(x) L. Język L jest NL-zupełny jeżeli L NL i każdy język L NL jest redukowalny w pamięci logarytmicznej do L.

Złożoność pamięciowa Funkcja f : Σ Σ jest obliczalna w pamięci logarytmicznej jeżeli istniej DTM taka, że dla każdego x Σ, x = n, zapisanego na taśmie wejściowej maszyna kończy pracę i zapisuje f(x) Σ na taśmie wyjściowej oraz wykorzystuje nie więcej niż O(log n) komórek taśmy roboczej.

Twierdzenie OSIAGALNOŚĆ jest problemem NL-zupełnym. Idea dowodu: Wiemy, że OSIAGALNOŚĆ NL. Niech L NL. Istnieje więc NTM, która rozstrzyga język L w pamięci O(log n). Dla zadanego x L konstruujemy gaf konfiguracji G(x) w pamięci O(log n): x (c c i, c j ) G(x) x = n (taśma wejściowa) (c c i, c j ) = O(log n) (taśma robocza) (taśma wyjściowa) Odpowiednia DTM dla każdej pary konfiguracji (cc i, c j ) sprawdza czy istnieje łuk między nimi w G(x). Po sprawdzeniu (c c i, c j ) jest usuwana z taśmy roboczej. x L wtedy i tylko wtedy gdy istnieje ścieżka od konfiguracji poczatkowej do akceptujacej w G(x). c i c j

Wnioski Jeżeli OSIAGALNOŚĆ L, to L = NL L = SPACE(log n) NL SPACE(log 2 n)

Język L conl jeżeli jego dopełnienie L NL Przykład problemu w conl: NIEOSIAGALNOŚĆ Zadany jest graf skierowany G = (V, A). Czy zadane dwa wierzchołki s i t w G nie sa połaczone żadna ścieżka? Twierdzenie (Immerman-Szelepcsenyi 1988) NL = conl

Podsumowanie Obecny stan wiedzy o złożoności pamięciowej/czasowej: L NL P NP PSPACE = NSPACE EXP (1) Wiemy również, że L PSPACE i P EXP. Zatem co najmniej jedna inkluzja w (1) jest ścisła. Nie wiemy jednak która chociaż powszechnie przyjmuje się, że wszystkie.