Symbol, alfabet, łańcuch

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

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

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}

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

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

Jaki język zrozumie automat?

Języki formalne i automaty Ćwiczenia 1

Języki formalne i automaty Ćwiczenia 6

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:

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Maszyna Turinga języki

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

Hierarchia Chomsky ego Maszyna Turinga

Języki formalne i automaty Ćwiczenia 9

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)

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

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

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

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

FUNKCJE. (odwzorowania) Funkcje 1

Języki formalne i automaty Ćwiczenia 7

Matematyka dyskretna. 1. Relacje

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

Gramatyki atrybutywne

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

Języki formalne i automaty Ćwiczenia 3

Matematyczne Podstawy Informatyki

GRAMATYKI BEZKONTEKSTOWE

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

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

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

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

JĘZYKI FORMALNE I METODY KOMPILACJI

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

020 Liczby rzeczywiste

JĘZYKIFORMALNE IMETODYKOMPILACJI

1 Działania na zbiorach

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

RACHUNEK ZBIORÓW 5 RELACJE

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

Zadanie 2. Obliczyć rangę dowolnego elementu zbioru uporządkowanego N 0 N 0, gdy porządek jest zdefiniowany następująco: (a, b) (c, d) (a c b d)

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

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

Zadanie analizy leksykalnej

Algebra. Jakub Maksymiuk. lato 2018/19

. : 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

Zadanie 1. Potęgi (14 pkt)

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

Teoria układów logicznych

14. Przestrzenie liniowe

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

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

KOMBINATORYKA OBIEKTY KOMBINATORYCZNE MATEMATYKA DYSKRETNA (2014/2015)

Dowód pierwszego twierdzenia Gödela o. Kołmogorowa

Podstawy logiki i teorii mnogości Informatyka, I rok. Semestr letni 2013/14. Tomasz Połacik

Struktury formalne, czyli elementy Teorii Modeli

Matematyczne Podstawy Informatyki

Podstawowe struktury algebraiczne

Języki formalne i automaty Ćwiczenia 2

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Automat Moore a. Teoria układów logicznych

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

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

KOMBINATORYKA. Problem przydziału prac

Zbiory, relacje i funkcje

Zestaw 2. Definicje i oznaczenia. inne grupy V 4 grupa czwórkowa Kleina D n grupa dihedralna S n grupa symetryczna A n grupa alternująca.

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

Grupy, pierścienie i ciała

Gramatyka operatorowa

III. Funkcje rzeczywiste

Gramatyki rekursywne

R n = {(x 1, x 2,..., x n ): x i R, i {1,2,...,n} },

Wstęp do Techniki Cyfrowej... Teoria automatów

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

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

Języki programowania zasady ich tworzenia

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

1. R jest grupą abelową względem działania + (tzn. działanie jest łączne, przemienne, istnieje element neutralny oraz element odwrotny)

JĘZYKI FORMALNE I METODY KOMPILACJI

Definicja1.2.Niech Abędzieniepustymzbiorem,a i działaniamiwa. (1)Mówimy,że jestłączne,jeżeli. x,y,z A[x (y z) = (x y) z].

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

Lista zadań - Relacje

Przestrzenie liniowe

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

Macierze. Rozdział Działania na macierzach

DEFINICJA. Definicja 1 Niech A i B będą zbiorami. Relacja R pomiędzy A i B jest podzbiorem iloczynu kartezjańskiego tych zbiorów, R A B.

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

Wyk lad 2 Podgrupa grupy

MATEMATYKA DYSKRETNA

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

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

Logika dla socjologów Część 3: Elementy teorii zbiorów i relacji

Analiza semantyczna. Gramatyka atrybutywna

Pokazać, że wyżej zdefiniowana struktura algebraiczna jest przestrzenią wektorową nad ciałem

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

Liczby zmiennoprzecinkowe i błędy

Transkrypt:

Łańcuchy i zbiory łańcuchów Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Symbol, alfabet, łańcuch Symbol Symbol jest to pojęcie niedefiniowane (synonimy: znak, litera) Alfabet Alfabet jest to niepusty, skończony zbiór symboli, np.: Σ 1 = {a, b, c,..., x, y, z } - alfabet łaciński Σ 2 = {0, 1 } - alfabet binarny Niech Σ będzie alfabetem Σ Ø; #Σ < Łańcuch Łańcuch (synonim słowo) to skończony ciąg zestawionych razem symboli z alfabetu. Rekurencyjna definicja łańcucha nad alfabetem Σ: 1) ε jest łańcuchem nad Σ (ε - łańcuch pusty, nie zawierający Ŝadnego znaku), 2) jeśli x jest łańcuchem nad Σ i a Σ to xa jest łańcuchem nad Σ, 3) nic innego nie jest łańcuchem poza tym, co wynika z punktów (1) i (2).

