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

Podobne dokumenty
Imię, nazwisko, nr indeksu

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

Języki formalne i automaty Ćwiczenia 9

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

10110 =

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ęzyki, automaty i obliczenia

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

Języki, automaty i obliczenia

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

Matematyczne Podstawy Informatyki

Języki, automaty i obliczenia

Maszyna Turinga języki

Obliczenia inspirowane Naturą

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

Hierarchia Chomsky ego Maszyna Turinga

1 Automaty niedeterministyczne

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}

Języki formalne i automaty Ćwiczenia 7

Hierarchia Chomsky ego

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 1

Jaki język zrozumie automat?

Języki formalne i automaty Ćwiczenia 4

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

Języki, automaty i obliczenia

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)

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Obliczenia inspirowane Naturą

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

MODELOWANIE RZECZYWISTOŚCI

Języki formalne i automaty Ćwiczenia 2

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

Wprowadzenie do maszyny Turinga

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

Języki formalne i automaty Ćwiczenia 3

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

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

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

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Efektywność Procedur Obliczeniowych. wykład 5

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

3. Macierze i Układy Równań Liniowych

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

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

Maszyna Turinga, ang. Turing Machine (TM)

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

Turing i jego maszyny

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty).

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

R O Z D Z I A Ł V I I I

1 Układy równań liniowych

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

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

Teoria obliczeń czyli czego komputery zrobić nie mogą

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

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Elementy Teorii Obliczeń

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

Definicja 2. Twierdzenie 1. Definicja 3

Nierówność Krafta-McMillana, Kodowanie Huffmana

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

Języki, automaty i obliczenia

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Przekształcanie wykresów.

Zasada indukcji matematycznej

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

1. Maszyna Turinga, gramatyki formalne i ONP

Matematyczne Podstawy Informatyki

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

PROBLEMY NIEROZSTRZYGALNE

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Niestandardowe modele obliczeń

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Maszyna Turinga (Algorytmy Część III)

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

Polcode Code Contest PHP-10.09

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

JĘZYKIFORMALNE IMETODYKOMPILACJI

Wyrażenia regularne.

Teoretyczne podstawy informatyki

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

Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:

Zamiana ułamków na procenty oraz procentów na ułamki

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Matematyczne Podstawy Informatyki

Alan M. TURING. Matematyk u progu współczesnej informatyki

JĘZYKI FORMALNE I METODY KOMPILACJI

R O Z D Z I A Ł V I I

Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d

Języki formalne i automaty Ćwiczenia 8

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

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Wstęp wszystkich przedszkolakach i pierwszakach, Wielki elementarz, małe i duże litery, drukowane, jak i pisane, poprawnie czytać,

Teoretyczne podstawy informatyki

Transkrypt:

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 anagram(l) = {w : w jest anagaramem v dla pewnego v L}. (a) Czy jeśli L jest regularny, to anagram(l) też? (b) Czy jeśli L jest bezkontekstowy, to anagram(l) też? Rozwiązanie. Rozważmy regularny język L = (abc). Nietrudno zauważyć, że anagram(l) to zbiór słów, gdzie wszystkie litery a, b, c występują tyle samo razy. Pokażemy, że język anagram(l) nie jest nawet bezkontekstowy, a więc odpowiedź na oba podpunkty brzmi nie. Gdyby język anagram(l) był bezkontekstowy, to bezkontekstowy byłby język K = anagram(l) a b c = {a n b n c n : n N}, jako iloczyn języka bezkontekstowego i regularnego. Dowód, że K nie jest bezkontekstowy był na wykładzie. 1

Zadanie 2. (6 punktów) Czy jeśli L jest bezkontekstowy, to {w : ww R L} też? Rozwiązanie. Nie. Rozważmy język L = {a n b n c 2m b m a k : n, m, k N}. Język L jest bezkontekstowy. Generuje go poniższa gramatyka. Nietrudno zauważyć, że S XY Z X axb ɛ Y ccy b ɛ Z az ɛ {w : ww R L} = {a n b n c n : n N}, a więc język ten nie jest bezkontekstowy. 2

