Jaki język zrozumie automat?

Podobne dokumenty
Języki formalne i automaty Ćwiczenia 9

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

Matematyczne Podstawy Informatyki

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

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

Języki, automaty i obliczenia

Hierarchia Chomsky ego Maszyna Turinga

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

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

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

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)

Symbol, alfabet, łańcuch

Imię, nazwisko, nr indeksu

1 Automaty niedeterministyczne

Obliczenia inspirowane Naturą

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

Hierarchia Chomsky ego

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:

10110 =

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

Obliczenia inspirowane Naturą

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

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

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

Maszyna Turinga języki

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

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Języki, automaty i obliczenia

Języki, automaty i obliczenia

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Zestaw A 1. Jakie slowa akceptuje ten automat:

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, zlożoność obliczeniowa

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

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

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

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

Języki formalne i automaty Ćwiczenia 3

Wyrażenia regularne.

Języki formalne i automaty Ćwiczenia 6

Matematyczne Podstawy Informatyki

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

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

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

Języki formalne i automaty Ćwiczenia 4

Języki, automaty i obliczenia

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

Teoretyczne podstawy informatyki

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

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Równoważność automatów wielotaśmowych

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

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

Paradygmaty i języki programowania. Analiza leksykalna Skaner, RE, DAS, NAS, ε- NAS

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

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

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Języki i gramatyki formalne

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

Opisy efektów kształcenia dla modułu

Matematyczny świat języków. Wprowadzenie i języki regularne materiały do ćwiczeń

Języki formalne i automaty Ćwiczenia 2

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

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

Maszyna Turinga (Algorytmy Część III)

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

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Matematyka dyskretna Literatura Podstawowa: 1. K.A. Ross, C.R.B. Wright: Matematyka Dyskretna, PWN, 1996 (2006) 2. J. Jaworski, Z. Palka, J.

Definicja 2. Twierdzenie 1. Definicja 3

TEORETYCZNE PODSTAWY INFORMATYKI

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

Wprowadzenie do analizy leksykalnej. Bartosz Bogacki.

Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)

Projekt matematyczny

Wyk lad 2 Podgrupa grupy

JĘZYKI FORMALNE I METODY KOMPILACJI

Matematyczne Podstawy Informatyki

Teoria obliczeń czyli czego komputery zrobić nie mogą

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Obliczenia inspirowane Naturą

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

Lista zadań - Relacje

R O Z D Z I A Ł V I I

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Teoretyczne Podstawy Informatyki

Złożoność obliczeniowa

O geometrii semialgebraicznej

JĘZYKIFORMALNE IMETODYKOMPILACJI

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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 i paradygmaty programowania

Obliczenia inspirowane Naturą

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

Efektywność Procedur Obliczeniowych. wykład 5

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Transkrypt:

Jaki język zrozumie automat? Wojciech Dzik Instytut Matematyki Uniwersytet Śląski Katowice wojciech.dzik@us.edu.pl 7. Forum Matematyków Polskich, 12-17 września 2016, Olsztyn

Prosty Automat do kawy Przemawiamy do automatu przy pomocy ciągów monet. Na wejściu (starcie) automatu są ciągi monet spośród: 5, 10, 20. Automat rozpoznaje (rozumie) te ciągi, ktorych suma = 20, wtedy wydaje kawę.

Prosty Automat do kawy Przemawiamy do automatu przy pomocy ciągów monet. Na wejściu (starcie) automatu są ciągi monet spośród: 5, 10, 20. Automat rozpoznaje (rozumie) te ciągi, ktorych suma = 20, wtedy wydaje kawę. Stany automatu wyznaczone są kwotą wrzuconych monet, mamy:

Prosty Automat do kawy Przemawiamy do automatu przy pomocy ciągów monet. Na wejściu (starcie) automatu są ciągi monet spośród: 5, 10, 20. Automat rozpoznaje (rozumie) te ciągi, ktorych suma = 20, wtedy wydaje kawę. Stany automatu wyznaczone są kwotą wrzuconych monet, mamy: stan początkowy:q 0, kwota = 0,

