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}

Podobne dokumenty
Języki formalne i automaty Ćwiczenia 7

Języki, automaty i obliczenia

Jaki język zrozumie automat?

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 - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2

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

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

Maszyna Turinga języki

Symbol, alfabet, łańcuch

1 Automaty niedeterministyczne

Wyrażenia regularne.

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

Imię, nazwisko, nr indeksu

Obliczenia inspirowane Naturą

10110 =

Hierarchia Chomsky ego Maszyna Turinga

Teoretyczne podstawy informatyki

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

Efektywność Procedur Obliczeniowych. wykład 5

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

Języki formalne i automaty Ćwiczenia 1

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

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

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

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

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

Część wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B:

Matematyczne Podstawy Informatyki

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

Hierarchia Chomsky ego

Języki, automaty i obliczenia

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Obliczenia inspirowane Naturą

Maszyna Turinga (Algorytmy Część III)

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

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

Automat Moore a. Teoria układów logicznych

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

Języki formalne i automaty Ćwiczenia 6

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

Problemy Decyzyjne dla Systemów Nieskończonych

Matematyczne Podstawy Informatyki

Języki, automaty i obliczenia

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

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

zbiorów domkniętych i tak otrzymane zbiory domknięte ustawiamy w ciąg. Oznaczamy

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

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

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

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

Teoretyczne Podstawy Informatyki

Elementy Teorii Obliczeń

Języki, automaty i obliczenia

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

Języki formalne i automaty Ćwiczenia 2

Weronika Siwek, Metryki i topologie 1. (ρ(x, y) = 0 x = y) (ρ(x, y) = ρ(y, x))

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

Wprowadzenie do maszyny Turinga

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Języki, automaty i obliczenia

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

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

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

1 Działania na zbiorach

IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I

Teoria układów logicznych

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Lista zadań - Relacje

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

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.

GRAMATYKI BEZKONTEKSTOWE

Wstęp do Informatyki

Ciągłość funkcji f : R R

Jȩzyki, automaty, zlożoność obliczeniowa

Dystrybucje, wiadomości wstępne (I)

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

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

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

PROBLEMY NIEROZSTRZYGALNE

Definicja 2. Twierdzenie 1. Definicja 3

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

Matematyczne Podstawy Informatyki

Korzystając z własności metryki łatwo wykazać, że dla dowolnych x, y, z X zachodzi

Indukcja matematyczna

Maszyna Turinga, ang. Turing Machine (TM)

Transkrypt:

Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy symbolem ǫ. Przykład: Σ = {, } Σ - zbiór wszystkich skończonych ciagów binarnych. L = {,,,...,,,,... } L 2 = {,,, } L 3 = {x {, } : x zawiera jednakowa liczbę i } Języki moga być skończone lub nieskończone. Adam Kasperski Teoria obliczeń 2/22

Operacje na językach Dopełnieniem języka L nazywamy język L = Σ \ L. Sumę dwóch języków L i M definiujemy jako język L M Konkatenację dwóch języków L i M oznaczamy jako L.M i definiujemy jako język zawierajacy xy dla każdego x L i y M. Symbolem x i oznaczamy i-krotna konkatenację x. Domknięciem Kleena języka L nazywamy język L, który tworzymy biorac dowolna liczbę słów z L (z możliwymi powtórzeniami) i łacz ac je w jedno słowo. Formalnie L = i= Li, gdzie L = {ǫ} i L i = L i.l Adam Kasperski Teoria obliczeń 2/22

Problemy decyzyjne jako języki Problem decyzyjny Π traktujemy jako obliczanie funkcji f Π : {, } {, }. Z funkcja ta możemy skojarzyć następujacy język: L Π = {x {, } : f Π (x) = } Język ten zawiera więc wszystkie skończone ciagi bitów, które reprezentuja obiekty dla których odpowiedź brzmi TAK. Problem decyzyjny polega więc na rozstrzygnięciu czy x L Π. Przykład: L P = {x {, } : x jest kodowaniem - liczby pierwszej} Adam Kasperski Teoria obliczeń 2/22

