ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012
NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA MASZYNA TURINGA jest czwórka N = (K, Σ,, s) gdzie K, Σ, s maja to samo znaczenie co w deterministycznych maszynach Turinga. opisujace przejścia maszyny nie jest funkcja ale relacja: (K Σ) [(K {h, T, N}) Σ {,, }] Niedeterministyczna maszyna Turinga nie ma jednoznacznie wyznaczonej kolejnej operacji do wykonania ale ma możliwość wyboru między kilkoma akcjami. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 2 / 11
KONFIGURACJA MASZYN NIEDETERMINISTYCZNYCH I PRZEJŚCIA Konfiguracje określamy tak samo jak dla maszyn deterministycznych. Niedeterministyczna MT przechodzi w jednym kroku (q, w, u) N (q, w, u ) jeśli w jest reguła potwierdzajaca legalność tego przejścia. Podobnie definiujemy relacje N k, N. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 3 / 11
NIEDETERMINISTYCZNE ROZSTRZYGANIE MASZYNA NIEDETERMINISTYCZNA N AKCEPTUJE x Σ gdy (s,, x) N (T, w, u) dla pewnych słów w i u. Niech L Σ będzie językiem, N niedeterministyczna MT N ROZSTRZYGA L jeżeli dla każdego x Σ mamy że x L wtedy i tylko wtedy gdy (s,, x) N (T, w, u) dla pewnych słów w i u. N ROZSTRZYGA L W CZASIE f (n) jeśli N rozstrzyga L i dla dowolnego x Σ, jeśli (s,, x) N k (q, w, u) to k f ( x ). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 4 / 11
NIEDETERMINISTYCZNY KOMIWOJAŻER Wersja decyzyjna problemu: Czy istnieje trasa o koszcie mniejszym niż B Wypisujemy (niedeterministycznie) dowolny ciag liczb niedłuższy niż dane wejściowe. Sprawdzamy czy reprezentuje on permutację miast. Sprawdzamy czy koszt jest mniejszy od B jeśli tak, zatrzymujemy się w stanie Tak, jeśli nie, zatrzymujemy się w stanie Nie. Wszystko to zajmuje O(n 2 ). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 5 / 11
RÓWNOWAŻNOŚĆ Z DETERMINISTYCZNYMI MT TWIERDZENIE Przypuśćmy że istnieje niedeterministyczna maszyna Turinga N rozstrzygajaca język L w czasie f (n). Wtedy istnieje deterministyczna maszyna Turinga M o trzech ciagach rozstrzygajaca L w czasie O(c f (n) ) gdzie c > 1 jest pewna stała zależna od N, tzn. NTIME(f (n)) TIME(c f (n) ) c>1 BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 6 / 11
DOWÓD RÓWNOWAŻNOŚCI Niech N = (K, Σ,, s). Niech dla każdego (q, σ) K Σ C q,σ = {(q, σ, D) ((q, σ), (q, σ, D)) }. Niech d := max q,σ C q,σ i załóżmy że d > 1. Dowolny ciag t wyborów niedeterministycznych możemy symulować jako ciag t liczb całkowitych z przedziału 0, 1,..., d 1. Maszyna deterministyczna M rozważa wszystkie takie ciagi wyborów w kolejności rosnacych długości i symuluje N na każdym z nich. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 7 / 11
PRZEBIEG SYMULACJI CIAGI Ciag 1 wejściowy, tylko do czytania. Ciag 2 przechowuje opis aktualnej ścieżki obliczeń. Ciag 3 roboczy, tam gdzie symulowana jest ścieżka obliczeń N SYMULACJA JEDNEJ GAŁEZI Maszyna generuje następna ścieżkę (c 1..., c n ) w ciagu 2. Maszyna kopiuje ciag wejściowy na roboczy. Maszyna symuluje N w ciagu 3, wybierajac w i-tym kroku c i -ty z alternatywnych ruchów. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 8 / 11
CZAS SYMULACJI ĆWICZENIE Wykazać że dla każdego p 1 1 + p + + p n = 1 pn+1 1 p. Pokazać że ilość gałęzi jakie należy symulować jest rzędu O(d f (n)+1 ). BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 9 / 11
NIEDETERMINISTYCZNA PAMIEĆ DEFINICJA Majac dana niedeterministyczna maszynę Turinga z k-ciagami (w tym z wyróżnionymi ciagami we.i wy.), powiemy że N rozstrzyga język L Σ w pamięci f (n) jeśli N rozstrzyga L oraz dla każdego x (Σ ) (s,, x,...,, ɛ) N (q, w 1, u 1,..., w k, u k ) k 1 w j u j f ( x ). j=2 BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 10 / 11
NIEDETERMINISTYCZNA OSIAGALNOŚĆ W PAMIECI LOGARYTMICZNEJ Używamy trzech ciagów. Ciag 1 wejściowy, tylko do odczytu (zawiera macierz sasiedztwa). Czy istnieje ścieżka od wierzchołka 1 do wierzchołka n? Ciag 2 numer i bieżacego wierzchołka (poczatkowo 1). Maszyna zgaduje j i umieszcza go w ciagu 3. Czy istnieje krawędź od i do j? Jeśli tak to: Jeśli j = n zatrzymujemy obliczenia w stanie tak. Jeśli nie, to kopiujemy j do ciagu 2 i kontynuujemy zgadywanie. Jeśli nie to przechodzimy do stanu nie i zatrzymujemy obliczenia. BARTOSZ ZIELIŃSKI (KFTII) ZŁOŻONOŚĆ... 2011/12 11 / 11