10110 =

Podobne dokumenty
Imię, nazwisko, nr indeksu

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

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, δ)

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

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

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

Języki, automaty i obliczenia

1 Automaty niedeterministyczne

Języki, automaty i obliczenia

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}

Maszyna Turinga języki

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)

Języki formalne i automaty Ćwiczenia 9

Języki formalne i automaty Ćwiczenia 7

Hierarchia Chomsky ego Maszyna Turinga

Jaki język zrozumie automat?

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

Języki, automaty i obliczenia

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Obliczenia inspirowane Naturą

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

Matematyczne Podstawy Informatyki

Języki, automaty i obliczenia

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Przykładowe zadania z teorii liczb

Matematyczne Podstawy Informatyki

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

Efektywność Procedur Obliczeniowych. wykład 5

Indukcja matematyczna

LOGIKA I TEORIA ZBIORÓW

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Algorytmy i struktury danych. Wykład 4

Teoria obliczeń czyli czego komputery zrobić nie mogą

Lista 6 Problemy NP-zupełne

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

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

2 Rodziny zbiorów. 2.1 Algebry i σ - algebry zbiorów. M. Beśka, Wstęp do teorii miary, rozdz. 2 11

A i. i=1. i=1. i=1. i=1. W dalszej części skryptu będziemy mieli najczęściej do czynienia z miarami określonymi na rodzinach, które są σ - algebrami.

Zasada indukcji matematycznej

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Hierarchia Chomsky ego

Teoretyczne podstawy informatyki

LX Olimpiada Matematyczna

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

Topologia zbioru Cantora a obwody logiczne

Wykład 10. Stwierdzenie 1. X spełnia warunek Borela wtedy i tylko wtedy, gdy każda scentrowana rodzina zbiorów domkniętych ma niepusty przekrój.

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Wyrażenia regularne.

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

PROBLEMY NIEROZSTRZYGALNE

Luty 2001 Algorytmy (7) 2000/2001

Języki formalne i automaty Ćwiczenia 1

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

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

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

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

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

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

Poprawność semantyczna

1 Działania na zbiorach

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Internetowe Ko³o M a t e m a t yc z n e

Wstęp do informatyki- wykład 1 Systemy liczbowe

MODELOWANIE RZECZYWISTOŚCI

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

Języki formalne i automaty Ćwiczenia 2

Zadanie 1. Potęgi (14 pkt)

Układy równań i nierówności liniowych

Obliczenia inspirowane Naturą

Indukcja matematyczna

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

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

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

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

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Zadanie 4 Zadanie 5 Zadanie 6. Repetytorium z JFiZO. Jakub Michaliszyn 25 maja 2017

Wstęp do informatyki- wykład 2

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Pierścień wielomianów jednej zmiennej

Języki formalne i automaty Ćwiczenia 8

Ciągi komplementarne. Autor: Krzysztof Zamarski. Opiekun pracy: dr Jacek Dymel

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Schematy Piramid Logicznych

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Transkrypt:

1. (6 punktów) Niedeterministyczny automat skończony nazwiemy jednoznacznym, jeśli dla każdego akceptowanego słowa istnieje dokładnie jeden bieg akceptujący. Napisać algorytm sprawdzający, czy niedeterministyczny automat skończony jest jednoznaczny. Odpowiedź. Niech A automat, którego jednoznaczność chcemy sprawdzić. Dla zbiorów P, R stanów, oznaczmy przez L P,R język słów, dla których automat ma bieg, który zaczyna się w stanie ze zbioru P, a kończy w stanie ze zbioru R. Załóżmy, że automat nie jest jednoznaczny. Wówczas istnieje słowo z dwoma różnymi biegami akceptującymi. Załóżmy, że na jednej pozycji pierwszy bieg ma stan p, a drugi bieg ma stan q. Wówczas widzimy, przy oznaczeniu przez I, F stanów początkowych i akceptujących, że zachodzi L I,{p} L I,{p} i L {p},f L {q},f Powyższy warunek też jest wystarczający dla jednoznaczności, a więc jest jej równoważny. Warunek można sprawdzić w czasie wielomianowym: dla każdej pary różnych stanów sprawdzamy dwa razy niepustość przecięcia dwóch języków. (Można napisać szybszy algorytm.) 1

