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

Podobne dokumenty
Symbol, alfabet, łańcuch

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Teoria automatów i języków formalnych. Określenie relacji

Języki formalne i automaty Ćwiczenia 1

Języki, automaty i obliczenia

Maszyna Turinga języki

Jaki język zrozumie automat?

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

Hierarchia Chomsky ego Maszyna Turinga

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}

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)

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

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

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

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:

Gramatyki rekursywne

Uwaga 1. Zbiory skończone są równoliczne wtedy i tylko wtedy, gdy mają tyle samo elementów.

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

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

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

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

JAO - Wprowadzenie do Gramatyk bezkontekstowych

n=0 Dla zbioru Cantora prawdziwe są wersje lematu 3.6 oraz lematu 3.8 przy założeniu α = :

1 Działania na zbiorach

R O Z D Z I A Ł I. Podstawowe pojęcia i ogólne twierdzenia lingwistyki matematycznej. 1. WyraŜenia, języki, gramatyki

Zasada indukcji matematycznej

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

Rodzinę spełniającą trzeci warunek tylko dla sumy skończonej nazywamy ciałem (algebrą) w zbiorze X.

O pewnych związkach teorii modeli z teorią reprezentacji

Języki formalne i automaty Ćwiczenia 9

Równoliczność zbiorów

Gramatyka operatorowa

Języki formalne i automaty Ćwiczenia 3

Teoria ciała stałego Cz. I

Kombinowanie o nieskończoności. 3. Jak policzyć nieskończone materiały do ćwiczeń

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

domykanie relacji, relacja równoważności, rozkłady zbiorów

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Imię, nazwisko, nr indeksu

Podstawowe struktury algebraiczne

Relacje. opracował Maciej Grzesiak. 17 października 2011

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

Zbiory, relacje i funkcje

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

Rozważmy funkcję f : X Y. Dla dowolnego zbioru A X określamy. Dla dowolnego zbioru B Y określamy jego przeciwobraz:

R O Z D Z I A Ł V I I

Matematyka dyskretna. 1. Relacje

Notatki z Analizy Matematycznej 1. Jacek M. Jędrzejewski

Języki formalne i automaty Ćwiczenia 6

Robert Kowalczyk. Zbiór zadań z teorii miary i całki

ZALICZENIE WYKŁADU: 30.I.2019

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

Wstęp do Matematyki (3)

Uwaga 1.2. Niech (G, ) będzie grupą, H 1, H 2 < G. Następujące warunki są równoważne:

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Krzysztof Rykaczewski. Szeregi

Matematyczne Podstawy Informatyki

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

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

1 Określenie pierścienia

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 = θ.

1.UKŁADY RÓWNAŃ LINIOWYCH

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

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

Rozdział 6. Ciągłość. 6.1 Granica funkcji

Wykład ze Wstępu do Logiki i Teorii Mnogości

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

Hierarchia Chomsky ego

Zbiory liczbowe widziane oczami topologa

Systemy algebraiczne. Materiały pomocnicze do wykładu. przedmiot: Matematyka Dyskretna 1 wykładowca: dr Magdalena Kacprzak

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

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

Wstęp do Matematyki (4)

jest rozwiązaniem równania jednorodnego oraz dla pewnego to jest toŝsamościowo równe zeru.

Wykład 1: Przestrzeń probabilistyczna. Prawdopodobieństwo klasyczne. Prawdopodobieństwo geometryczne.

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

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

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

W pewnym mieście jeden z jej mieszkańców goli wszystkich tych i tylko tych jej mieszkańców, którzy nie golą się

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

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

WIELOMIANY I FUNKCJE WYMIERNE

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

Wyk lad 2 Podgrupa grupy

Języki formalne i automaty Ćwiczenia 2

Układy równań liniowych. Ax = b (1)

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

Zadanie analizy leksykalnej

Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G.

O MACIERZACH I UKŁADACH RÓWNAŃ

Definicja i własności wartości bezwzględnej.

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.

Matematyczne Podstawy Informatyki

Definicja: alfabetem. słowem długością słowa