Prosty Automat do kawy Przemawiamy do automatu przy pomocy ciągów monet. Na wejściu (starcie) automatu są ciągi monet spośród: 5, 10, 20. Automat rozpoznaje (rozumie) te ciągi, ktorych suma = 20, wtedy wydaje kawę. Stany automatu wyznaczone są kwotą wrzuconych monet, mamy: stan początkowy:q 0, kwota = 0, q 1 kwota = 5, q 2 kwota = 10, q 3 kwota = 15,

Prosty Automat do kawy Przemawiamy do automatu przy pomocy ciągów monet. Na wejściu (starcie) automatu są ciągi monet spośród: 5, 10, 20. Automat rozpoznaje (rozumie) te ciągi, ktorych suma = 20, wtedy wydaje kawę. Stany automatu wyznaczone są kwotą wrzuconych monet, mamy: stan początkowy:q 0, kwota = 0, q 1 kwota = 5, q 2 kwota = 10, q 3 kwota = 15, stan końcowy: q 4, kwota = 20 (nie wydaje reszty)

Automat do kawy A K q 1 : 5 q 2 : 10 start q 0 : 0 q 4 : 20 q 3 : 15

Automat do kawy A K q 1 : 5 q 2 : 10 start q 0 : 0 q 4 : 20 q 3 : 15 Stan początkowy:q 0, kwota = 0, q 1 kwota = 5, q 2 kwota = 10, q 3 kwota = 15, stan końcowy: q 4, kwota = 20

Automat do kawy A K q 5 1 q 2 start q 0 5 20 10 10 10 5 q 4 q 3 5

Automat do kawy A K q 5 1 q 2 start q 0 5 20 10 10 10 5 q 4 q 3 5 ciągi (czyli słowa), które dają sukces (kawę) - słowa rozpoznane: (5, 5, 5, 5), (5, 5, 10), (5, 10, 5), (10, 5, 5), (10, 10), (20)

Automat do kawy A K q 5 1 q 2 start q 0 5 20 10 10 10 5 q 4 q 3 5

Automat do kawy A K q 5 1 q 2 start q 0 5 20 10 10 10 5 q 4 q 3 5 Automat rozpoznaje ( rozumie ) ciągi, czyli słowa: (5, 5, 5, 5), (5, 5, 10), (5, 10, 5), (10, 5, 5), (10, 10), (20). Słowa zbudowane z alfabetu Σ = {5, 10, 20}

Automat do kawy A K q 5 1 q 2 start q 0 5 20 10 10 10 5 q 4 q 3 5 Automat rozpoznaje ( rozumie ) ciągi, czyli słowa: (5, 5, 5, 5), (5, 5, 10), (5, 10, 5), (10, 5, 5), (10, 10), (20). Słowa zbudowane z alfabetu Σ = {5, 10, 20} L(A K ) = {(5, 5, 5, 5), (5, 5, 10), (5, 10, 5), (10, 5, 5), (10, 10), (20)}, język zaakceptowany przez A K.

Automat skończony Ogólnie: automat to (Q, Σ, δ, s, F ),

Automat skończony Ogólnie: automat to (Q, Σ, δ, s, F ), Q - skończony zbiór stanów, Σ - alfabet, skończony zbiór znaków, (symboli) δ : Q Σ Q - funkcja przejścia δ(q, a) to stan do którego przechodzimy ze stanu q na skutek wczytania znaku a, s to stan początkowy F - zbiór stanów końcowych (akceptujących)

Automat skończony Ogólnie: automat to (Q, Σ, δ, s, F ), Q - skończony zbiór stanów, Σ - alfabet, skończony zbiór znaków, (symboli) δ : Q Σ Q - funkcja przejścia δ(q, a) to stan do którego przechodzimy ze stanu q na skutek wczytania znaku a, s to stan początkowy F - zbiór stanów końcowych (akceptujących) Przykład. Automat do kawy: ({q 0,..., q 4 }, {5, 10, 20}, δ, q 0, {q 4 }) δ(q i, 5) = q i+1, i = 0,..., 3, δ(q i, 10) = q i+2, i = 0, 1, 2, δ(q 0, 20) = q 4.