2. (6 punktów) Rozważmy język zawierający słowa postaci x = y + z, gdzie x, y, z {0, 1} są takie, że rozwinięcie dwójkowe x jest sumą rozwinięć dwójkowych y i z. Na przykład do języka należy słowo Czy język ten jest bezkontekstowy? 10110 = 101 + 00010. Odpowiedź. Język nie jest bezkontekstowy. Idea jest następująca: w szczególnym przypadku sumy x = y + 0, poprawność sumy jest tym samym co sprawdzenie równości dwóch słów x, y, co nie jest własnością bezkontekstową. Oto dowód. Rozważmy przecięcie języka z zadania z regularnym wzorcem. 10 10 = 10 10 + 0. Gdyby język z zadania był bezkontekstowy, to i owo przecięcie byłoby bezkontekstowe, a pokażemy, że nie jest. Przecięcie to jest językiem L = {10 n 10 m = 10 n 10 m + 0 : n, m N}. Zupełnie standardowe zastosowanie lematu o pompowaniu pokaże, że język L nie jest bezkontekstowy. Załóżmy więc, że L jest bezkontekstowy, a M to stała z lematu o pompowaniu. Wówczas można pompować słowo w = 10 M 10 M = 10 M 10 M + 0. Zgodnie z lematem o pompowaniu, istnieje podział w = uxyzv taki, że dla każdego i N zachodzi ux i yz i v L przy czym jedno ze słów x, z jest niepuste, a słowo xyz ma długość co najwyżej M. Gdyby któreś z pompowanych słów x, z zawierało jedynkę, to po jednokrotnym zapompowaniu zaburzony zostaje wzorzec regularny. A więc oba pompowane słowa zawierają wyłącznie zera. Ponieważ słowo xyz jest długości co najwyżej M, to pompowane są zera z jednego bloku, ewentualnie z dwóch kolejnych bloków (spośród czterech bloków zer w słowie w). A więc po zapompowaniu słowo wypada z L, która to sprzeczność dowodzi, że L nie jest bezkontekstowy. 2

3. (6 punktów) Pokazać, że nie jest całkowicie rozstrzygalny następujący problem: dany niedeterministyczny automat ze stosem, pytanie czy akceptuje pewne słowo postaci w n, gdzie w jest dowolnym słowem, a n 2. Można skorzystać z tego, że nie jest całkowicie rozstrzygalny problem: czy przecięcie dwóch języków bezkontekstowych jest niepuste. Odpowiedź. Do problemu z zadania zredukujemy następujący problem, który nie jest całkowicie rozstrzygalny: dane dwa języki bezkontekstowe, pytania czy mają niepuste przecięcie. Problem jest oczywiście nierozstrzygalny dla języków, których alfabet nie zawiera symbolu #, bo można zawsze zmienić nazwy liter. Na podstawie dwóch języków bezkontekstowych L i K tworzymy automat ze stosem, który rozpoznaje język L#K#. Język ten zawiera słowo postaci w n wtedy i tylko wtedy, gdy zawiera słowo postaci (w#) 2, wtedy i tylko wtedy gdy L i K mają niepuste przecięcie. 3