Rozdział 4. Ciągi nieskończone. 4.1 Ciągi nieskończone

Teoria miary. WPPT/Matematyka, rok II. Wykład 5

Relacje. 1 Iloczyn kartezjański. 2 Własności relacji

Teoria miary. Matematyka, rok II. Wykład 1

GRAMATYKI BEZKONTEKSTOWE

Transkrypt:

Języki i operacje na językach Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Definicja języka Definicja języka Niech Σ będzie alfabetem, Σ* - zbiorem wszystkich łańcuchów nad alfabetem Σ. Dowolny podzbiór L zbioru Σ* nazywamy językiem L nad alfabetem Σ. L Σ* Przykłady: L 0 = Ø L 1 = {ε} L 2 = Σ* L 3 = {ε, 0, 01, 001} - język pusty - język zawierający tylko słowo puste - język zawierający wszystkie słowa nad alfabetem Σ - język zawierający skończoną liczbę słów L 4 = {0, 01, 011, 0111,...} = {01 n n 0} - język nieskończony

Operacje na językach (1) Niech L, L 1 i L 2 będą językami odpowiednio nad alfabetami Σ, Σ 1 i Σ 2. L Σ* L 1 Σ 1 * L 2 Σ 2 * Najczęściej wykorzystuje się następujące operacje na językach: Suma teoriomnogościowa L 1 L 2 = { x x L 1 x L 2 } ZłoŜenie języków L 1 L 2 = { x 1 x 2 x 1 L 1 x 2 L 2 } Domknięcie Kleene ego (gwiazdka Kleene go) L* L 0 = {ε} L 1 = L L 2 = L 1 L... L n = L n-1 L L* = L 0 L 1 L 2 L 3... L + = L 1 L 2 L 3... Operacje na językach (2) Rozpatruje się takŝe operacje przecięcia (iloczynu teoriomnogościowego), dopełnienia, podstawienia, homomorfizmu i ilorazu. Przecięcie (iloczyn teoriomnogościowy) L 1 L 2 = { x x L 1 x L 2 } Dopełnienie języka L względem Σ* L= Σ * Iloraz języków L Niech będą dane dwa języki: L 1 Σ*, L 2 Σ*. Definiujemy iloraz L 1 /L 2 tych języków jako: L 1 /L 2 = { x ( y L 2 ) (xy L 1 ) }

Przypomnienie definicji ilorazu Operacje na językach (3) L 1 /L 2 = { x ( y L 2 ) (xy L 1 ) } RozwaŜamy języki: L 1 = {0 n 10 m m 0, n 0} = ={1, 01, 10, 001, 010, 100, 0001, 0010, 0100, 1000,...} L 2 = {10 n 1 n 0} = {11, 101, 1001, 10001,...} L 1 /L 2 = gdyŝ kaŝdy łańcuch y L 2 zawiera dwie jedynki, a kaŝdy łańcuch xy L 1 moŝe zawierać tylko jedną jedynkę, więc nie istnieje łańcuch x, taki Ŝe xy L 1 i y L 2. Operacje na językach (4) Przypomnienie definicji ilorazu L 1 /L 2 = { x ( y L 2 ) (xy L 1 ) } RozwaŜamy języki: L 1 = {0 n 10 m m 0, n 0} = ={1, 01, 10, 001, 010, 100, 0001, 0010, 0100, 1000,...} L 3 = {0 n 1 n 0} = {1, 01, 001, 0001,...} L 1 /L 3 = {0 n n 0} = {ε, 0, 00, 000,...} gdyŝ w rachubę wchodzą tylko słowa 1, 01, 001, 0001,... z L 1 i wszystkie słowa z L 3 (choć wystarczyłoby tylko słowo 1).