Automat skończony, alfabet, słowa i język Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem, ε - słowo puste

Automat skończony, alfabet, słowa i język Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem, ε - słowo puste Przykłady. Σ = {a, b}, wtedy Σ : ε, a, b, aa, bb, ab, ba, aaa, bbb, aba, aab, baa,..., bbabaaab,...

Automat skończony, alfabet, słowa i język Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem, ε - słowo puste Przykłady. Σ = {a, b}, wtedy Σ : ε, a, b, aa, bb, ab, ba, aaa, bbb, aba, aab, baa,..., bbabaaab,... Σ = {0, 1}, wtedy Σ : ε, 0, 1, 00, 11, 01, 10, 000, 111, 010, 001, 100,...,

Automat skończony, alfabet, słowa i język Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem, ε - słowo puste Przykłady. Σ = {a, b}, wtedy Σ : ε, a, b, aa, bb, ab, ba, aaa, bbb, aba, aab, baa,..., bbabaaab,... Σ = {0, 1}, wtedy Σ : ε, 0, 1, 00, 11, 01, 10, 000, 111, 010, 001, 100,..., Działanie na słowach - konkatenacja (połączenie) słów: w 1 = a 1... a n, w 2 = b 1... b k, to wtedy w 1 w 2 = a 1... a n b 1... b k, łączne, nie przemienne,

Automat skończony, alfabet, słowa i język Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem, ε - słowo puste Przykłady. Σ = {a, b}, wtedy Σ : ε, a, b, aa, bb, ab, ba, aaa, bbb, aba, aab, baa,..., bbabaaab,... Σ = {0, 1}, wtedy Σ : ε, 0, 1, 00, 11, 01, 10, 000, 111, 010, 001, 100,..., Działanie na słowach - konkatenacja (połączenie) słów: w 1 = a 1... a n, w 2 = b 1... b k, to wtedy w 1 w 2 = a 1... a n b 1... b k, łączne, nie przemienne, ε jest elementem neutralnym: εw = wε = w monoid syntaktyczny Σ, z elementem neutralnym ε,

Automat skończony (Q, Σ, δ, s, F ) automat skończony,

Automat skończony (Q, Σ, δ, s, F ) automat skończony, δ : Q Σ Q - funkcja przejścia, rozszerzamy na δ : Q Σ Q - funkcja przejścia - następująco:

Automat skończony (Q, Σ, δ, s, F ) automat skończony, δ : Q Σ Q - funkcja przejścia, rozszerzamy na δ : Q Σ Q - funkcja przejścia - następująco: δ(q, ε) = q δ(q, wa) = δ(δ(q, w), a)

Automat skończony (Q, Σ, δ, s, F ) automat skończony, δ : Q Σ Q - funkcja przejścia, rozszerzamy na δ : Q Σ Q - funkcja przejścia - następująco: δ(q, ε) = q δ(q, wa) = δ(δ(q, w), a) Np. W A K : δ(q 0, 555) = q 3, δ(q 0, 5555) = q 4 Język j. rozpoznany, zaakcetowany przez automat A, tzn. L(A) = {w Σ : δ(s, w) F }

Automat skończony (Q, Σ, δ, s, F ) automat skończony, δ : Q Σ Q - funkcja przejścia, rozszerzamy na δ : Q Σ Q - funkcja przejścia - następująco: δ(q, ε) = q δ(q, wa) = δ(δ(q, w), a) Np. W A K : δ(q 0, 555) = q 3, δ(q 0, 5555) = q 4 Język j. rozpoznany, zaakcetowany przez automat A, tzn. L(A) = {w Σ : δ(s, w) F } W A K słowo 555 nie jest rozpoznane, słowo 5555 - rozpoznane

