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

Podobne dokumenty
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

Języki, automaty i obliczenia

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

10110 =

Imię, nazwisko, nr indeksu

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

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}

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

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

JAO - Wprowadzenie do Gramatyk bezkontekstowych

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Języki formalne i automaty Ćwiczenia 7

Języki formalne i automaty Ćwiczenia 1

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

1 Automaty niedeterministyczne

Hierarchia Chomsky ego

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

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

Matematyczne Podstawy Informatyki

Jaki język zrozumie automat?

Matematyczne Podstawy Informatyki

Języki, automaty i obliczenia

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

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

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

Języki formalne i automaty Ćwiczenia 6

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

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

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

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

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Przykładowe zadania z teorii liczb

Hierarchia Chomsky ego Maszyna Turinga

Języki formalne i automaty Ćwiczenia 2

Języki, automaty i obliczenia

LOGIKA I TEORIA ZBIORÓW

0.1 Lewostronna rekurencja

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

Języki formalne i automaty Ćwiczenia 3

Języki, automaty i obliczenia

Definicja 2. Twierdzenie 1. Definicja 3

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

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

Definiowanie języka przez wyrażenie regularne(wr)

Języki formalne i automaty Ćwiczenia 4

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

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

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.

Maszyna Turinga języki

Języki formalne i automaty Ćwiczenia 5

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

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

Obliczenia inspirowane Naturą

Indukcja matematyczna, zasada minimum i maksimum. 17 lutego 2017

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

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

Języki, automaty i obliczenia

JĘZYKI FORMALNE I METODY KOMPILACJI

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Indukcja matematyczna

I Liceum Ogólnokształcące im. Cypriana Kamila Norwida w Bydgoszczy. Wojciech Kretowicz PODZIELNOŚĆ SILNI A SUMA CYFR

R O Z D Z I A Ł V I. Automaty skończenie-stanowe

W. Guzicki Zadanie 41 z Informatora Maturalnego poziom podstawowy 1

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

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

Lista zadań - Relacje

JĘZYKIFORMALNE IMETODYKOMPILACJI

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

Przykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny:

3.4. Przekształcenia gramatyk bezkontekstowych

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

Obliczenia inspirowane Naturą

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

LX Olimpiada Matematyczna

Teoretyczne Podstawy Informatyki

Sumy kwadratów kolejnych liczb naturalnych

Rodzinę F złożoną z podzbiorów zbioru X będziemy nazywali ciałem zbiorów, gdy spełnione są dwa następujące warunki.

do instrukcja while (wyrażenie);

Symulacja w przedsiębiorstwie

Kongruencje twierdzenie Wilsona

1. Maszyna Turinga, gramatyki formalne i ONP

Dwa równania kwadratowe z częścią całkowitą

Wykład 5. Jan Pustelnik

11 Probabilistic Context Free Grammars

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

Dystrybucje, wiadomości wstępne (I)

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel

Transkrypt:

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też L = {vw : vuw L dla pewnego u A takiego, że u = v + w } Rozwiązanie. Niech A = (A, Q, q I, F, δ) automat, który rozpoznaje L. Dla stanów p, q Q, rozważmy trzy języki. 1. Rozważmy najpierw język: L p,q = {w A : istnieje bieg po w zaczynający w p i kończący w q} Jest to oczywiście język regularny, rozpoznaje go automat A ze zmienionymi stanami początkowymi i końcowymi. 2. Rozważmy następnie język K p,q = {w A : u L p,q dla pewnego u tej samej długości co w} Jest to też język regularny, rozpoznaje go ten sam automat co L p,q, tyle że każde przejście umożliwiamy po każdej literze. 3. Rozważmy wreszcie język M p,q = {w A : wu L p,q dla pewnego u tej samej długości co w} Jest to język regularny, jako suma konkatenacji języków regularnych M p,q = L p,r K r,q r Q Na tych samych zasadach, regularny jest M p,q = {w A : uw L p,q dla pewnego u tej samej długości co w} Sam język L z treści zadania jest regularny, bo przedstawia się jako L = M p,q M q,r p I,q Q,r F 1