Operacje na językach (5) Przypomnienie definicji ilorazu L 1 /L 2 = { x ( y L 2 ) (xy L 1 ) } RozwaŜamy języki: L 2 = {10 n 1 n 0} = {11, 101, 1001, 10001,...} L 3 = {0 n 1 n 0} = {1, 01, 001, 0001,...} L 2 /L 3 = {10 n n 0} = {1, 10, 100, 1000,...}. Podstawienia (1) Podstawienie f jest odwzorowaniem alfabetu Σ na podzbiory zbioru Γ* dla pewnego alfabetu Γ. Zatem f przyporządkowuje kaŝdemu symbolowi z Σ pewien język. f: Σ 2 Γ* Odwzorowanie f rozszerzamy na łańcuchy f: Σ * 2 Γ* w następujący sposób: (1) f(ε) = {ε} (2) f(xa) = f(x)f(a) Wreszcie odwzorowanie f rozszerzamy na zbiory łańcuchów, czyli na języki f: 2 Σ* 2 Γ* definiując: f(l) = f(x) x L

Podstawienia (2) Przykład: Niech Σ = {0, 1} Γ = {a, b} f(0) = {a} f(1) = {b n n 0} = {ε, b, bb, bbb,...} Wtedy dla łańcucha 010 mamy: f(010) = {a} {b n n 0} {a} = {aa, aba, abba, abbba,...} = {ab n a n 0} Niech Wtedy L = {0 m 1 m 0} = {1, 01, 001, 0001,...} f(l) = {a m b n m 0, n 0} = = {ε, b, bb, bbb,..., a, ab, abb, abbb,..., aa, aab, aabb, aabbb,..., aaa, aaab, aaabb,...} Homomorfizmy (1) Homomorfizmem h nazywany takie podstawienie, które kaŝdemu symbolowi alfabetu Σ przypisuje dokładnie jeden łańcuch ze zbioru Γ*, czyli homomorfizm to odwzorowanie: h: Σ Γ * Rozszerzamy odwzorowanie h na łańcuchy h: Σ * Γ * w taki sam sposób, jak to miało miejsce z podstawieniem: (1) h(ε) = ε (2) h(xa) = h(x)h(a) Dalej rozszerzamy homomorfizm h na języki h: 2 Σ* 2 Γ* w taki sam sposób, jak podstawienie h(l) = h(x) x L

Homomorfizmy (2) Definiujemy przeciwobraz homomorficzny h -1 (x) łańcucha x jako: h -1 (x) = {y h(y) = x} oraz przeciwobraz homomorficzny h -1 (L) języka L jako: h -1 (L) = {x h(x) L} Zachodzi przy tym: h -1 (h(l)) L oraz: h(h -1 (L)) L Homomorfizmy (3) Przykład: Niech Σ = {0, 1, 2} oraz Γ = {a, b} h(0) = a h(1) = aab h(2) = ab Wtedy dla łańcucha 012 mamy: h(012) = aaabab Niech: L = {01, 02} Wtedy: h(l) = {aaab, aab} Wyznaczmy h -1 (h(l)) h -1 (h(l)) = {002, 01, 02, 1} L Widzimy, Ŝe: h -1 (h(l)) L

Homomorfizmy (4) Przykład: Niech Niech Σ = {0, 1} oraz Γ = {a, b} h(0) = aa h(1) = aba Wtedy L = {(ab) n a n 0} = {a, aba, ababa, abababa,...} h -1 (L) = {1} Wyznaczmy h(h -1 (L)) h(h -1 (L)) = {aba} L Widzimy, Ŝe: h(h -1 (L)) L Przedrostki, przyrostki (1) Niech z L Σ * będzie słowem z języka L. Przedstawimy z w postaci: z = xy x,y Σ * x nazywamy przedrostkiem (prefiksem) słowa z, zaś y nazywamy przyrostkiem (sufiksem) słowa z. x nazywamy przedrostkiem właściwym słowa z y ε. y nazywamy przyrostkiem właściwym słowa z x ε. Przykład: RozwaŜamy słowo abbb Przedrostki tego słowa to: ε, a, ab, abb, abbb Przedrostki właściwe tego słowa to: ε, a, ab, abb