Zadanie 3. (6 punktów) Załóżmy, że rozpatrujemy maszyny Turinga akceptujące słowa nad alfabetem {a, b}. Dla każdego z poniższych problemów ustalić, czy jest rozstrzygalny i czy jest częściowo rozstrzygalny. (a) Dany jest kod maszyny Turinga. Pytanie: czy maszyna akceptuje wyłącznie słowa składające się z samych liter a? (b) Dany jest kod maszyny Turinga. Pytanie: czy maszyna akceptuje wyłącznie słowa zawierające literę b? (c) Dany jest kod maszyny Turinga. Pytanie: czy maszyna akceptuje pewne słowo zawierające literę b? Rozwiązanie. Będziemy korzystać w redukcjach z dopełnienia problemu stopu: (NS) Dany jest kod maszyny Turinga. Pytanie: czy maszyna nie akceptuje słowa pustego? Problem (NS) nie jest nawet częściowo rozstrzygalny. (Gdyby był, to problem stopu by był rozstrzygalny.) Pokażemy, najpierw, że (a) nie jest nawet częściowo rozstrzygalny. Dla kodu maszyny Turinga M nietrudno wyprodukować kod maszyny M taki, że Jeśli M akceptuje słowo puste, to L(M ) = b +. Jeśli M nie akceptuje słowa pustego, to L(M ) =. Funkcja f, która zamienia kod maszyny M na kod maszyny M jest obliczalna. Wystarczy do kodu maszyny M dopisać wstęp, który sprawdza, czy dane na wejściu słowo należy do b +. Jeśli tak, wycieramy wejście (zostawiając słowo puste) i uruchamiamy M. Jeśli nie, odrzucamy. Nietrudno zobaczyć, że funkcja f jest redukcją problemu (NS) do (a), a więc (a) nie może być nawet częściowo rozstrzygalny. Teraz pokażemy, że (b) też nie jest częściowo rozstrzygalny. Rozważmy funkcję obliczalną g, która działa podobnie jak maszyna f, z tą różnicą, że zamiast b + jest a +. Funkcja g jest redukcją problemu (NS) do (a). Problem (c) jest częściowo rozstrzygalny. Algorytm zgaduje niedeterministycznie słowo zawierające literę b, a następnie uruchamia maszynę na tym słowie. Problem (c) nie jest rozstrzygalny, ponieważ jest dopełnieniem problemu (a), który nie jest rozstrzygalny. 3

Zadanie 4. (6 punktów *) Rozważmy automaty ze stosem z następującym warunkiem akceptacji: stos należy do L, gdzie L jest bezkontekstowy. Czy istnieje język, który nie jest bezkontekstowy, a jest rozpoznawany przez rozważany rodzaj automatu? Rozwiązanie. Dla zwiększenia obrazowości rozwiązania i zmniejszenia liczby oznaczeń poszczególne alfabety występujące w rozwiązaniu będziemy oznaczać różnymi kolorami. Niech A - automat rozpoznający L z niebieskim stosem, z jednym stanem, stos początkowy niebieska pinezka, operacje read(czerwona litera lub epsilon); pop(niebieska litera); push(niebieskie słowo), akceptacja przez pusty niebieski stos (taki właśnie automat powstaje po konwersji z gramatyki bezkontekstowej). Niech B - automat rozpoznający nasz główny język, stos początkowy pusty, operacje read(biała litera), push(zielona litera), pop(zielona litera), akceptuje, jeśli słowo będące na stosie, przekolorowane na czerwono, jest w języku L. Teraz zmieniamy B w następujący sposob: Zamiast robić push(zielona litera), myślimy o tym, czy automat B tą literę będzie chciał kiedykolwiek zdjąć (tzn. niedeterministycznie zgadujemy) jeśli nie, to od razu tą literę przekolorowujemy na czerwono. Zatem stos wygląda tak, że najpierw ma czerwone litery (które tam zostaną już do końca, dla automatu A), a potem zielone (tymczasowe pomocnicze dla B), nigdy nie ma zielonej przed czerwoną, do zaakceptowania cały stos musi być czerwony, a żeby literę zdjąć, musi ona być zielona. Teraz zamiast wrzucać te czerwone litery, przekazujemy je bezpośrednio do A, czyli nasz stos będzie teraz wyglądał tak, że na początku są niebieskie litery pomocnicze dla A, a potem zielone pomocnicze dla B. Czyli wrzucamy na początku niebieską pinezkę i zamiast wrzucać czerwone litery na stos, traktujemy je jako wejście dla automatu A (czyli patrzymy, co zrobiłby automat A, jakby wczytał taką literę i wykonujemy odpowiednią operację na niebieskim stosie (możemy to zrobic, bo w takim momencie nie ma zielonych na wierzchu); potem ewentualnie wykonujemy jeszcze ɛ-przejścia automatu A). Akceptujemy przez pusty stos. 4