Automat skończony składa się prawostronnie nieskończonej taśmy oraz głowicy, która potrafi tylko odczytywać symbole zapisane na taśmie, przesuwać się w prawo i zmieniać swój stan wewnętrzny. q i Adam Kasperski Teoria obliczeń 2/22

Deterministyczny automat skończony (DAS) jest uporzadko- wana piatk a A = (Q, Σ, δ, q, F), gdzie: Q jest skończonym zbiorem stanów. 2 Σ jest zbiorem symboli wejściowych. 3 δ : Q Σ Q jest funkcja przejścia. 4 q Q jest stanem poczatkowym. 5 F Q jest podzbiorem stanów akceptujacych. Przykład: Q = {q, q, q 2 }, Σ = {, }, δ(q, ) = q, δ(q, ) = q, δ(q, ) = q, δ(q, ) = q 2, δ(q 2, ) = q 2, δ(q 2, ) = q 2, F = {q 2 }. Adam Kasperski Teoria obliczeń 2/22

Funkcję przejścia DAS wygodnie jest przedstawić w postaci tabelarycznej. Przykład: q q q q q q 2 * q 2 q 2 q 2 Adam Kasperski Teoria obliczeń 2/22

Dla każdego DAS można podać diagram przejść określony następujaco: Tworzymy wierzchołek dla każdego stanu Q. 2 Dla każdego δ(q, a) = p, q Q, a Σ, tworzymy łuk (q, p) etykietowany symbolem a. Przykład: q q q2 Adam Kasperski Teoria obliczeń 2/22

Niech x = a a 2 a 3...a n, a i Σ, będzie słowem wejściowym. Obliczenia wykonywane przez DAS na x polegaja na wyznaczeniu ciagu stanów p, p 2,...,p n, gdzie p = q, p i = δ(p i, a i ), i =,...,n. Mówimy, że DAS akceptuje x jeżeli ostatni stan p n F. Alternatywnie, jeżeli istnieje ścieżka od q do stanu akceptujacego etykietowana słowem x. q q q2 Obliczenia: q, q, q, q, q, q, q 2, q 2. Ciag wejściowy jest akceptowany. Jakie słowa akceptuje ten automat? Adam Kasperski Teoria obliczeń 2/22

Ćwiczenie Języki Zaprojektuj DAS, który sprawdza czy zadane słowo nad alfabetem {, } zawiera parzysta liczbę. Adam Kasperski Teoria obliczeń 2/22

Niedeterministyczny automat skończony Niedeterministyczny automat skończony (NAS) różni się od DAS tym, że δ(q, a) dla q Q może prowadzić do żadnego lub dowolnej liczby stanów, tj δ : Q Σ 2 Q. W diagramie przejść oznacza to, że z wierzchołka q może wychodzić więcej niż jeden łuk o etykiecie a. q q q2 q {q, q } q q q 2 * q 2 Adam Kasperski Teoria obliczeń 2/22

W NAS obliczenia dla zadanych danych wejściowych rozgałęziaja się. Automat akceptuje x jeżeli przynajmniej jeden ciag obliczeń prowadzi do stanu akceptujacego. Alternatywnie jeżeli w diagramie przejść istnieje droga od stanu q do stanu akceptujacego o etykiecie x. q q q2 q q q q q q q q q q2 q2 Adam Kasperski Teoria obliczeń 2/22

ǫ-nas jest to NAS o funkcji przejścia δ : Σ {ǫ} 2 Q. Automat akceptuje słowo x jeżeli istnieje droga od q do stanu akceptujacego etykietowana symbolami z x, przy czym symbole ǫ nie wpływaja na etykietowanie. 2 ε ε q q q2 Automat akceptuje słowa,, 2 i nie akceptuje słów 2, 22 itp. Jakie słowa akceptuje ten automat? Adam Kasperski Teoria obliczeń 2/22