Przedrostki, przyrostki (2) Język L ma własność przedrostkową gdy: ( z L ) ( s będącego przedrostkiem właściwym słowa z L ) ( s L ) czyli język ma własność przedrostkową, jeśli Ŝaden przedrostek właściwy słowa tego języka nie jest identyczny z Ŝadnym słowem tego języka. Język L ma własność przyrostkową gdy: ( z L ) ( s będącego przyrostkiem właściwym słowa z L ) ( s L ) czyli język ma własność przyrostkową, jeśli Ŝaden przyrostek właściwy słowa tego języka nie jest identyczny z Ŝadnym słowem tego języka. Przedrostki, przyrostki (3) Przykład : L = {10 n n 0} = {1, 10, 100, 1000,...} L nie posiada własności przedrostkowej, gdyŝ np. słowo 1000 ma przedrostek właściwy 10 będący słowem tego języka. L posiada własność przyrostkową, gdyŝ wszystkie przyrostki właściwe słów tego języka mają postać {0 n n 0}, i Ŝaden z nich nie jest identyczny z Ŝadnym słowem tego języka.

Uporządkowanie słów naleŝących do języka Zbiór słownikowy moŝna uwaŝać za zbiór liniowo lub dobrze uporządkowany, np. poprzez porządek leksykograficzny (Σ*, L ) lub standardowy (Σ*, S ). W taki sam sposób moŝna uporządkować słowa dowolnego języka L Σ* (określając relację na alfabecie Σ oraz redukując relację S lub L określoną na Σ* do L). Mówimy wówczas o leksykograficznym lub standardowym porządku słów danego języka. Przykładem porządku leksykograficznego L dla skończonych zbiorów (języków) moŝe być uporządkowanie słów w encyklopediach, słownikach, leksykonach wówczas jest powszechnie przyjętym uporządkowaniem liter w alfabecie pewnego języka naturalnego. Moc zbioru wszystkich języków (1) Lemat: Zbiór B wszystkich nieskończonych ciągów zerojedynkowych jest nieprzeliczalny. ZałóŜmy dla dowodu nie wprost, Ŝe zbiór wszystkich nieskończonych łańcuchów zerojedynkowych jest przeliczalny. MoŜna więc te łańcuchy wypisać i ponumerować, na przykład tak: numer 1 2 3 4 łańcuch 01100010010100 10001001001110 01110101010010 11101100111011 Skonstruujemy łańcuch x róŝny od wszystkich wypisanych łańcuchów. Jeśli n-ty łańcuch ma na n-tej pozycji zero, to x będzie miał na n-tej pozycji jedynkę i na odwrót, jeśli n-ty łańcuch ma na n-tej pozycji jedynkę, to x będzie miał na n-tej pozycji zero. U nas x = 1101 Łańcuch x jest róŝny co najmniej na jednej pozycji od kaŝdego z wypisanych łańcuchów, wobec tego jest róŝny od kaŝdego z wszystkich łańcuchów. Doszliśmy do sprzeczności. Zbioru wszystkich nieskończonych łańcuchów zerojedynkowych nie da się ponumerować, jest to więc zbiór nieprzeliczalny. (Jest to metoda diagonalizacji Cantora).