Zadanie 2. Niech L będzie zbiorem wyrażen regularnych nad alfabetem {a}, które generują przynajmniej jedno słowo długości parzystej. A więc alfabet dla języka L to ( ) a + Aby nie wdawać się w priorytety operacji, załóżmy, że interesują nas wyrażenia, gdzie każde podwyrażenie jest otoczone nawiasami, jak np. Czy język L jest bezkontekstowy? ((((a) (a)) ) + (a)) Rozwiązanie. Tak, język jest bezkontekstowy. Poniżej opisujemy gramatykę. Dla podzbioru X {0, 1}, będziemy mieli nieterminal N X. Niezmiennik będzie następujący: N 0,1 opisuje wyrażenia regularne generujące słowa zarówno parzystej jak i nieparzystej długości N 0 opisuje wyrażenia regularne generujące tylko słowa parzystej długości N 1 opisuje wyrażenia regularne generujące tylko słowa nieparzystej długości N opisuje wyrażenia regularne nie generujące żadnych słów Mamy wreszcie nieterminal startowy S, o regule Podstawowe reguły to S N {0} N {0,1} N N {1} (a) Rozważmy teraz operację sumy w wyrażeniach regularnych. Jeśli X, Y, Z {0, 1} są zbiorami takimi, że X = Y Z, to gramatyka zawiera regułę N X (N Y + N Z ) Rozważmy teraz operację konkatenacji w wyrażeniach regularnych. Jeśli X, Y, Z {0, 1} są zbiorami takimi, że to gramatyka zawiera regułę X = {i + j mod 2 : i Y, j Z}, N X (N Y N Z ) 2

Rozważmy wreszcie gwiazdkę. Dla niej mamy reguły: N {0} (N ) N {0} (N {0} ) N {0,1} (N {1} ) N {0,1} (N {0,1} ) 3