(9 punktów) Wybierz 9 z poniższych pytań i odpowiedz na nie. 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ń. W każdym pytaniu podana jest modyfikacja znanego modelu. Trzeba powiedzieć, czy model zmodyfikowany ma tę samą siłę wyrazu co niezmodyfikowany. 1. Maszyna Turinga, która zawsze przesuwa głowicę w prawo. Odpowiedź: Model nie jest równoważny. 83 poprawnych na 86 prób. Krótkie uzasadnienie: Taka maszyna jest równoważna automatowi skończonemu. Pisanie na taśmie niczego nie wnosi, podobnie wyjście poza ostatnią literę słowa. 2. Maszyna Turinga, która ma prawo pisać tylko na słowie wejściowym, a nie na symbolach blank. Odpowiedź: Model nie jest równoważny. 66 poprawnych na 69 prób. Krótkie uzasadnienie: Dla każdej takiej maszyny problem czy maszyna akceptuje dane słowo w jest rozstrzygalny (a nie jest rozstrzygalny dla niektórych maszyn Turinga), bo ilość konfiguracji użytych w biegu jest ograniczona przez długość słowa wejściowego w. 3. Maszyna Turinga (niedeterministyczna), która może przesuwać głowicę tylko o 1 komórkę w prawo, lub na początek taśmy. Odpowiedź: Model jest równoważny. 46 poprawnych na 49 prób. Krótkie uzasadnienie: Dowolną maszynę symulujemy M maszyną N ograniczonego rodzaju w następujący sposób. Załóżmy, że bieg maszyny M składał się z konfiguracji c 1, c 2,..., c n. Symulując jeden krok maszyny M, maszyna N zostawia na taśmie zapis konfiguracji c i, wraz z położeniem głowicy. Aby przejść z zapisu c i do c i+1, należy przejechać całe słowo, przesunąć znacznik głowicy i wrócić na początek. Przy przesuwaniu znacznika w lewo przydaje się niedeterminizm, choć można to nawet zrobić deterministycznie. 4. Automat ze stosem, który może przesuwać się po wejściu w dwie strony. (Przykładowa tranzycja: w stanie q, z a na wejściu i b na czubku stosu, zmień stan na p, zdejmij ze stosu literę b i przesuń głowicę w lewo.) Odpowiedź: Model nie jest równoważny. 51 poprawnych na 53 prób. Krótkie uzasadnienie: Taki automat potrafi rozpoznać język {a n b n c n : n N}, który nie jest bezkontekstowy. Najpierw, w zwykły sposób, maszyn sprawdza, czy jest tyle samo a co b. Potem wraca do pierwszego b i sprawdza, czy jest tyle samo b co c. Ogólniej, problem niepustości jest nierozstrzygalny dla takich maszyn. 5. Automat ze stosem, gdzie operacja zdejmij ze stosu literę b jest uogólniona do zdejmij ze stosu słowo z języka L, dla L języka regularnego. Odpowiedź: Model jest równoważny. 28 poprawnych na 30 prób. Krótkie uzasadnienie: Taką operację symulujemy poprzez zjadanie ze stosu pamiętając stan automatu skończonego dla L. 5