Automat skończony (Q, Σ, δ, s, F ) automat skończony, δ : Q Σ Q - funkcja przejścia, rozszerzamy na δ : Q Σ Q - funkcja przejścia - następująco: δ(q, ε) = q δ(q, wa) = δ(δ(q, w), a) Np. W A K : δ(q 0, 555) = q 3, δ(q 0, 5555) = q 4 Język j. rozpoznany, zaakcetowany przez automat A, tzn. L(A) = {w Σ : δ(s, w) F } W A K słowo 555 nie jest rozpoznane, słowo 5555 - rozpoznane Język jest regularny gdy jest rozpoznawany przez jakiś automat, czyli L = L(A) dla pewnego automatu skończonego A.

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0).

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0). Język L nad alfabetem Σ to dowolny podzbiór L Σ.

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0). Język L nad alfabetem Σ to dowolny podzbiór L Σ.

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0). Język L nad alfabetem Σ to dowolny podzbiór L Σ. Działania: (L 1, L 2 Σ ) L 1 L 2 = {w : w L 1 lub w L 2 }, złożenie L 1 L 2 = {w 1 w 2 : w 1 L 1, w 2 L 2 }, piszemy : L 1 L 2, {ε} = L 0, L = L 1, LL = L 2, LLL = L 3 itd.

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0). Język L nad alfabetem Σ to dowolny podzbiór L Σ. Działania: (L 1, L 2 Σ ) L 1 L 2 = {w : w L 1 lub w L 2 }, złożenie L 1 L 2 = {w 1 w 2 : w 1 L 1, w 2 L 2 }, piszemy : L 1 L 2, {ε} = L 0, L = L 1, LL = L 2, LLL = L 3 itd. Gwiazdka Kleenego, domknięcie Kleenego L języka L: L = {L k : k = 0, 1, 2,... },

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0). Język L nad alfabetem Σ to dowolny podzbiór L Σ. Działania: (L 1, L 2 Σ ) L 1 L 2 = {w : w L 1 lub w L 2 }, złożenie L 1 L 2 = {w 1 w 2 : w 1 L 1, w 2 L 2 }, piszemy : L 1 L 2, {ε} = L 0, L = L 1, LL = L 2, LLL = L 3 itd. Gwiazdka Kleenego, domknięcie Kleenego L języka L: L = {L k : k = 0, 1, 2,... }, także L 1 L 2 oraz dopełnienie L = Σ \ L. Równania na językach, np.: jeżeli ε / A to równanie X = AX B ma dokładnie jedno rozwiązanie X =

Języki i działania na nich Σ alfabet (skończony zbiór znaków), Σ zbiór wszystkich słów nad alfabetem Σ, tj. zbiór wszystkich skończonych ciągów nad alfabetem i ε (długości 0). Język L nad alfabetem Σ to dowolny podzbiór L Σ. Działania: (L 1, L 2 Σ ) L 1 L 2 = {w : w L 1 lub w L 2 }, złożenie L 1 L 2 = {w 1 w 2 : w 1 L 1, w 2 L 2 }, piszemy : L 1 L 2, {ε} = L 0, L = L 1, LL = L 2, LLL = L 3 itd. Gwiazdka Kleenego, domknięcie Kleenego L języka L: L = {L k : k = 0, 1, 2,... }, także L 1 L 2 oraz dopełnienie L = Σ \ L. Równania na językach, np.: jeżeli ε / A to równanie X = AX B ma dokładnie jedno rozwiązanie X = A B (rozw. Arden).

Automat skończony Σ = {a, b} b a, b q a start 0 q 1

Automat skończony Σ = {a, b} b a, b q a start 0 q 1 rozpoznaje słowa np. : a, ba, bba, b... ba,..., aa, ab, aba, abb,... rozpoznaje wszystkie słowa zawierające choć raz literę a

Automat skończony Σ = {a, b} b a, b q a start 0 q 1 rozpoznaje słowa np. : a, ba, bba, b... ba,..., aa, ab, aba, abb,... rozpoznaje wszystkie słowa zawierające choć raz literę a L(A) = {w Σ : w zawiera choć raz literę a}.

Automat liczący Σ = {0, 1} 0 1 0 1 q 0 start q 1 q 2 1 0