Przejścia ǫ pozwalaja znacznie uprościć projektowanie automatów. Jakie słowa akceptuje ten automat? ε q q2 q ε q3 q5 q4 Adam Kasperski Teoria obliczeń 2/22

. Jakie słowa akceptuje ten automat?... 9... 9 + - ε....9 q q q2 q3 q4 ε... 9 q5 Adam Kasperski Teoria obliczeń 2/22

Językiem L(A) akceptowanym przez automat skończony A nad alfabetem Σ nazywamy następujacy zbiór: L(A) = {x Σ : A akceptuje x} Automat skończony jest prostym modelem obliczeń, w którym nie występuje pamięć wewnętrzna (do zapisu pośrednich wyników obliczeń). Potrzebna jest tylko pamięć typu read-only do odczytu danych wejściowych. Za pomoca automatów skończonych można rozwiazywać pewne szczególne problemy decyzyjne. Na przykład: czy zadany ciag bitów zawiera podciag postaci? Adam Kasperski Teoria obliczeń 2/22

Równoważność automatów skończonych Twierdzenie Zbióry języków akceptowanych przez DAS, NAS i ǫ-nas sa takie same. Należy pokazać, że dla NAS istnieje równoważny DAS i dla ǫ-nas istnieje równoważny NAS. Twierdzenie będzie wówczas udowodnione ponieważ DAS jest szczególnym przypadkiem ǫ-nas. Adam Kasperski Teoria obliczeń 2/22

Konstrukcja DAS dla NAS () Dla NAS: (2) Wykonujemy konstrukcję: q {q, q } q q q 2 * q 2 {q } {q, q } {q } {q } {q 2 } * {q 2 } {q, q } {q, q } {q, q 2 } * {q, q 2 } {q, q } {q } * {q, q 2 } {q 2 } * {q, q, q 2 } {q, q } {q, q 2 } Adam Kasperski Teoria obliczeń 2/22

Konstrukcja DAS dla NAS (3) Usuwamy stany, które nie moga być osiagnięte z q i otrzymujemy równoważny DAS. {q } {q, q } {q } {q, q } {q, q } {q, q 2 } * {q, q 2 } {q, q } {q } q q q q2 q, q2 2, Adam Kasperski Teoria obliczeń 2/22

Konstrukcja NAS dla ǫ-nas Dla ǫ-nas: 2 ǫ q {q, q } q q q q 2 * q 2 q 2 Niech e(q) będzie zbiorem stanów osiagalnych z q po łukach ǫ. Konstrukcja dla δ(q, ): mamy e(q ) = {q, q, q 2 }. Obliczamy δ(q, ) δ(q, ) δ(q 2, ) = {q, q }. Następnie bierzemy δ (q, ) := e(q ) e(q ) = {q, q, q 2 }. Stan q jest akceptujacy jeżeli q 2 e(q). Pozostałe funkcje przejścia obliczamy podobnie. Otrzymujemy NAS: 2 * q {q, q, q 2 } {q, q 2 } q 2 * q {q, q 2 } q 2 * q 2 q 2 Adam Kasperski Teoria obliczeń 2/22

Konstrukcja NAS dla ǫ-nas 2 ε ε q q q2 q q 2 2 2 q2 ε q q2 q q2 q ε q3 q4 q5 q q3 q4 q5 Adam Kasperski Teoria obliczeń 2/22

Efektywność obliczeniowa DAS i NAS Twierdzenie Zdefiniujmy język: L n = {x {, } : n-tym symbolem od końca w x jest }. Język L n jest akceptowany przez NAS posiadajacy n stanów i każdy DAS akceptujacy L n musi mieć co najmniej 2 n stanów. NAS rozpoznajacy L n: q q q2 qn Dowód drugiej części twierdzenia (ćwiczenia). Adam Kasperski Teoria obliczeń 2/22