4. (6 punktów *) Rozważmy nastepujący wariant problemu QBF. Pytamy o prawdziwość kwantyfikowanej formuły boole-owskiej Q 1 x 1 Q n x n ϕ(x 1,..., x n ) Q 1,..., Q n {, } gdzie zmienne x 1,..., x n mają wartości ze zbioru {prawda, fałsz}, formuła ϕ nie zawiera kwantyfikatorów, a co najwyżej log n z kwantyfikatorów jest. Czy problem ten jest PSPACE-zupełny, czy może tylko NP-zupełny? Odpowiedź. Problem jest NP-zupełny. Jest NP-trudny, bo jest uogólnieniem problemu SAT. Pokażemy, że należy do NP. Rozważmy instancję problemu, a więc formułę jak w treści zadania. Załóżmy, że kwantyfikatory uniwersalne dotyczą zmiennych o numerach 1 n 1 < < x nk n gdzie k log n. Zmienne kwantyfikowane egzystencjalnie dzielimy na k bloków X 0,..., X k, które są podzielone zmiennymi kwantyfikowanymi uniwersalnie: X 0 = {x 1,..., x n1 1} X 1 = {x n1+1,..., x n2 1} X k = {x nk +1,..., x n } Świadkiem prawdziwości formuły jest pełne drzewo o głębokości k, które wygląda w następujący sposób. (Głębokości wierzchołków liczymy tak, że korzeń ma głębokość 0, a liście mają głębokość k.) W wierzchołku na głębokości i {0,..., k} jest napisane wartościowanie dla zmiennych z bloku X i. Idea jest taka, że dla wierzchołka na głębokości i, lewe poddrzewo odpowiada wartościowaniom gdzie x ni ma wartość 0, a prawe poddrzewo odpowiada wartościowaniom, gdzie zmienna x ni ma wartość 1. W związku z czym ze ścieżką od liścia do korzenia możemy stowarzyszyć wartościowanie wszystkich zmiennych: dla egzystencjalnych patrzymy na etykiety wierzchołków ze ścieżki, a dla uniwersalnych patrzymy na ciąg skrętów (lewo,prawo) na ścieżce. Nietrudno zauważyć, że formuła jest prawdziwa wtedy i tylko wtedy gdy istnieje drzewo opisane powyżej, takie że w każdym liściu stowarzyszone wartościowanie spełnia formułę ϕ. Drzewo takie ma 2 k wierzchołków, a w każdym z nich jest zapisanych co najwyżej n bitów. Ponieważ k log n, to drzewo ma co najwyżej n wierzchołków, a więc zapisanie go zajmuje około n 2 bitów. A więc drzewo może być zgadnięte przez niedeterministyczną wielomianową maszynę Turinga. 4

Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za 9 najgorszych odpowiedzi, czyli nie opłaca się odpowiadać na więcej niż 9 pytań. 1. Czy jest całkowicie rozstrzygalny problem: dany niedeterministyczny automat ze stosem, pytanie czy automat akceptuje wszystkie słowa długości parzystej? Odpowiedź. Nie, bo można do niego zredukować następujący problem, który nie jest całkowicie rozstrzygalny: czy automat akceptuje wszystkie słowa. Redukcja wygląda tak. Dla automatu ze stosem A nietrudno obliczyć automat B, który akceptuje słowa {a 1 a 1 a 2 a 2 a n a n : a 1 a n jest akceptowane przez A}. Automat B akceptuje wszystkie słowa długości parzystej wtedy i tylko wtedy gdy automat A akceptuje wszystkie słowa. 2. Czy jest całkowicie rozstrzygalny problem: dany niedeterministyczny automat ze stosem, pytanie czy automat akceptuje wyłącznie słowa długości parzystej? Odpowiedź. Problem jest całkowicie rozstrzygalny. Aby odpowiedzieć na to pytanie, przecinamy język z regularnym językiem słów nieparzystej długości. Przecięcie jest nowym automatem ze stosem, który można obliczyć, a potem sprawdzić czy akceptuje przynajmniej jedno słowo. 3. Czy dopełnienie języka, który nie jest całkowicie rozstrzygalny, może być bezkontekstowe? Odpowiedź. Nie. Każdy język bezkontekstowy jest całkowicie rozstrzygalny, a więc jego dopełnienie musi być całkowicie rozstrzygalne. 4. Czy równoważne (pod względem akceptowanych języków) są niedeterministyczne automaty ze stosem i niedeterministyczne automaty ze stosem, które mogą czytać wejście dwa razy (po przeczytaniu wejścia pierwszy raz, dostają separator # i potem wejście drugi raz)? Odpowiedź. Nie. Automat nowego typu możne rozpoznać język a n b n c n, który nie jest bezkontekstowy. W pierwszym podejściu sprawdza, czy jest tyle samo a co b, a w drugim podejściu sprawdza czy jest tyle samo b co c. 5. Czy jest częściowo rozstrzygalny problem: dana maszyna Turinga, pytanie czy akceptuje wszystkie słowa długości pierwszej? Odpowiedź. Nie. Do problemu z zadania można zredukować problem, który nie jest nawet częściowo rozstrzygalny: czy dana deterministyczna maszyna Turinga odrzuca słowo puste. (Jest to dopełnienie problemu stopu, gdyby zarówno problem stopu i jego dopełnienie były częściowo rozstrzygalne, to problem stopu by był całkowicie rozstrzygalny.) Redukcja wygląda tak. Dla deterministycznej maszyny Turinga M konstruujemy maszynę M nad alfabetem jednoliterowym, która akceptuje słowo a p wtedy i tylko wtedy gdy p jest n-tą liczbą pierwszą i maszyna 5

M odrzuca słowo puste w n krokach. Maszyna M oblicza n-tą liczbę pierwszą p, symuluje M i zatrzymuje symulację po p krokach. Przekształcenie M M jest redukcją, bo M odrzuca słowo puste wtedy i tylko wtedy gdy M akceptuje wszystkie słowa długości pierwszej. 6. Czy jest całkowicie rozstrzygalny problem: dana maszyna Turinga, pytanie czy akceptuje pewne słowo długości pierwszej? Odpowiedź. Nie. Gdyby problem był całkowicie rozstrzygalny, to i jego dopełnienie byłoby całkowicie rozstrzygalne, a poprzednim zadaniu pokazaliśmy, że nie jest. 7. Czy dla każdego n N istnieje niedeterministyczny automat skończony jednoznaczny o n stanach, taki że każdy równoważny automat deterministyczny ma wykładniczo więcej stanów? Odpowiedź. Tak. Niech alfabet to {a, b}. Język n-ta litera od końca to a jest rozpoznawany przez niedeterministyczny jednoznaczny automat o n + 1 stanach, a jego minimalny deterministyczny automat ma 2 n stanów. 8. Czy dla nieskończenie wielu n N istnieje niedeterministyczny automat skończony o n stanach, taki że najkrótsze akceptowane słowo ma długość n + 2? Odpowiedź. Nie. Taki automat nie istnieje dla żadnego n. Każdy niepusty automat niedeterministyczny o n stanach akceptuje słowo długości n. 9. Rozważmy wariant wyrażeń regularnych, gdzie oprócz zwykłej gwiazdki, mamy też gwiazdkę L K, gdzie L, K są wyrażeniami. Taka gwiazdka generuje język: L n. n:k generuje pewne słowo długości n Czy takie wyrażenia generują tylko języki regularne? Odpowiedź. Tak. Zwykłe wyrażenie regularne dla języka L K tworzymy tak: bierzemy zwykłe wyrażenie regularne dla K i podstawiamy w miejsce każdej litery zwykłe wyrażenie regularne dla L. 10. Rozważmy model niedeterministycznego automatu skończonego, gdzie kryterium akceptacji to co najmniej dwa biegi akceptują. Czy takie automaty rozpoznają wszystkie języki regularne i nie rozpoznają nieregularnych? Odpowiedź. Tak. Każdy język regularny L można rozpoznawać w taki sposób: bierzemy rozłączną sumę deterministycznego automatu dla L, oraz deterministycznego automatu który akceptuje wszystkie słowa. Taki automat ma jeden bieg akceptujący na słowach spoza L, a dwa biegi na słowach z L. Należy też pokazać, że automaty takie nie wykraczają poza języki regularne. Przy oznaczeniach z zadania 1 z części nietestowej, język akceptowany przez automat z treści zadania to: (L I,{p} L I,{q} ) (L {p},f L {q},f ). q p Q 6

Powyższy język jest regularny, bo jest zbudowany z języków regularnych korzystając z sum, przecięcia i konkatenacji. 11. Czy dla każdych dwóch języków bezkontekstowych ich przecięcie jest w klasie PTIME? Odpowiedź. Tak. Uruchamiamy wielomianowy algorytm CYK dla obu języków po kolei. 12. Czy L K jest częściowo rozstrzygalny, jeśli L jest częściowo rozstrzygalny, a K bezkontekstowy? Odpowiedź. Tak. Najpierw uruchamiamy algorytm dla L. Jeśli się zatrzyma i zaakceptuje, to uruchamiamy algorytm CYK dla K i akceptujemy tylko jeśli słowo nie należy do K. 13. Czy jest bezkontesktowy zbiór słow nad alfabetem {a, b}, które nie są postaci yxx R, gdzie x = y. Odpowiedź. Tak. Słowo należy do języka wtedy i tylko wtedy, gdy ma długość niepodzielną przez 3, lub ma długość 3n i da się je przedstawić w postaci y długość n x 1 σx 2 długość n x 2σ x 1 długość n gdzie słowa x 1 i x 1 mają tę samą długość, a σ, σ są różnymi literami. Słowa długości niepodzielnej przez trzy są oczywiście językiem bezkontekstowym, skupmy się więc na warunku dla słów o długościach postaci 3n. Jeśli długości słów x 1 i x 2 oznaczymy przez k i m, to po przestawieniu nawiasów, drugi warunek opisuje słowa postaci u 1 długość 2k u 2 długość m + 1 σ u 3 długość 2m σ u 4. długość k Takie słowa generuje gramatyka, która najpierw tworzy u 2 σu 3, a potem resztę słowa. 14. Czy jest bezkontekstowy język {a x b y c z : zbiór {x, y} jest inny niż zbiór {z, z + 1}} Odpowiedź. Tak. Słowo należy do języka wtedy i tylko wtedy jeśli zachodzi któryś z następujących warunków: odległość x y nie jest dokładnie 1; lub x nie jest żadną z liczb {z, z + 1}; lub y nie jest żadną z liczb {z, z + 1}. Wszystkie trzy warunki można sprawdzić gramatyką. 7

15. Załóżmy, że dwa automaty niedeterministyczne skończone o n stanach akceptują te same słowa długości n 3. Czy akceptują te same słowa w ogólności? Odpowiedź. Nie. Dla każdego n można napisać niedeterministyczny o wielomianowej liczbie stanów f(n), który akceptuje wszystkie słowa z wyjątkiem jednego: bin(0)#bin(1)#bin(2)# #bin(2 n 1)#. (W powyższym, bin(i) oznacza binarny zapis liczby naturalnej i.) Automat ten zgadza się z automatem który akceptuje wszystkie słowa na słowach o długościach aż do n 2 n, a dla odpowiednio dużych n liczba ta jest większa niż f(n) 3. 8