Automat liczący Σ = {0, 1} 0 1 0 1 q 0 start q 1 q 2 1 0 rozpoznaje np. : 0, 11, 110, 1001, 1100, 1111, 10010,.. nie 100 co to za słowa?

Automat liczący Σ = {0, 1} 0 1 0 1 q 0 start q 1 q 2 1 0 rozpoznaje np. : 0, 11, 110, 1001, 1100, 1111, 10010,.. nie 100 co to za słowa? 0 (2) = 0, 11 (2) = 1 2 1 + 1 2 0 = 3,

Automat liczący Σ = {0, 1} 0 1 0 1 q 0 start q 1 q 2 1 0 rozpoznaje np. : 0, 11, 110, 1001, 1100, 1111, 10010,.. nie 100 co to za słowa? 0 (2) = 0, 11 (2) = 1 2 1 + 1 2 0 = 3, 110 (2) = 1 2 2 + 1 2 1 + 0 2 0 = 6,

Automat liczący Σ = {0, 1} 0 1 0 1 q 0 start q 1 q 2 1 0 rozpoznaje np. : 0, 11, 110, 1001, 1100, 1111, 10010,.. nie 100 co to za słowa? 0 (2) = 0, 11 (2) = 1 2 1 + 1 2 0 = 3, 110 (2) = 1 2 2 + 1 2 1 + 0 2 0 = 6, 1001 (2) = 9, 1100 (2) = 12, 1111 (2) = 15, 10010 (2) = 18, itd. nie rozpoznaje 100 (2) = 4

Automat liczący Σ = {0, 1} 0 1 0 1 q 0 start q 1 q 2 1 0 rozpoznaje np. : 0, 11, 110, 1001, 1100, 1111, 10010,.. nie 100 co to za słowa? 0 (2) = 0, 11 (2) = 1 2 1 + 1 2 0 = 3, 110 (2) = 1 2 2 + 1 2 1 + 0 2 0 = 6, 1001 (2) = 9, 1100 (2) = 12, 1111 (2) = 15, 10010 (2) = 18, itd. nie rozpoznaje 100 (2) = 4 L(A) = {z Σ : z zapis w układzie binarnym - dzieli się przez 3}

Projektowanie automatów Zadanie: dla Σ = {0.1}, zbudować automat, który rozpoznaje wszystkie słowa nad Σ, ktore mają nieparzystą ilość jedynek. Takie skończone słowo może być bardzo długie, np. stąd do Księzyca, a automat nie ma pamięci, aby to zliczyć.

Projektowanie automatów Zadanie: dla Σ = {0.1}, zbudować automat, który rozpoznaje wszystkie słowa nad Σ, ktore mają nieparzystą ilość jedynek. Takie skończone słowo może być bardzo długie, np. stąd do Księzyca, a automat nie ma pamięci, aby to zliczyć. start Par NPar

Projektowanie automatów Zadanie: dla Σ = {0.1}, zbudować automat, który rozpoznaje wszystkie słowa nad Σ, ktore mają nieparzystą ilość jedynek. Takie skończone słowo może być bardzo długie, np. stąd do Księzyca, a automat nie ma pamięci, aby to zliczyć. start Par NPar 0 1 0 start Par NPar 1

Automaty skończone niedeterministyczne Dotychczas rozważaliśmy automaty deterministyczne - δ : Q Σ Q była funkcją, δ(q, w) jednoznacznie określone. A gdyby nie? wtedy automaty niedeterministyczne.

Automaty skończone niedeterministyczne Dotychczas rozważaliśmy automaty deterministyczne - δ : Q Σ Q była funkcją, δ(q, w) jednoznacznie określone. A gdyby nie? wtedy automaty niedeterministyczne. Σ = {a, b}. Zbudować automat rozpoznający słowa, w ktorych drugi symbol od końca = a.

Automaty skończone niedeterministyczne Dotychczas rozważaliśmy automaty deterministyczne - δ : Q Σ Q była funkcją, δ(q, w) jednoznacznie określone. A gdyby nie? wtedy automaty niedeterministyczne. Σ = {a, b}. Zbudować automat rozpoznający słowa, w ktorych drugi symbol od końca = a. a, b q a a,b start 0 q 1 q 2