Zadanie 3. Niech bin(n) oznacza dwójkowy zapis liczby n, np. bin(12) = 1100. Niech w R oznacza słowo w napisane do tyłu. Czy bezkontekstowy jest język L = {bin(n)#(bin(n 2 )) R : n N} Rozwiązanie. Język nie jest bezkontekstowy. Trudność występuje już przy kwadratach liczb, których rozwinięcie dwójkowe jest postaci 10 n 1 dla n 1. Rozważmy przecięcie języka L z regularnym językiem K = 100 1#(0 + 1) Poniżej pokażemy, że przecięcie L K nie jest bezkontekstowe, z czego wynika, że sam język L nie jest bezkontekstowy. Jak wygląda kwadrat liczby, której rozwinięcie dwójkowe jest zgodne z wyrażeniem 100 1? Jeśli rozwinięciem jest 10 n 1, dla n 1, to kwadrat wynosi (2 n+1 + 1) 2 = (2 n+1 ) 2 + 2 2 n+1 + 1 = 2 2n+2 + 2 n+2 + 1 a więc, przy założeniu n 1, rozwinięcie dwójkowe kwadaratu to Czyli język L K to 10 n 1 10 n+1 1. {10 n 1#10 n+1 10 n 1 1 : n 1}. Teraz pokażemy, że powyższy język nie jest bezkontekstowy. Dowód jest ten sam co dla języka {a n b n c n : n N}. Zastosujmy do języka L K lemat o pompowaniu dla języków bezkontekstowych (wystarczy zwykły lemat, niepotrzebny jest silniejszy lemat Ogdena). Niech M N stała z lematu o pompowaniu. Rozważmy słowo Na mocy lematu istnieje podział w = 10 M 1#10 M+1 10 M 1 1 L K. w = w 1 w 2 w 3 w 4 w 5 taki, że słowo w 2 w 4 zawiera przynajmniej jedną literę, oraz zachodzi następujący warunek pompowania w 1 w i 2w 3 w i 4w 5 L K dla dowolnego i N. Pokażemy, że takiego podziału być nie może, co dowodzi, że język L K nie mógł być bezkontekstowy. Po pierwsze, słowa w 2, w 4 nie mogą zawierać ani 1 ani #, bo inaczej przy pompowaniu dla i = 2 byśmy dostali w języku L K słowo, które ma więcej niż pięć jedynek, albo więcej niż jeden #. A więc każde ze słów w 2 i w 4 musi się mieścić w całości w jednym z trzech bloków zer, które występują w słowie w. Wówczas pompowanie dla i = 2 zmieni długość przynajmiej jednego ale co najwyżej dwóch bloków, bez zmiany długości trzeciego bloku, co spowoduje wypadnięcie z języka L K. 4

Zadanie *. Rozważmy automat ze stosem, który oprócz normalnych instrukcji, może też wykonać instrukcję usuń wszystkie wystąpienia litery b ze stosu. Inaczej mówiąc, dozwolone są też przejścia postaci: (p, a, usun(b), q) gdzie p, q są stanami, a jest literą alfabetu wejściowego (może być też a = ɛ), oraz b jest literą alfabetu stosowego. Czy opisany powyżej model automatu potrafi rozpoznawać tylko języki bezkontekstowe? Rozwiązanie. Tak. Niech A będzie automatem w nowym modelu. Pokażemy automat A, w zwykłym modelu automatu ze stosem, który rozpoznaje ten sam język co A. Załóżmy, że automat A korzysta tylko z przejść typu push i pop, oraz że akceptuje przez stan akceptujący. Nowy automat A będzie miał te same stany co automat A, ten sam stan początkowy, te same stany akceptujące (no i oczywiście ten sam alfabet wejściowy). Zmienią się tylko alfabet stosowy i przejścia. (Uważny czytelnik zauważy, że wszystkie przejścia typu push i pop oryginalnego automatu są zachowane w nowym automacie, dochodzi jednak kilka nowych przejść.) Niech B będzie alfabetem stosowym oryginalnego automatu A. Alfabet stosowy nowego automatu A zawiera wszystkie symbole z oryginalnego alfabetu B, oraz dodatkowe symbole {usun(c) : C B}. Idea jest taka, że jeśli stos zawiera sybmol usun(c), to wszystkie wystąpienia liter ze zbioru C pod tym symbolem należy uznać za niebyłe. Poniżej opisane są przejścia nowego automatu A. 1. Przejście postaci (p, a, usun(b), q) w automacie A zastępujemy w automacie A przez przejście, które czytając literę a zmienia stan z p na q, oraz kładzie na stosie symbol usun({b}). 2. Chcemy, żeby na stosie symbole typu usun nie sąsiadowały ze sobą. Aby to osiągnąć, sąsiednie wystąpienia łączymy ze sobą. Dla każdego stanu q, dodajemy ɛ-przejście, q, usun(c 1 ) usun(c 2 ) ɛ q, usun(c 1 C 2 ). 3. Załóżmy, że oryginalny automat A miał przejście postaci pop, czyli q, b a p, ɛ. Przejście takie może być wykonane jeśli symbol b jest przykryty symbolem usuwającym litery nie zawierające b, czyli za pomocą przejść postaci: q, usun(c) b a p, usun(c) dla C b. 5

(W powyższym napisie, czubek stosu jest z lewej strony, a więc b jest przykryte symbolem usun(c).) Może się też zdarzyć, że b nie jest przykryte żadnym symbolem usuwającym, wówczas możemy zastosować oryginalne przejście q, b a p, ɛ. 4. Przejścia push pozostają bez zmiany. To kończy opis automatu A. Poniżej opisany jest niezmiennik, który dowodzi, że automat A akceptuje te same słowa co automat A. Dla stosu nad nowym alfabetem stosowym, definiujemy jego redukt, który jest stosem nad oryginalnym alfabetem stosowym, w następujacy sposób: usuwamy wszystkie wystąpienia symbolu b, które są przykryte wystąpieniem symbolu usun(c) takiego, że b C. następnie usuwamy wszystkie symbole typu usun(c). Na przykład redukt stosu usun({b 1 }) b 2 usun({b 2 }) b 1 b 2 b 3 usun({b 1, b 2 }) b 3 to stos b 2 b 3 b 3. Korzystając z pojęcia reduktu, możemy sformułować niezmiennik. Niezmiennik mówi, że dla każdego słowa w i każdej zawartości stosu γ nad oryginalnym alfabetem stosowym, następujące warunki są równoważne: 1. Istnieje bieg ρ automatu A po słowie w, który kończy się w stanie q z zawartością stosu γ. γ. 2. Istnieje stos γ, którego redukt to γ, oraz bieg ρ automatu A po słowie w, który kończy się w stanie q z zawartością stosu γ. Implikację z góry na dół dowodzi się przez indukcję po ilości przejść w biegu ρ, a implikację z dołu do góry dowodzi się przez indukcję po ilości przejść w biegu ρ. 6