ZłoŜenie łańcuchów Konkatenacja (złoŝenie) łańcuchów Jeśli x i y są łańcuchami x = x 1 x 2...x m y = y 1 y 2...y n to xy = x 1 x 2...x m y 1 y 2...y n jest nazywane konkatenacją (złoŝeniem) łańcuchów x i y. Przykład: x = ab y = cde xy = abcde Dla dowolnego łańcucha x zachodzi xε = εx = x Konkatenacja łańcuchów jest: nieprzemienna (na ogół xy yx) łączna ( xyz = (xy)z = x(yz) ) posiada element neutralny ε będący łańcuchem pustym (xε = εx = x) Rewers łańcucha Rewersem (odbiciem zwierciadlanym) x R łańcucha x = x 1 x 2...x n nazywamy łańcuch x R = x n x n-1...x 1, w którym symbole zapisane są w odwrotnym porządku, przy czym ε R =ε. Definicja rekurencyjna odbicia zwierciadlanego: 1)ε R = ε, 2) jeśli x jest łańcuchem nad alfabetem Σ, zaś a jest symbolem (a Σ), to (ax) R = x R a, 3) nic innego nie jest odbiciem zwierciadlanym poza tym, co wynika z punktów (1) i (2).

Palindrom Palindromem nazywamy łańcuch, który czytany od przodu oraz czytany wspak brzmi tak samo, czyli x R = x Definicja rekurencyjna palindromu: 1) ε jest palindromem, 2) jeśli a jest symbolem (a Σ), to łańcuch zbudowany z pojedynczego symbolu a jest palindromem, 3) jeśli x jeśli palindromem, zaś a jest symbolem (a Σ), to łańcuch axa jest palindromem, 4) nic innego nie jest palindromem poza tym, co wynika z punktów (1), (2) i (3). Przykłady palindromów: oko, kajak, kobyłamamałybok. Notacja potęgowa, długość łańcucha Notacja potęgowa Niech a będzie symbolem. Niech x będzie łańcuchem. Wtedy łańcuchy złoŝone z wielokrotnych powtórzeń symbolu a lub łańcucha x oznaczamy w uproszczeniu: a 0 = ε a 1 = a a 2 = aa a 3 = aaa,..., itd. Długość łańcucha x 0 = ε x 1 = x x 2 = xx x 3 = xxx,..., itd. Długość x łańcucha x to liczba symboli tworzących ten łańcuch. Definicja rekurencyjna długości łańcucha: 1) ε = 0, 2) jeśli x jeśli łańcuchem, zaś a jest symbolem (a Σ), to ax = 1 + x.

ZłoŜenie zbiorów łańcuchów (1) Niech U 1 i U 2 będą zbiorami łańcuchów nad alfabetami odpowiednio Σ 1 i Σ 2. ZłoŜeniem U 1 U 2 tych zbiorów jest zbiór zawierający łańcuchy postaci x 1 x 2, gdzie x 1 U 1, zaś x 2 U 2. U 1 U 2 = { x 1 x 2 x 1 U 1, x 2 U 2 } Na ogół wygodnie jest utoŝsamić alfabet ze zbiorem łańcuchów o długości równej jeden kaŝdy, czyli zawsze, gdy nie będzie to budzić wątpliwości, będziemy tak samo oznaczać alfabet i zbiór łańcuchów jednosymbolowych, np.: Σ = { a, b, c } alfabet, zbiór symboli Σ = { a, b, c } zbiór łańcuchów jednoliterowych ZłoŜenie zbiorów łańcuchów jest: nieprzemienne (na ogół U 1 U 2 U 2 U 1 ) łączne ( U 1 U 2 U 3 = (U 1 U 2 )U 3 = U 1 (U 2 U 3 ) ) posiada element neutralny {ε} będący zbiorem jednoelementowym, którego jedynym elementem jest łańcuch pusty ( U{ε} = {ε}u = U ) ZłoŜenie zbiorów łańcuchów (2) Przykład składania zbiorów łańcuchów: Σ 1 = {a, b} Σ 2 = {a, b, n, r } U 1 = { a, ba } U 2 = { rnaba, rab } U 1 U 2 = { arnaba, barnaba, arab, barab } U 2 U 1 = { rnabaa, rnababa, raba, rabba }

Zbiór słownikowy (1) Zbiór wszystkich łańcuchów nad alfabetem Zbiór wszystkich łańcuchów nad alfabetem Σ oznaczamy Σ*. Zbiór wszystkich niepustych łańcuchów nad alfabetem Σ oznaczamy Σ +. Przykład: Σ = {0, 1} Σ* = { ε, 0, 1, 00, 01, 10, 11, 000, 001,... } Σ + = { 0, 1, 00, 01, 10, 11, 000, 001,... } Zbiór słownikowy (2) Formalnie stosując notację potęgową i wykorzystując definicję złoŝenia zbiorów łańcuchów mamy dla alfabetu Σ definicję rekurencyjną: Σ 0 = {ε} Σ 1 = Σ = { x x jest słowem nadσ, x = 1 } Σ 2 = Σ 1 Σ... Σ n = Σ n-1 Σ = { x x jest słowem nad Σ, x = n } Σ* = Σ 0 Σ 1 Σ 2 Σ 3... Σ + = Σ 1 Σ 2 Σ 3... Σ + = Σ Σ*