Automaty skończone niedeterministyczne Dotychczas rozważaliśmy automaty deterministyczne - δ : Q Σ Q była funkcją, δ(q, w) jednoznacznie określone. A gdyby nie? wtedy automaty niedeterministyczne. Σ = {a, b}. Zbudować automat rozpoznający słowa, w ktorych drugi symbol od końca = a. a, b q a a,b start 0 q 1 q 2 δ(q 0, a) = q 0 albo = q 1 - automat niedeterministyczny, δ nie jest funkcją, δ(q 0, a) = {q 0, q 1 } - zbiór,

Automaty skończone niedeterministyczne Dotychczas rozważaliśmy automaty deterministyczne - δ : Q Σ Q była funkcją, δ(q, w) jednoznacznie określone. A gdyby nie? wtedy automaty niedeterministyczne. Σ = {a, b}. Zbudować automat rozpoznający słowa, w ktorych drugi symbol od końca = a. a, b q a a,b start 0 q 1 q 2 δ(q 0, a) = q 0 albo = q 1 - automat niedeterministyczny, δ nie jest funkcją, δ(q 0, a) = {q 0, q 1 } - zbiór, L(A) = {w Σ : δ(s, w) F }, słowo jest rozpoznane jeżeli uda się znaleć przejście od startu s (tu q 0 ) do zbioru stanów końcowych F (tu q 2 )

Automat deterministyczny z niedeterministycznego b q a start 0 q 1 a b a b q 3 b q 2 a

Automat deterministyczny z niedeterministycznego b q a start 0 q 1 a b a b q 3 b q 2 L(A) = {w Σ : δ(s, w) F }, gdzie F = {q 2, q 3 }, a

Automat deterministyczny z niedeterministycznego b q a start 0 q 1 a b a b q 3 b q 2 L(A) = {w Σ : δ(s, w) F }, gdzie F = {q 2, q 3 }, L(A) = {w Σ : w ma drugi symbol od końca = a}. a

Automaty skończone Twierdzenie. Istnieje procedura (algorytm) pozwalająca dla każdego automatu skończonego niedeterministycznego A zbudować automat skończony deterministyczny A, który rozpoznaje ten sam język, tzn. L(A) = L(A ).

Automaty skończone Twierdzenie. Istnieje procedura (algorytm) pozwalająca dla każdego automatu skończonego niedeterministycznego A zbudować automat skończony deterministyczny A, który rozpoznaje ten sam język, tzn. L(A) = L(A ). Nie za darmo: jeżeli A ma n elementów, to deterministyczny A może mieć do 2 n elementów.

Automaty skończone Twierdzenie. Istnieje procedura (algorytm) pozwalająca dla każdego automatu skończonego niedeterministycznego A zbudować automat skończony deterministyczny A, który rozpoznaje ten sam język, tzn. L(A) = L(A ). Nie za darmo: jeżeli A ma n elementów, to deterministyczny A może mieć do 2 n elementów. Istnieją procedury pozwalające znależć automat skończony minimalny (ze względu na liczbę elementów).

Twierdzenie Kleenego Fakt 1. Każdy język skończony jest regularny, tj. posiada automat skończony, który go rozpoznaje. Lemat 1. Jeżeli L 1 = L(A 1 ) i L 2 = L(A 2 ) oraz A 1, A 2 są deterministyczne, to można efektywnie zbudować automat deterministyczny A 3 taki, że L 1 L 2 = L(A 3 ).

Twierdzenie Kleenego Lemat 2. Jeżeli L 1 = L(A 1 ) i L 2 = L(A 2 ) oraz A 1, A 2 są deterministyczne, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 3 taki, że L 1 L 2 = L(A 3 ).

Twierdzenie Kleenego Lemat 2. Jeżeli L 1 = L(A 1 ) i L 2 = L(A 2 ) oraz A 1, A 2 są deterministyczne, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 3 taki, że L 1 L 2 = L(A 3 ). Lemat 3. Jeżeli L = L(A) i A jest deterministyczny, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 0 taki, że L = L(A 0 ).