6. Automat ze stosem, który może wykonać przejście postaci jeśli zawartość stosu należy do L, to zmień stan z p na q, dla L języka bezkontekstowego. Odpowiedź: Model nie jest równoważny. 36 poprawnych na 37 prób. Krótkie uzasadnienie: Taki automat potrafi rozpoznać język {a n b n c n : n N}, który nie jest bezkontekstowy. Przy czytaniu prefiksu a b, wrzucamy go na stos. Pomiędzy ostatnim b a pierszym c, sprawdzamy czy stos ma tyle samo a co b. Potem czytamy litery c, zdejmując dla każdej c jedno b ze stosu. Na końcu mają być na stosie same a. 7. Automat ze stosem, z operacją podwój stos, która zamienia stos w na stos ww. Odpowiedź: Model nie jest równoważny. 67 poprawnych na 72 prób. Krótkie uzasadnienie: Taki automat potrafi rozpoznać język {a n b n c n : n N}, który nie jest bezkontekstowy. Przy czytaniu prefiksu a, wrzucamy go na stos. Przed przeczytanim pierwszego b, wrzucamy na stos #, a potem stos podwajamy. W ten sposób liczbę n mamy dwa razy na stosie, co pozwala nam sprawdzić długość bloku liter b oraz długość bloku liter c. 8. Gramatyka bezkontekstowa, gdzie prawe strony reguł mogą zawierać wyrażenia regularne, np. X (X ay ). Odpowiedź: Model jest równoważny. 75 poprawnych na 77 prób. Krótkie uzasadnienie: Na przykład regułę X (X ay ) symulujemy przez dodanie nowych nieterminali A, B oraz reguł X A A AA BaY B BB X. 9. Wyrażenia regularne, gdzie dozwolona jest operacja różnicy L K. Odpowiedź: Model jest równoważny. 53 poprawnych na 59 prób. Krótkie uzasadnienie: Język regularne są zamknięte na dopełnienie. 10. Wyrażenia regularne, gdzie każda litera alfabetu występuje 10 razy. Odpowiedź: Model nie jest równoważny. 81 poprawnych na 84 prób. Krótkie uzasadnienie: Dla ustalonego alfabetu, np. alfabetu {a}, takich wyrażeń jest skończenie wiele (nierównoważnych), a języków regularnych jest nieskończenie wiele. Inny argument: nie można opisać języka {a 1 1}. 11. Automat skończony, gdzie warunek akceptacji to: co najmniej połowa biegów jest akceptująca. Odpowiedź: Model nie jest równoważny. 13 poprawnych na 24 prób. Krótkie uzasadnienie: Rozważmy następujący automat. a a b Na słowie a n b m ma on n biegów akceptujących (ukośną tranzycją można wczytać dowolną literę a) oraz m 1 biegów nieakceptujących (prawą tranzycją poziomą można wczytać dowolną literę b oprócz pierwszej). Słowo 6

takie zostanie zaakceptowane wtedy i tylko wtedy gdy n m 1. Skądinąd wiadomo (nierywialny dowód), że nierozstrzygalny jest problem: czy dla danego automatu A istnieje słowo wejściowe gdzie automat ma co najmniej połowę biegów akceptujących. 12. Automat skończony, który może wykonać instrukcję wróć do początku słowa w stanie q. Odpowiedź: Model jest równoważny. 21 poprawnych na 32 prób. Krótkie uzasadnienie: Aby symulować taki automat, wystarczy śledzić jego bieg od początku w każdym z możliwych stanów. 13. Automat skończony, który może wykonać instrukcję usuń ostatnią literę czytanego słowa. Automat nie dowiaduje się jaka litera zniknęła. Na przykład, jeśli wykona tę instrukcję czytając pierwszą literę słowa abbac, to zniknie c. Odpowiedź: Model nie jest równoważny. 33 poprawnych na 51 prób. Krótkie uzasadnienie: Takim automatem można rozpoznać nieregularny język {a n b(a+b) n : n N}. Czytając litery a na początku, usuwamy ostatnie litery. Akceptujemy jeśli po pierwszej literze b jest koniec wejścia. 14. Automat ze stosem, który może wykonać instrukcję usuń ostatnią literę czytanego słowa. Odpowiedź: Model nie jest równoważny. 5 poprawnych na 17 prób. Krótkie uzasadnienie: Taki automat potrafi rozpoznać język {a n b n a(a+ b) n : n N}, który nie jest bezkontekstowy. Najpierw, w zwykły sposób, maszyn sprawdza, czy jest tyle samo a co b, ale przy czytaniu liter b automat usuwa ostatnią literę słowa wejściowego. Aby zaakeptować, maszyna musi skończyć po wczytaniu pierwszego a po bloku liter b. 15. Maszyna Turinga, która się blokuje (odrzucając wejście) jak tylko drugi raz odwiedzi tę samą konfigurację. Odpowiedź: Model jest równoważny. 32 poprawnych na 35 prób. Krótkie uzasadnienie: Każdą maszynę Turinga można zmodyfikować tak, by nie odwiedzała dwa razy tej samej konfiguracji. Maszyna na specjalnej taśmie (można i bez dodawania taśmy) trzyma licznik, który zwiękasza po wykonaniu każdego kroku. Inne rozwiązanie: maszyny nie trzeba modyfikować, bo biegi odwiedzające dwa razy tę samą konfigurację nic nie wnoszą do akceptacji. 7