Moc zbioru wszystkich języków (2) Twierdzenie: Zbiór L = 2 Σ* wszystkich języków (wszystkich podzbiorów zbioru Σ* - zbioru słownikowego nad danym alfabetem Σ) jest nieprzeliczalny. PokaŜemy, Ŝe L jest nieprzeliczalny konstruując bijekcję między B (zbiorem wszystkich nieskończonych łańcuchów zerojedynkowych) i L dowodzącą, Ŝe oba te zbiory są tej samej mocy. Ponumerujmy słowa z Σ* (wiadomo, Ŝe moŝna, np. stosując porządek standardowy): Σ* = {s 1, s 2, s 3, }. KaŜdy język L L = 2 Σ* odpowiada unikalnemu ciągowi z B i-ty bit tego ciągu jest równy jeden wtedy i tylko wtedy, gdy s i L, w przeciwnym przypadku bit ten jest równy zero. Taki ciąg nazywamy ciągiem charakterystycznym χ L języka L. Przykład: Σ = {a, b} Σ* = { ε, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, } L = { a, aa, ab, bb, aaa, aab, abb, } χ L = 0 1 0 1 1 0 1 1 1 0 1 0 Odwzorowanie f: L B, gdzie f(l)= χ L jest bijekcją, zatem, poniewaŝ B jest nieprzeliczalny, to L takŝe jest nieprzeliczalny. Relacja indukowana przez język (1) Relacja prawostronnie niezmiennicza Relację R Σ* Σ* (gdzie Σ jest skończonym alfabetem symboli) nazywamy prawostronnie niezmienniczą wtedy i tylko wtedy, gdy ( u,v Σ*) (u R v ( z Σ*) uz R vz) Przykładem relacji prawostronnie niezmienniczej jest relacja R L indukowana przez język L Relacja indukowana przez język Relacją indukowaną przez język L Σ* nazywamy relację R L Σ* Σ* (gdzie Σ jest skończonym alfabetem symboli) taką, Ŝe ( u,v Σ*) (ur L v (( z Σ*) uz L vz L)) Uzasadnienie, Ŝe relacja R L jest relacją prawostronnie niezmienniczą moŝna znaleźć na stronie http://kompilatory.agh.edu.pl Relacja R L indukowana przez język L jest relacją równowaŝności. Relacja równowaŝności o indeksie skończonym Mówimy, Ŝe relacja równowaŝności jest relacją o indeksie skończonym, jeŝeli ta relacja równowaŝności posiada skończoną liczbę klas abstrakcji.

Przykład: Dany jest język: Relacja indukowana przez język (2) {a m b n c k m+n > 0; n+k > 0} Znaleźć liczbę klas abstrakcji relacji R L. RozwaŜymy następujące zbiory: K 0 = {ε} K 1 = {a p p 1} K 2 = {a p b r p 0; r 1} K 3 = {a p b q c r p+q 1, r 1} K 4 pozostałe słowa nad alfabetem Σ = {a, b, c} Zbiory K 0, K 1, K 2, K 3, K 4 stanowią podział zbioru wszystkich słów nad alfabetem Σ = {a,b,c}. MoŜna uzasadnić, Ŝe kaŝde dwa słowa z dowolnego ze zbiorów K 0, K 1, K 2, K 3, K 4 pozostają ze sobą w relacji R L oraz Ŝe Ŝadne dwa słowa z róŝnych zbiorów nie będą ze sobą w relacji R L (por. http://kompilatory.agh.edu.pl). Tak więc liczba klas abstrakcji relacji R L wynosi 5. Relacja indukowana przez język (3) Przykład Znaleźć liczbę klas abstrakcji relacji R L indukowanej przez język: L = {a n b n n 1} RozwaŜymy jednoelementowe zbiory K i,j ={a i b j }, gdzie i=0,1,2,..., zaś 0 j i oraz zbiór K x zawierający wszystkie pozostałe słowa nad alfabetem Σ={a,b}. Zbiory K i,j ={a i b j } oraz zbiór K x stanowią podział zbioru wszystkich słów nad alfabetem Σ={a,b}. Elementy kaŝdego ze zbiorów jednoelementowych K i,j są oczywiście w relacji z samymi sobą, ze względu na zwrotność relacji R L. Element któregokolwiek ze zbiorów K i,j nie jest w relacji z elementem Ŝadnego innego zbioru K n,m. śaden element zbioru K x nie jest w relacji R L z elementem któregokolwiek ze zbiorów jednoelementowych, gdyŝ prawostronne uzupełnienie kaŝdego z łańcuchów z K x o dowolny łańcuch daje słowo nie będące elementem języka L, zaś dla kaŝdego ze zbiorów jednoelementowych istnieje jakiś łańcuch, po dopisaniu którego z prawej strony do elementu tego zbioru otrzymamy słowo języka. Tak więc jednoelementowe zbiory K i,j ={a i b j }, gdzie i=0,1,2,...; 0 j i oraz zbiór K x zawierający wszystkie pozostałe słowa nad alfabetem Σ={a,b} są klasami abstrakcji relacji R L. Liczba klas abstrakcji relacji R L jest w tym przypadku nieskończona. (por. http://kompilatory.agh.edu.pl)