Twierdzenie Kleenego Lemat 2. Jeżeli L 1 = L(A 1 ) i L 2 = L(A 2 ) oraz A 1, A 2 są deterministyczne, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 3 taki, że L 1 L 2 = L(A 3 ). Lemat 3. Jeżeli L = L(A) i A jest deterministyczny, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 0 taki, że L = L(A 0 ). Wniosek. Jeżeli język da się zbudować ze skończonej ilości języków skończonych, przy pomocy operacji,,, to jest on regularny, tzn. można efektywnie zbudować automat (na ogół niedeterministyczny), ktory go rozpoznaje.

Twierdzenie Kleenego Lemat 2. Jeżeli L 1 = L(A 1 ) i L 2 = L(A 2 ) oraz A 1, A 2 są deterministyczne, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 3 taki, że L 1 L 2 = L(A 3 ). Lemat 3. Jeżeli L = L(A) i A jest deterministyczny, to można efektywnie zbudować automat (na ogół niedeterministyczny) A 0 taki, że L = L(A 0 ). Wniosek. Jeżeli język da się zbudować ze skończonej ilości języków skończonych, przy pomocy operacji,,, to jest on regularny, tzn. można efektywnie zbudować automat (na ogół niedeterministyczny), ktory go rozpoznaje. Twierdzenie Kleenego mówi, ze jest też na odwrót - że wszystkie języki regularne można tak otrzymać.

Twierdzenie Kleenego Twierdzenie Kleenego. Język jest zbudowany ze skończonej ilości języków skończonych, przy pomocy operacji.,, wtedy i tylko wtedy, gdy jest on regularny, tzn. można efektywnie zbudować automat (na ogół niedeterministyczny), ktory go rozpoznaje.

Twierdzenie Kleenego Twierdzenie Kleenego. Język jest zbudowany ze skończonej ilości języków skończonych, przy pomocy operacji.,, wtedy i tylko wtedy, gdy jest on regularny, tzn. można efektywnie zbudować automat (na ogół niedeterministyczny), ktory go rozpoznaje. Przykłady. L(A) = {w Σ : w zawiera choć raz literę a}= {b} {a}{a, b}, L(A) = {w Σ : w ma drugi symbol od końca = a} = {a, b} {a}{a} {a, b} {a}{b} = {a, b} {a}{a, b}.

Języki nieregularne, bezkontekstowe Palindrom to słowo w = a 1... a n takie, że w R = a n... a 1, czytane od końca jest takie samo jak czytane od początku: w = w R.

Języki nieregularne, bezkontekstowe Palindrom to słowo w = a 1... a n takie, że w R = a n... a 1, czytane od końca jest takie samo jak czytane od początku: w = w R. oko, ala, abba, możejutrotadamadatortujeżom, devillived itp. Σ = {a, b}

Języki nieregularne, bezkontekstowe Palindrom to słowo w = a 1... a n takie, że w R = a n... a 1, czytane od końca jest takie samo jak czytane od początku: w = w R. oko, ala, abba, możejutrotadamadatortujeżom, devillived itp. Σ = {a, b} Palindromy (parzyste) np. abba, aa, bb,

Języki nieregularne, bezkontekstowe Palindrom to słowo w = a 1... a n takie, że w R = a n... a 1, czytane od końca jest takie samo jak czytane od początku: w = w R. oko, ala, abba, możejutrotadamadatortujeżom, devillived itp. Σ = {a, b} Palindromy (parzyste) np. abba, aa, bb, Palindromy (nieparzyste) np.: a, aba, aaa, bab, bbb,