Język L nazywamy językiem regularnym jeżeli istnieje automat skończony (DAS, NAS, ǫ-nas), który akceptuje L. Twierdzenie Ustalmy alfabet Σ. Języki, {ǫ} i {a} dla a Σ sa regularne. 2 Jeżeli R i S sa regularne, to R S, R.S, R i S sa regularne. Wniosek Każdy język skończony jest regularny (dlaczego?). Adam Kasperski Teoria obliczeń 2/22

Idea dowodu: Adam Kasperski Teoria obliczeń 2/22

opisujemy za pomoca wyrażeń regularnych:, ǫ, a sa wyrażeniami regularnymi reprezentujacymi języki, {ǫ} i {a}. jeżeli r i s sa wyrażeniami regularnymi reprezentujacymi języki R i S, to (r + s), (rs), (r ) sa wyrażeniami regularnymi reprezentujacymi odpowiednio R S, R.S i R. Przyjmujemy, że ma większy priorytet niż konkatenacja i suma a konkatenacja ma większy priorytet niż suma. Na przykład ((( )) + ) = +. Jakie języki opisuja wyrażenia regularne:, ( + ), ( + ), ( 2 ), ( + ) ( + ) Adam Kasperski Teoria obliczeń 2/22

Ćwiczenie Języki Skonstruuj automat skończony rozpoznajacy język zadany wyrażeniem regularnym ( + ) Adam Kasperski Teoria obliczeń 2/22

Twierdzenie Każdy język regularny można opisać za pomoca wyrażenia regularnego. Wystarczy pokazać, że każdy język akceptowany przez DAS można opisać w postaci wyrażenia regularnego. Adam Kasperski Teoria obliczeń 2/22

[Krok ] Dla danego automatu najpierw dodajemy jeden stan wejściowy i jeden stan końcowy używajac przejść ǫ. Następnie zastępujemy etykiety łuków odpowiednimi wyrażeniami regularnymi: b b q a a q3 ε q a a ε q4 b a b a ε b b Adam Kasperski Teoria obliczeń 2/22

[Krok 2] Następnie wykonujemy kontrakcję stanów kolejno q, q, q 2. aa+b q3 a q ε b bb ba+a ab ε q4 q2 q3 a(aa+b)* q4 a(aa+b)*ab+b (ba+a)(aa+b)*+ε q2 (ba+a)(aa+b)*ab+bb q3 q4 (a(aa+b)*ab+b)((ba+a)(aa+b)*ab+bb)*((ba+a)(aa+b)*+ε)+a(aa+b)* Adam Kasperski Teoria obliczeń 2/22

Moc obliczeniowa automatów skończonych Lemat o pompowaniu Niech L będzie nieskończonym językiem regularnym. Wówczas istnieje stała n, taka że każde w L, w n, może być przedstawione jako w = xyz, gdzie: y >, xy n, xy i z L dla każdego i. Lemat podaje kryterium, kóre musi spełniać każdy język regularny. jeżeli jakiś język nie spełnia tego kryterium to nie może być regulrany. Zatem Adam Kasperski Teoria obliczeń 2/22

Przykład języka nieregularnego Twiedzenie Język L = { n n : n } nie jest regularny. Dowód: Przypuśćmy, że L jest regularny. Niech n będzie stała z lematu o pompowaniu. Rozważmy w = n n L. Z lematu wynika,że w = xyz, gdzie y > i xy n. Wynika z tego, że y = k dla pewnej stałej k >. Zatem z lematu o pompowaniu wynika, że xy 2 z = n+k n L. Otrzymujemy sprzeczność ponieważ n + k n i n+k n / L. Adam Kasperski Teoria obliczeń 2/22

Przykład języka nieregularnego Twiedzenie Języki: L = { n n : n } L = {x {, } : x zawiera jednakowa liczbę i } L = {x {} : x jest liczba pierwsza} L = { n : n jest potęga 2} nie sa regularne Dowód (ćwiczenia). Adam Kasperski Teoria obliczeń 2/22