Uporządkowanie zbioru słownikowego (1) Niech będzie relacją liniowego porządku na zbiorze (alfabecie) Σ. Przykład: Σ={a,b,c,d}. Uporządkowanie alfabetyczne : a b; a c; a d; b c; b d; c d Zdefiniujemy relację S określoną na Σ*. Powiemy, Ŝe x = a 1 a 2...a m jest w relacji S z y = b 1 b 2...b n (x S y ; x,y Σ*; a i,b j Σ dla 1 i m, 1 j n), gdy spełniony jest jeden z dwóch poniŝszych warunków: m < n, m = n oraz a i b i dla pewnego i m=n oraz a j = b j dla wszystkich 1 j < i. Relacja S jest quasi-porządkiem, który w zbiorze Σ* definiuje porządek S nazywamy porządkiem standardowym. (Σ*, S ) jest zbiorem dobrze uporządkowanym. Przykład: Σ={a,b}. Porządek alfabetu: a b. Zbiór słownikowy Σ* w porządku standardowym: Σ*={ε, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab } Uporządkowanie zbioru słownikowego (2) Niech będzie relacją liniowego porządku na zbiorze (alfabecie) Σ. Zdefiniujemy relację L określoną na Σ*. Powiemy, Ŝe x = a 1 a 2...a m jest w relacji L z y = b 1 b 2...b n (x L y ; x,y Σ*; a i,b j Σ dla 1 i m, 1 j n, k = min(m,n) ), gdy spełniony jest jeden z dwóch poniŝszych warunków: (1) a i L b i dla pewnego i k oraz a j = b j dla wszystkich 1 j < i (2) m < n oraz a i = b i dla wszystkich 1 i m=k. Relacja L jest quasi-porządkiem, który w zbiorze Σ* definiuje porządek L, który nazywamy porządkiem leksykograficznym. (Σ*, L ) jest zbiorem liniowo uporządkowanym. Nie jest on jednak zbiorem dobrze uporządkowanym.

Uporządkowanie zbioru słownikowego (3) Przykład: Σ={a,b}. Porządek alfabetu: a b. Kilka pierwszych elementów zbioru słownikowego Σ* w porządku leksykograficznym: Σ*={ε, a, aa, aaa, aaaa, aaaaa, } Dlaczego uporządkowanie leksykograficzne nie jest porządkiem dobrym? Weźmy nieskończony podzbiór zbioru Σ*: {b, ab, aab, aaab, aaaab, }. Elementy tego podzbioru są uporządkowane malejąco: b L ab L aab L aaab L aaaab L Oczywiście podzbiór ten nie ma elementu najmniejszego, uporządkowanie leksykograficzne nie jest więc porządkiem dobrym. Porządek leksykograficzny w nieskończonym zbiorze Σ* jest bardzo skomplikowany i trudno go sobie wyobrazić. Uporządkowanie zbioru słownikowego (4) Porządek leksykograficzny jest jednak powszechnie wykorzystywany do skończonych zbiorów łańcuchów, np. do określania kolejności słów w encyklopediach, słownikach, leksykonach. Wówczas quasi-porządek jest powszechnie przyjętym uporządkowaniem liter w alfabecie pewnego języka naturalnego. PoniewaŜ dla zbioru słownikowego Σ* moŝna określić porządek liniowy (np. leksykograficzny) lub porządek dobry (np. standardowy), moŝna więc wszystkie elementy zbioru słownikowego ułoŝyć w ciąg i ponumerować. Świadczy to o równoliczności zbioru słownikowego ze zbiorem liczb naturalnych.

Uporządkowanie zbioru słownikowego (5) Numeracja Gödla: MoŜna ponumerować elementy zbioru słownikowego: numerujemy elementy alfabetu Σ={a 1, a 2,, a n } niech p 1 p 2 p 3 p 4 będzie ciągiem rosnącym liczb pierwszych, np. 2, 3, 5, 7, określamy funkcję num(x) dla x Σ* i i2 MoŜna pokazać, Ŝe odwzorowanie num: Σ* N jest wzajemnie jednoznaczne (funkcja num(x) jest róŝnowartościowa). Przykład: num( ε) = 0 num( a a a 1 ) = Σ={a,b}, numerujemy litery => Σ={a 1,a 2 } określamy rosnący ciąg liczb pierwszych: p 1, p 2, p 3, jako 2, 3, 5, 7, analizujemy słowo x = abaa Σ*, x = a 1 a 2 a 1 a 1, num(x) = p 11 p 22 p 31 p 4 1 = 2 1 3 2 5 1 7 1 = 2 9 5 7 = 630 ik k j= 1 p i j j