Języki nieregularne, bezkontekstowe Palindrom to słowo w = a 1... a n takie, że w R = a n... a 1, czytane od końca jest takie samo jak czytane od początku: w = w R. oko, ala, abba, możejutrotadamadatortujeżom, devillived itp. Σ = {a, b} Palindromy (parzyste) np. abba, aa, bb, Palindromy (nieparzyste) np.: a, aba, aaa, bab, bbb, Palindromy nie tworzą języka regularnego, ale język bezkontekstowy, tj. generowany przez gramatykę bezkontekstową (Noam Chomsky). Podobnie język {a n b n : n = 1, 2,... } ab, aabb, aaabbb,... czyli ab, a 2 b 2, a 3 b 3,...

Języki nieregularne, bezkontekstowe Palindrom to słowo w = a 1... a n takie, że w R = a n... a 1, czytane od końca jest takie samo jak czytane od początku: w = w R. oko, ala, abba, możejutrotadamadatortujeżom, devillived itp. Σ = {a, b} Palindromy (parzyste) np. abba, aa, bb, Palindromy (nieparzyste) np.: a, aba, aaa, bab, bbb, Palindromy nie tworzą języka regularnego, ale język bezkontekstowy, tj. generowany przez gramatykę bezkontekstową (Noam Chomsky). Podobnie język {a n b n : n = 1, 2,... } ab, aabb, aaabbb,... czyli ab, a 2 b 2, a 3 b 3,... Automat skończony tu nie wystarcza, trzeba dodać tzw. stos, automaty ze stosem rozpoznają palindromy i {a n b n : n = 1, 2,... }.

Języki nieregularne, bezkontekstowe Gramatyki bezkontekstowe (N. Chomsky)

Języki nieregularne, bezkontekstowe Gramatyki bezkontekstowe (N. Chomsky) Przykład: język {a n b n : n = 1, 2,... } można generować gramatyką bezkontekstową.

Języki nieregularne, bezkontekstowe Gramatyki bezkontekstowe (N. Chomsky) Przykład: język {a n b n : n = 1, 2,... } można generować gramatyką bezkontekstową. Reguły (produkcje): 1. S asb 2. S ε

Języki nieregularne, bezkontekstowe Gramatyki bezkontekstowe (N. Chomsky) Przykład: język {a n b n : n = 1, 2,... } można generować gramatyką bezkontekstową. Reguły (produkcje): 1. S asb 2. S ε Np. S asb ab, 1, 2.

Języki nieregularne, bezkontekstowe Gramatyki bezkontekstowe (N. Chomsky) Przykład: język {a n b n : n = 1, 2,... } można generować gramatyką bezkontekstową. Reguły (produkcje): 1. S asb 2. S ε Np. S asb ab, 1, 2. S asb aasbb aabb 1, 1, 2.

Języki nieregularne, bezkontekstowe Gramatyki bezkontekstowe (N. Chomsky) Przykład: język {a n b n : n = 1, 2,... } można generować gramatyką bezkontekstową. Reguły (produkcje): 1. S asb 2. S ε Np. S asb ab, 1, 2. S asb aasbb aabb 1, 1, 2. S asb aasbb aaasbbb aaabbb 1, 1, 1, 2 etc.

Jaki język zrozumie, rozpozna automat (skończony)? język regularny, tj. zbudowany z języków skończonych, przy pomocy operacji,,.

Jaki język zrozumie, rozpozna automat (skończony)? język regularny, tj. zbudowany z języków skończonych, przy pomocy operacji,,. Automaty ze stosem rozpoznają języki bezkontekstowe,

Jaki język zrozumie, rozpozna automat (skończony)? język regularny, tj. zbudowany z języków skończonych, przy pomocy operacji,,. Automaty ze stosem rozpoznają języki bezkontekstowe, Ale to jeszcze daleko do naszgo komputera, ktory jest odpowiednikiem tzw. Maszyny Turinga.

Literatura: Devlin, Keith, Żegnaj Kartezjuszu. Rozstanie z logiką..., Prószyński Warszawa, 1999. Hopcroft, J.E., Motwani, R. Ullman, J.D. Wprowadzenie do teorii automatów, jązyków i obliczeń, PWN, 2012. Howie J. M., Automata and Languages, Oxford Science Publications, 1991. Sipser, M., Wprowadzenie do teorii obliczeń, WNT, 2009.