Automaty i j ¾ezyki formalne Tadeusz Krasi´nski
Wst ¾ep v
ROZDZIA×1. Wiadomo´sci wst ¾epne z matematyki 1
1.1. Rachunek zda´n 1
1.2. Teoria zbiorów 1
1.3. Grafy 7
ROZDZIA×2. J ¾ezyki regularne 9
2.1. Alfabety i j ¾ezyki formalne 9
2.2. Wyra·zenia regularne i j ¾ezyki regularne 13
2.3. Podsumowanie 17
ROZDZIA×3. Automaty sko´nczone 19
3.1. Deterministyczne automaty sko´nczone 19
3.2. Niedeterministyczne automaty sko´nczone 25
3.3. Niedeterministyczne automaty sko´nczone z -przej´sciami 32
3.4. Podsumowanie 38
ROZDZIA×4. Twierdzenie Kleene’ego 41
4.1. Twierdzenie Kleene’ego 41
4.2. Podsumowanie 51
ROZDZIA×5. W÷asno´sci j ¾ezyków regularnych 53
5.1. Podstawowe w÷asno´sci j ¾ezyków regularnych 53
5.2. Lemat o Pompowaniu 54
5.3. Algorytmy decyzyjne dla j ¾ezyków regularnych 57
5.4. Podsumowanie 59
ROZDZIA×6. Minimalizacja automatów sko´nczonych 61
6.1. Konstrukcja minimalnego automatu 61
6.2. Algorytm wyznaczania minimalnego automatu 65
6.3. Podsumowanie 70
ROZDZIA×7. Gramatyki i j ¾ezyki bezkontekstowe 71
7.1. De…nicje gramatyk i j ¾ezyków bezkontekstowych 71
7.2. Lewe i prawe wyprowadzenia 77
7.3. Gramatyki regularne 79
7.4. Postacie normalne gramatyk bezkontekstowych 83
7.5. Podsumowanie 90
ROZDZIA×8. W÷asno´sci j ¾ezyków bezkontekstowych 93
8.1. Podstawowe w÷asno´sci j ¾ezyków bezkontekstowych 93 8.2. Lemat o Pompowaniu dla J ¾ezyków Bezkontekstowych 94
8.3. Podsumowanie 99
ROZDZIA×9. Automaty ze stosem 101
9.1. De…nicja automatów ze stosem 101
9.2. Automaty ze stosem i j ¾ezyki bezkontekstowe 113
iii
9.3. Podsumowanie 120
ROZDZIA×10. Maszyny Turinga 121
10.1. De…nicja maszyny Turinga 121
10.2. Graf maszyny Turinga 126
10.3. Wielota´smowe maszyny Turinga 128
10.4. Niedeterministyczne maszyny Turinga 133
10.5. Podsumowanie 136
ROZDZIA×11. J ¾ezyki rekursywnie przeliczalne 139
11.1. J ¾ezyki rekursywnie przeliczalne a j ¾ezyki bezkontekstowe 139 11.2. J ¾ezyki, które nie s ¾a rekursywnie przeliczalne 143
11.3. J ¾ezyki rekursywne 146
11.4. Gramatyki frazowe 151
11.5. Podsumowanie 158
ROZDZIA×12. J ¾ezyki kontekstowe 159
12.1. Gramatyki i j ¾ezyki kontekstowe 159
12.2. Automaty liniowo ograniczone 164
12.3. Hierarchia Chomsky’ego j ¾ezyków 167
12.4. Podsumowanie 168
ROZDZIA×13. Z÷o·zono´s´c obliczeniowa 171
13.1. Z÷o·zono´s´c obliczeniowa czasowa 171
13.2. De…nicja problemów N P-zupe÷nych 178
13.3. SAT -problem N P-zupe÷ny 181
13.4. Problem drogi Hamiltona 182
13.5. Z÷o·zono´s´c obliczeniowa pami ¾eciowa 184
13.6. Podsumowanie 186
BIBLIOGRAFIA 189
INDEKS 191
Informatyk¾e mo·zna podzieli´c na dwie podstawowe cz ¾e´sci:
1. podstawowe idee i modele le·z ¾ace u podstaw obliczania i dzia÷ania komputerów, 2. praktyczne techniki konstruowania, budowania i projektowania komputerów i pisania programów komputerowych.
W podr ¾eczniku zajmiemy si ¾e pierwszym aspektem, czyli teoretycznymi podstawy infor- matyki. Przedstawimy podstawowe modele teoretyczne komputerów. Zaczniemy od na- jprostszych zwanych automatami sko´nczonymi i zako´nczymy modelem, który jest powszech- nie uznawany za w÷a´sciwy model komputera tzw. maszyn ¾e Turinga. Modele te nie b ¾ed ¾a doty- czy´c struktury, architektury itp. technicznych aspektów komputerów, lecz ich teoretycznych mo·zliwo´sci oblicze´n. Te modele nie powsta÷y równolegle z pierwszymi komputerami zbu- dowanymi w latach pi ¾e´cdziesi ¾atych. Teoretyczne podstawy oblicze´n zosta÷y zapocz ¾atkowane wcze´sniej, przez matematyków, którzy zajmowali si ¾e problemem, które z funkcji nale·zy uzna´c za obliczalne, tzn. takie, do obliczenia warto´sci których istnieje algorytm (np. dodawanie liczb naturalnych nale·zy uzna´c za funkcj ¾e obliczaln ¾a, gdy·z istnieje znany algorytm dodawa- nia dwóch liczb). Badanie te zwi ¾azane s ¾a z nazwiskami matematyków: Hilberta, Gödla, Turinga. Wymy´slone zosta÷y teoretyczne modele urz ¾adze´n obliczaj ¾acych funkcje obliczalne.
Sta÷y si ¾e one równie·z teoretycznymi modelami wspó÷czesnych komputerów.
Okaza÷o si ¾e, ·ze te modele zwi ¾azane s ¾a z pewnymi j ¾ezykami (rozumiemy tutaj j ¾ezyk w bardzo ogólnym sensie, jako pewne uk÷ady symboli z ustalonego sko´nczonego zbioru sym- boli). Im model reprezentuje wi ¾eksz ¾a ”moc obliczeniow ¾a”, tym bardziej skomplikowany j ¾ezyk mo·zemy z nim zwi ¾aza´c; mianowicie j ¾ezyk akceptowany przez ten model. Ka·zdy konkretny j ¾ezyk reprezentuje pewien problem lub funkcj ¾e. Zwi ¾azek ten zilustrujemy nast ¾epuj ¾acym przyk÷adem.
Je´sli dany model potra… np. dodawa´c liczby naturalne (co oznacza, ·ze wczytujemy dwie liczby naturalne i w wyniku otrzymujemy jedn ¾a, b ¾ed ¾ac ¾a ich sum ¾a), to jest to równoznaczne (w warstwie teoretycznej) z tym, ·ze model ten akceptuje trójki liczb (m; n; k) o w÷asno´sci m + n = k i nie akceptuje ·zadnych innych trójek (oznacza to, ·ze wczytujemy trzy liczby naturalne i w wyniku otrzymujemy ”tak” lub ”nie”). Takie trójki liczb mo·zemy uwa·za´c za pewien rodzaj j ¾ezyka (s÷owami tego j ¾ezyka s ¾a trójki liczb (m; n; k) o w÷asno´sci m + n = k;
np. trójka (2; 3; 5) jest s÷owem tego j ¾ezyka, a trójka (2; 1; 5) nie jest). To samo mo·zemy powiedzie´c o dowolnej funkcji, której warto´sci dany model potra… oblicza´c. Zamiast mówi´c, ze model oblicza dan ¾· a funkcj ¾e f (dla ustalenia uwagi za÷ó·zmy, ·ze f jest funkcj ¾a jednej zmi- ennej okre´slon ¾a na zbiorze liczb naturalnych) mo·zemy, tak jak w przypadku dodawania, powiedzie´c, ·ze model ten akceptuje j ¾ezyk, którego s÷owami s ¾a pary (n; f (n)); gdzie f (n) jest warto´sci ¾a funkcji f w punkcie n: Podobnie, zamiast mówi´c o problemach mo·zemy mówi´c o j ¾ezykach, gdy·z na ogó÷z ka·zdym problemem mo·zemy zwi ¾aza´c pewien j ¾ezyk formalny. Zatem b ¾edziemy mówi´c o j ¾ezykach, pami ¾etaj ¾ac, ·ze pod tym poj ¾eciem kryj ¾a si ¾e funkcje, zadania i problemy.
Powy·zsze przyk÷ady uzasadniaj ¾a zwi ¾azek modeli komputerów z pewnymi j ¾ezykami. Jest rzecz ¾a oczywist ¾a, ·ze im wi ¾eksza jest ”moc obliczeniowa” tych modeli (tzn. obliczaj ¾a wi ¾ek- sz ¾a ilo´s´c funkcji, wykonuj ¾a wi ¾eksz ¾a ilo´s´c zada´n lub rozwi ¾azuj ¾a trudniejsze problemy), tym bardziej skomplikowane j ¾ezyki s ¾a akceptowane przez te modele. W zwi ¾azku z tym w rozwa·za- niach teoretycznych nie b ¾edziemy mówi´c o funkcjach, zadaniach i problemach, które modele potra… ¾a obliczy´c lub wykona´c, a tylko o j ¾ezykach przez nie akceptowanych. Im dany model lub rodzaj modeli akceptuje szersz ¾a klas ¾e j ¾ezyków, tym jego moc jest wi ¾eksza.
v
Z kolei gdy mówimy o j ¾ezykach, to wi ¾a·ze si ¾e to z poj ¾eciem gramatyki danego j ¾ezyka, rozumianej tutaj jako uk÷ad zasad (regu÷) wed÷ug których powstaj ¾a s÷owa (zdania) danego j ¾ezyka (w warstwie teoretycznej nie odró·zniamy s÷ów od zda´n, gdy·z ka·zde ”zdanie”mo·ze by´c uwa·zane za pewne s÷owo, gdy do alfabetu zaliczymy równie·z spacje, co ma np. miejsce w j ¾ezykach programowania). Zatem b ¾edziemy tak·ze rozwa·za´c problem znalezienia gramatyk, wed÷ug regu÷których powstaj ¾a j ¾ezyki akceptowane przez kolejne modele komputerów. Poj ¾ecie gramatyki wi ¾a·ze si ¾e te·z z programowaniem, gdy·z programy wczytywane do komputera musz ¾a by´c zbudowane wed÷ug pewnych ustalonych regu÷, które komputer musi zna´c i wed÷ug tych regu÷zrozumie´c program. Tym zagadnieniem zajmuje si ¾e teoria kompilatorów.
Zatem w wyk÷adzie b ¾edziemy równolegle omawia´c:
1. modele teoretyczne komputerów, 2. j ¾ezyki akceptowane przez te modele, 3. gramatyki generuj ¾ace te j ¾ezyki.
Poznamy dok÷adniej cztery modele, pocz ¾awszy od najprostszego do najpot ¾e·zniejszego, uwa·zanego za w÷a´sciwy model komputera, oraz równowa·zne im klasy j ¾ezyków i gramatyk
Modele Klasy j ¾ezyków Klasy gramatyk
Automaty sko´nczone
J ¾ezyki regularne
Gramatyki regularne Automaty
ze stosem
J ¾ezyki
bezkontekstowe
Gramatyki bezkontekstowe Automaty
liniowo ograniczone
J ¾ezyki kontekstowe
Gramatyki kontekstowe Maszyny
Turinga
J ¾ezyki rekurencyj- nie przeliczalne
Gramatyki frazowe
Po zapoznaniu si ¾e z podstawowymi modelami komputerów omówimy krótko wa·zne po- j ¾ecie z÷o·zono´sci obliczeniowej problemów (czyli z÷o·zono´sci obliczeniowej j ¾ezyków). W÷a´sci- wym modelem do tych rozwa·za´n b ¾edzie maszyna Turinga, gdy·z jak wspomnieli´smy powy·zej, jest ona uwa·zana za w÷a´sciwy model komputera. W my´sl de…nicji z÷o·zono´s´c obliczeniowa problemu (czyli j ¾ezyka zwi ¾azanego z tym problemem) jest to ilo´s´c kroków, któr ¾a musi wykona´c maszyna Turinga rozwi ¾azuj ¾aca dany problem (z÷o·zono´s´c obliczeniowa czasowa) lub ilo´s´c pami ¾eci, któr ¾a wykorzysta maszyna Turinga rozwi ¾azuj ¾aca dany problem (z÷o·zono´s´c obliczeniowa pami ¾eciowa). Poznamy wa·zne klasy problemów, P i N P, rozwi ¾azywalnych przez maszyny Turinga w czasie wielomianowym (P dla deterministycznych maszyn Turinga i N P dla niedeterministycznych maszyn Turinga). Najwa·zniejszym teoretycznym prob- lemem informatyki jest problem równo´sci tych klas, czyli pytanie czy zachodzi równo´s´c P = N P. W´sród N P problemów omówimy klas ¾e najtrudniejszych z nich, klas ¾e N P- problemów zupe÷nych, które charakteryzuj ¾a si ¾e tym, ·ze ka·zdy inny N P-problem mo·zna do niego "sprowadzi´c".
Na zako´nczenie podam wyja´snienia dotycz ¾ace uk÷adu tekstu. Ka·zdy rozdzia÷ko´nczy si ¾e podsumowaniem. Podane s ¾a w nim krótko i w mniej formalnym stylu wszystkie najwa·zniejsze poj ¾ecia i twierdzenia wyst ¾epuj ¾ace w tek´scie g÷ównym. U÷atwi to czytelnikowi orientacj ¾e, które fakty s ¾a wa·zne i na które powinien po÷o·zy´c wi ¾ekszy nacisk. W tek´scie zamieszczone s ¾a zadania ilustruj ¾ace wprowadzane poj ¾ecia. Na ogó÷s ¾a one zwi ¾azane z aktualnie omawianym tematem.
Stosujemy nast ¾epuj ¾ace oznaczenie przy de…niowaniu nowych poj ¾e´c: gdy nowe poj ¾ecie de…niowane jest za pomoc ¾a równo´sci, to u·zywamy symbolu ”:=”, z dwukropkiem od strony nowego poj ¾ecia. Koniec dowodu lub pewnego jego fragmentu (gdy dowód jest przerwany by zilustrowa´c dalsz ¾a cz ¾e´s´c przyk÷adem) zaznaczamy kwadratem " ":
Wiadomo´sci wst ¾epne z matematyki
Teoria automatów i j ¾ezyków formalnych u·zywa wielu poj ¾e´c matematyki. Dla u÷atwienia czytelnikowi ´sledzenia rozumowa´n oraz unikni ¾ecia mo·zliwych ró·znych interpretacji pewnych poj ¾e´c, w rozdziale tym przedstawimy krótko podstawowe de…nicje poj ¾e´c matematycznych, wyst ¾epuj ¾acych w podr ¾eczniku. Podamy równie·z pewne fakty z których b ¾edziemy korzysta´c w dalszym ci ¾agu.
1.1. Rachunek zda´n
W matematyce rozwa·za si ¾e tylko zdania, które s ¾a prawdziwe lub fa÷szywe. Je´sli p jest takim zdaniem, to mówimy, ·ze jego warto´sci ¾a logiczn ¾a jest 1 (oznaczenie w(p) = 1), gdy jest to zdanie prawdziwe i ·ze jego warto´sci ¾a logiczn ¾a jest 0 (oznaczenie w(p) = 0), gdy jest to zdanie fa÷szywe. Na przyk÷ad dla zdania p : "Suma k ¾atów w trójk ¾acie jest równa ", jego warto´sci ¾a logiczn ¾a jest 1; w(p) = 1: Ze zda´n tworzymy nowe zdania za pomoc ¾a spójników logicznych. W matematyce wyró·znia si ¾e 5 podstawowych spójników (cho´c pewne z nich mo·zna wyrazi´c przez inne). S ¾a to:
1. koniunkcja, czyli spójnik "i" - oznaczenie ^;
2. alternatywa, czyli spójnik "lub" - oznaczenie _;
3. implikacja, czyli spójnik "je´sli ..., to...." - oznaczenie );
4. równowa·zno´s´c, czyli spójnik "... wtedy i tylko wtedy, gdy ...." - oznaczenie ,;
5. negacja, czyli spójnik "nieprawda, ·ze ..." - oznaczenie :
W przypadku czterech pierwszych z nich z dwóch zda´n danych tworzymy nowe jedno zdanie, w przypadku za´s pi ¾atego z danego zdania tworzymy nowe jedno zdanie. Tworz ¾ac nowe zdania z÷o·zone np. zdanie ((p ^ ( (q))) ) (( (r _ p)) ^ q); w celu unikni ¾ecia zapisu wielu nawiasów, przyjmuje si ¾e nast ¾epuj ¾ac ¾a hierarchi ¾e spójników: ; ^; _; ); , : Wówczas powy·zsze zdanie zapiszemy w skrócie p^ q ) (r _ p) ^ q: Przyjmuje si ¾e, ·ze warto´sci logiczne nowych zda´n, utworzonych za pomoc ¾a powy·zszych spójników, wyra·zaj ¾a si ¾e w nast ¾epuj ¾acy sposób w zale·zno´sci od warto´sci logicznych zda´n wyj´sciowych.
p q p ^ q p _ q p ) q p , q p
0 0 0 0 1 1 1
1 0 0 1 0 0 0
0 1 0 1 1 0 1
1 1 1 1 1 1 0
Wówczas korzystaj ¾ac z powy·zszej tabeli mo·zemy ka·zdemu zdaniu z÷o·zonemu przypisa´c warto´s´c logiczn ¾a. Na przyk÷ad, je´sli w(p) = 1; w(q) = 0; w(r) = 0; to dla powy·zszego zdania z÷o·zonego p^ q ) (r _ p) ^ q ÷atwo obliczamy, ·ze jego warto´s´c logiczna jest równa 0:
Zdania z÷o·zone, których warto´s´c logiczna jest zawsze równa 1 (bez wzgl ¾edu na warto´sci log- iczne zda´n wchodz ¾acych w jego sk÷ad) nazywamy tautologiami. Na przyk÷ad tautologiami s ¾a zdania: p_ p; (p ) q) , p _ q:
1.2. Teoria zbiorów
Zbiór liczb naturalnych1; 2; 3; ::: oznaczamy przez N. Zbiór liczb naturalnych wraz z zerem czyli 0; 1; 2; 3; ::: oznaczamy przez N0. Zbiór liczb ca÷kowitych0; 1; 2; 3; ::: oz- naczamy przez Z. Zbiory N, Z rozwa·zamy ze zwyk÷ymi dzia÷aniami dodawania, mno·zenia, dzielenia i nierówno´sciami > i > :
1
Je´sli X jest dowolnym zbiorem i x jest jego elementem, to mówimy, ·ze x nale·zy doX i fakt ten zapisujemy nast ¾epuj ¾aco: x 2 X: Gdy X i Y s ¾a zbiorami i ka·zdy element zbioru X nale·zy równie·z do Y; to zapisujemy to X Y i mówimy, ·ze X zawiera si ¾e w Y lub ·ze X jest podzbiorem Y: Je´sli X Y i X 6= Y (tzn. zbiór Y oprócz elementów z X ma jeszcze inne elementy), to piszemy wówczas: X Y i mówimy, ·ze zawieranie jest w÷a´sciwe:
Zbiór pustytzn. zbiór nie zawieraj ¾acy ·zadnego elementu oznaczamy przez ;:
Gdy X jest zbiorem sko´nczonym i jego elementami s ¾a x1; x2; :::; xn; to piszemy X = fx1; x2; :::; xng:
Je´sli w zbiorze X okre´slona jest pewna w÷asno´s´c W elementów tego zbioru, któr ¾a pewne elementy tego zbioru maj ¾a a pewne nie, to zbiór tych, które maj ¾a t ¾e w÷asno´s´c oznaczamy nast ¾epuj ¾aco
fx 2 X : W(x)g:
Na przyk÷ad, zbiór liczb naturalnych podzielnych przez ustalon ¾a liczb ¾e k 2 N zapiszemy fn 2 N : istnieje m 2 N taka, ·ze n = mkg:
O dowolnej liczbie n powy·zszego zbioru mówimy, ·ze k dzieli n i zapisujemy to kjn: Wówczas zbiór liczb pierwszychmo·zemy zde…niowa´c
P := fn 2 N : nie istnieje m 2 N taka, ·ze 1 < m < n i mjng:
Podstawow ¾a metod ¾a dowodzenia twierdze´n dotycz ¾acych liczb naturalnych jest zasada indukcji matematycznej.
Je´sli dana jest pewna w÷asno´s´c W liczb naturalnych (precyzyjnie, dany jest podzbiór W zbioru N, interpretowany jako zbiór tych liczb naturalnych, które t ¾e w÷asno´s´c W maj ¾a) i spe÷nione s ¾a dwa warunki:
1. liczba 1 ma w÷asno´s´c W (tzn. 12 W );
2. dla ka·zdego k 2 N z zachodzenia w÷asno´sci W dla liczby k wynika, ·ze w÷asno´s´c W ma równie·z liczba k + 1 (tzn. dla ka·zdego k prawdziwa jest implikacja k 2 W ) (k + 1) 2 W ), to w÷asno´s´c W maj ¾a wszystkie liczby naturalne (tzn. N =W ).
Uwaga 1.1. Zauwa·zmy, ·ze w warunku 2 zasady indukcji, nastr ¾eczaj ¾acym najwi ¾ecej trud- no´sci w zrozumieniu tej zasady, wykazujemy, ·ze dla dowolnego k 2 N prawdziwa jest im- plikacja W(k) ) W(k + 1); a prawdziwo´s´c implikacji nie jest równowa·zna prawdziwo´sci W(k):
Przyk÷ad 1.2. Wyka·zemy za pomoc ¾a zasady indukcji matematycznej, ·ze dla dowolnego n 2 N zachodzi równo´s´c
(1.1) 1 + 2 + + n = n(n + 1)
2 :
1. n = 1: W tym przypadku suma po lewej stronie wzoru redukuje si ¾e do jednego sk÷adnika równego 1: Prawa strona po podstawieniu n = 1 ma równie·z warto´s´c 1: Zatem wzór jest prawdziwy dla n = 1:
2. We´zmy dowoln ¾a liczb ¾e k 2 N. Musimy wykaza´c, ·ze je´sli wzór (1:1) zachodzi dla liczby k, czyli
(1.2) 1 + 2 + + k = k(k + 1)
2 ;
to zachodzi dla liczby (k + 1); czyli
(1.3) 1 + 2 + + k + (k + 1) = (k + 1)(k + 2)
2 :
Istotnie, je´sli prawdziwa jest równo´s´c (1:2); to wtedy
1 + 2 + + k + (k + 1) = (1 + 2 + + k) + (k + 1)
= k(k + 1)
2 + (k + 1) = (k + 1)(k + 2)
2 :
Wykazali´smy, ·ze zachodzi wzór (1:3): Zatem na mocy zasady indukcji matematycznej wzór (1:1) jest prawdziwy dla wszystkich n 2 N.
Zadanie 1.3. Udowodni´c za pomoc ¾a zasady indukcji:
1. n < 2n dla n 2 N:
2. log n < n dla n 2 N:
3. (1 + 2 + ::: + n)2 = 13+ 23+ ::: + n3 dla n 2 N:
4. Liczba mo·zliwych wyborów k liczb z zadanych n liczb f1; 2; :::; ng jest równa n
k := n!
k!(n k)!:
5. Liczba mo·zliwych rozmieszcze´n k liczb w n komórkach (liczby w komórkach mog ¾a si ¾e powtarza´c) wynosi kn:
6. Wzór dwumianowy Newtona (a + b)n= an+ n
1 an 1b + n
2 an 2b2+ + n
n 1 abn 1+ bn:
Blisko z zasad ¾a indukcji matematycznej zwi ¾azana jest metoda de…niowania przez indukcj ¾e. Polega ona na tym, ·ze do zde…niowania pewnego poj ¾ecia P(n) dla ka·zdej liczby naturalnej n wystarczy:
1. zde…niowa´c to poj ¾ecie dla liczby 1;
2. poda´c zasad ¾e w jaki sposób dla ka·zdego k z poj ¾e´c P(i) dla i 6 k powstaje poj ¾ecie P(k + 1):
Wówczas to poj ¾ecie b ¾edzie okre´slone dla wszystkich liczb naturalnych n 2 N.
Przyk÷ad 1.4. Podamy de…nicj ¾e indukcyjn ¾a funkcji silnia f (n) = n!:
1: f (1) = 1! := 1:
2: dla dowolnego k okre´slamy f (k + 1) := f (k)(k + 1); czyli (k + 1)! := k!(k + 1):
Przyk÷ad 1.5. Okre´slimy nast ¾epuj ¾ace zbiory Pn dla ka·zdego n 2 N za pomoc ¾a de…nicji indukcyjnej:
1. P1 = f1; 4; 5g;
2. Pk+1= fzbiór sum par liczb z Pkg = fa + b : a; b 2 Pkg:
Na przyk÷ad P2= f1 + 1; 1 + 4; 1 + 5; 4 + 4; 4 + 5; 5 + 5g = f2; 5; 6; 8; 9; 10g: Okre´slili´smy indukcyjnie zbiory Pn dla n 2 N. Nie jest ÷atwo poda´c elementy np. zbioru P100; jednak zbiory Pn s ¾a okre´slone i to jednoznacznie dla ka·zdego n 2 N.
Zadanie 1.6. Poda´c najmniejszy i najwi ¾ekszy element zbioru P100:
Przypomnimy teraz podstawowe operacje teorio-mnogo´sciowe na zbiorach. Dla dowol- nych dwóch zbiorów X; Y okre´slamy ich:
1. sum ¾e
X [ Y := fx : x 2 X lub x 2 Y g;
2. iloczyn lub inaczej cz ¾e´s´c wspóln ¾a
X \ Y := fx : x 2 X i x 2 Y g;
3. ró·znic ¾eX i Y
X n Y := fx : x 2 X i x =2 Y g:
4. gdy X Y , to dope÷nieniemX w Y nazywamy ró·znic ¾e Y n X
W przypadku, gdy zbiór (przestrze´n) Y jest ustalony, to dope÷nienie X w Y oznaczamy krótko przez X0:
Jedn ¾a z wa·zniejszych w÷asno´sci poznanych operacji (oprócz oczywistych w rodzaju przemi- enno´sci sumy, iloczynu itp.) s ¾a prawa de Morgana dla zbiorów. Mianowicie, je´sli jest ustalon ¾a przestrzeni ¾a (zbiorem), to dla dowolnych dwóch podzbiorów X; Y zachodz ¾a równo´sci
(X [ Y )0= X0\ Y0;
(X \ Y )0= X0[ Y0:
Inaczej mówi ¾ac, dope÷nienie sumy zbiorów jest równe iloczynowi dope÷nie´n i podobnie dope÷nie- nie iloczynu zbiorów jest równe sumie dope÷nie´n.
Zadanie 1.7. Udowodni´c, ze dla dowolnych zbiorów X; Y; Z zachodz ¾a równo´sci:
1. X \ (Y [ Z) = (X \ Y ) [ (X \ Z);
2. X [ (Y \ Z) = (X [ Y ) \ (X [ Z):
Zadanie 1.8. Udowodni´c, ze dla dowolnych zbiorów X; Y zachodz ¾a równo´sci:
1. (X0)0= X;
2. X n Y = X \ Y0:
Zadanie 1.9. Udowodni´c prawa de Morgana.
Dla dowolnego zbioru X przezP(X) oznaczamy zbiór wszystkich jego podzbiorów.
Na przyk÷ad, je´sli zbiór X ma trzy elementy np. X = fx; y; zg; to
P(X) = f;; fxg; fyg; fzg; fx; yg; fy; zg; fx; zg; fx; y; zgg:
Zauwa·zmy, ·ze wtedy P(X) ma 23 = 8 elementów. Jest tak ogólnie, gdy·z je´sli zbiór X ma n elementów, to zbiórP(X) ma 2n elementów.
Zadanie 1.10. Udowodni´c za pomoc ¾a indukcji matematycznej ostatnie stwierdzenie.
Wa·zn ¾a operacj ¾a na zbiorach jest iloczyn kartezja´nski. Dla dowolnych zbiorów X; Y przez X Y oznaczamy zbiór wszystkich par (x; y); gdzie pierwszy element pary x nale·zy do X;
a drugi element y do Y; i nazywamy iloczynem kartezja´nskimX i Y . Zatem X Y := f(x; y) : x 2 X i y 2 Y g:
Zauwa·zmy, ·ze ; X = X ; = ;:
Podobnie dla trzech zbiorów X; Y; Z przez X Y Z oznaczamy zbiór wszystkich trójek (x; y; z); gdzie x 2 X; y 2 Y; z 2 Z i tak dalej dla dowolnej sko´nczonej rodziny zbiorów.
W przypadku, gdy rozwa·zamy iloczyn kartezja´nski tego samego zbioru X; to iloczyn ten oznaczamy krótko przez X2 = X X i ogólnie Xn= X X ::: X
| {z }
n-razy
: Elementy zbioru Xn nazywamy n-tkami z X:
Podstawowym poj ¾eciem zwi ¾azanym z iloczynem kartezja´nskim jest relacja. Dla dowol- nych dwóch zbiorów X; Y relacj ¾a mi ¾edzy elementamiX i Y (krótko relacj ¾a) nazywamy dowolny podzbiór R X Y: Zatem relacj ¾a jest ka·zdy wyró·zniony zbiór par (x; y); gdzie x 2 X; y 2 Y:
Przyk÷ad 1.11. Niech X = f1; 2; 3g; Y = f4; 5; 6g: Okre´slimy relacj ¾e R X Y (czyli wyró·znimy pewne pary (x; y); gdzie x 2 X; y 2 Y ) nast ¾epuj ¾aco
R := f(x; y) 2 X Y : x y dzieli si ¾e przez 2 (w Z)g:
Zatem R jest zbiorem nast ¾epuj ¾acych par
R = f(1; 5); (2; 4); (2; 6); (3; 5)g X Y:
Nie nale·z ¾a do R pary (1; 4); (1; 6); (2; 5); (3; 4); (3; 6).
W matematyce wyró·znia si ¾e pewne klasy relacji, spe÷niaj ¾ace dodatkowe warunki. Jedn ¾a z nich jest relacja równowa·zno´sci. Relacj ¾e R X X (zauwa·zmy, ·ze jest to relacja mi ¾edzy ele- mentami tego samego zbioru) nazywamy relacj ¾a równowa·zno´sci, gdy spe÷nia ona warunki:
1. (x; x) 2 R dla ka·zdego x 2 X (tzn. ka·zdy element z X jest w relacji z samym sob ¾a) - zwrotno´s´c relacji,
2. je´sli (x; y) 2 R; to (y; x) 2 R (tzn. je´sli x jest w relacji z y; to równie·z y jest w relacji z x) - symetria relacji,
3. je´sli (x; y) 2 R i (y; z) 2 R to (x; z) 2 R (tzn. je´sli x jest w relacji z y i y jest w relacji z z; to równie·z x jest w relacji z z) - przechodnio´s´c relacji.
Przyk÷ad 1.12. 1. Relacja z przyk÷adu 1.11 nie jest relacj ¾a równowa·zno´sci, bo nie jest okre´slona w tym samym zbiorze.
2. Je´sli okre´slimy relacj ¾e R N N tym samym wzorem co w przyk÷adzie 1.11 tzn.
R := f(x; y) 2 N N : x y dzieli si ¾e przez 2 (w Z)g;
to jest ona relacj ¾a równowa·zno´sci, bo:
1. pary (n; n) 2 R; bo n n = 0 dzieli si ¾e przez 2;
2. je´sli (m; n) 2 R; tzn. m n dzieli si ¾e przez 2; to równie·z n m = (m n) dzieli si ¾e przez 2; a zatem (m; n) 2 R;
3. je´sli (m; n) 2 R i (n; k) 2 R; tzn. m n i n k dziel ¾a si ¾e przez 2; to równie·z m k = (m n) + (n k) dzieli si ¾e przez 2; a zatem (m; k) 2 R; :
Relacja równowa·zno´sci R w zbiorze X dzieli ten zbiór na roz÷¾aczne i niepuste podzbiory.
Podzia÷ten otrzymujemy w nast ¾epuj ¾acy sposób. Je´sli x 2 X; to zbiór wszystkich elementów y z X b ¾ed ¾acych w relacji z x tzn. zbiór fy 2 X : (x; y) 2 Rg jest pewnym niepustym podzbiorem X; który oznaczamy przez Ax(zauwa·zmy, ·ze x 2 Ax). Tak otrzymane podzbiory X daj ¾a oczywi´scie w sumie ca÷e X i spe÷niaj ¾a warunek: dla dowolnych x; y 2 X albo Ax = Ay
(gdy x i y s ¾a w relacji), albo Ax\ Ay = ; (gdy x i y nie s ¾a w relacji). To daje nam rozk÷ad zbioru X na roz÷¾aczne, niepuste i daj ¾ace w sumie X podzbiory zwane klasami abstrakcji relacji R.
Przyk÷ad 1.13. Relacja z Przyk÷adu 1.12, pkt 2 dzieli nam zbiór N na dwie klasy ab- strakcji
A1 = f1; 3; 5; ::g = fliczby nieparzysteg;
A2 = f2; 4; 6; ::g = fliczby parzysteg:
Oczywi´scie A1 = A3= A5= ::: i A2 = A4= A6= :::
Zadanie 1.14. Wykaza´c, ·ze nast ¾epuj ¾ace relacje w N, N N i Z (Z n f0g) s ¾a relacjami równowa·zno´sci:
1. R = f(n; m) 2 N N : n m dzieli si ¾e przez ustalon ¾a liczb ¾e k 2 Ng;
2. R = f((n; m); (k; l)) 2 (N N) (N N) : n + l = k + mg;
3. R = f((n; m); (k; l)) 2 (Z Znf0g) (Z Znf0g) : n l = k mg:
Inn ¾a wa·zn ¾a klas ¾a relacji s ¾a funkcje. Jak wiadomo, funkcj ¾a f : X ! Y ze zbioru X (dziedzina funkcji f ) w zbiór Y (przeciwdziedzina lub zbiór warto´sci f ) nazywamy
”przyporz ¾adkowanie”, które ka·zdemu x 2 X przypisuje jedno y 2 Y oznaczane przez f(x):
Zatem funkcja to po prostu zbiór par (x; f (x)) 2 X Y; czyli pewna relacja Rf w X Y: Z tej intuicyjnej de…nicji funkcji wynika, ·ze relacja ta spe÷nia nast ¾epuj ¾ace warunki:
1. dla ka·zdego x 2 X istnieje y 2 Y; ·ze (x; y) 2 Rf (odpowiada to warunkowi, ·ze funkcja f jest okre´slona dla ka·zdego x 2 X);
2. dla ka·zdego x 2 X istnieje tylko jedno y 2 Y; ·ze (x; y) 2 Rf (odpowiada to warunkowi, ze danemu x 2 X przypisany jest tylko jeden element ze zbioru Y ):·
Zatem precyzyjnie okre´sla si ¾e funkcj ¾e ze zbioruX w zbiór Y jako dowoln ¾a relacj ¾e R X Y; spe÷niaj ¾ac ¾a powy·zsze dwa warunki. Oczywi´scie b ¾edziemy dalej stosowa´c tradycyjny zapis dotycz ¾acy funkcji.
Przyk÷ad 1.15. Dla funkcji f : N ! Z okre´slonej wzorem f(n) = 2n zbiorem par relacji Rf odpowiadaj ¾acej tej funkcji jest
Rf = f(n; 2n) : n 2 Ng = f(1; 2); (2; 4); :::g N Z (bo f (1) = 2; f (2) = 4; : : :).
Zadanie 1.16. Która z relacji jest funkcj ¾a:
1. R = f(x2; x) : x 2 Ng N N;
2. R = f(x; x2) : x 2 Ng N N:
Uwaga 1.17. W wielu miejscach podr ¾ecznika b ¾edziemy rozwa·za´c funkcje f : X ! P(Y ) ze zbioru X w zbiór wszystkich podzbiorów zbioru Y; czyli funkcje które ka·zdemu elementowi x 2 X przypisuj ¾a pewien podzbiór A Y: Nie ma tutaj sprzeczno´sci z poj ¾eciem funkcji (z warunkiem, ·ze ka·zdemu elementowi x 2 X przypisujemy tylko jeden element przeci- wdziedziny), gdy·z w tym przypadku zbiorem warto´sci nie jest Y; lecz zbiór jego podzbiorów P(Y ).
Ci ¾agiem niesko´nczonymo warto´sciach w zbiorze niepustym X nazywamy ka·zd ¾a funkcj ¾e f : N !X: Ci ¾agiem sko´nczonym o warto´sciach w zbiorze niepustym X nazywamy ka·zd ¾a funkcj ¾e f : Jn!X; gdzie Jn:= f1; 2; : : : ; ng: Wówczas f nazywamy ci ¾agiem n-elementowym.
Przyjmuj ¾ac ak:= f (k) dla k 2 N lub k 2 Jn ci ¾ag f oznaczamy:
(ak)k2N lub (ak) w przypadku ci ¾agu niesko´nczonego, (ak)nk=1 lub (a1; : : : ; an) w przypadku ci ¾agu sko´nczonego.
Zauwa·zmy, ·ze ci ¾agi sko´nczone (a1; : : : ; an) o warto´sciach w X mo·zemy uto·zsamia´c z elementami iloczynu kartezja´nskiego Xn= X X; czyli z n-tkami z X:
Uwaga 1.18. Nale·zy odró·znia´c ci ¾ag sko´nczony od zbioru sko´nczonego. Uk÷ad (a1; : : : ; an) to ci ¾ag sko´nczony, a fa1; : : : ; ang to zbiór sko´nczony z÷o·zony z elementów a1; : : : ; an: Na
przyk÷ad, (1; 1; 2) to ci ¾ag trójelementowy, gdy tymczasem f1; 1; 2g = f1; 2g = f2; 1g jest zbiorem dwuelementowym.
Zadanie 1.19. 1. Ile jest ci ¾agów 3-elementowych o warto´sciach w zbiorze 2 elemen- towym.
2. Ile jest ci ¾agów n-elementowych o warto´sciach w zbiorze k elementowym (zob. Zadanie .1.3, pkt 5).
3. Ile jest podzbiorów n-elementowych o warto´sciach w zbiorze k elementowym (zob.
Zadanie .1.3, pkt 4).
1.3. Grafy
Poj ¾ecie grafu w rozwa·zanej teorii jest bardzo ogólne. Jest to uk÷ad z÷o·zony ze sko´nczonego zbioru Q; którego elementy nazywamy wierzcho÷ków, wyró·znionego zbioru par (uporz ¾ad- kowanych) tych wierzcho÷ków zwanych kraw¾edziami oraz dodatkowo kraw¾edzie s ¾a oznaczone tzn. przypisane s ¾a im elementy pewnego sko´nczonego zbioru (oznaczenia te zwane s ¾a równie·z etykietami). Zatem precyzyjnie grafem o zbiorze wierzcho÷ków Q i zbiorze oznacze´n kraw¾edzi nazywamy dowoln ¾a par ¾e (Q; G); gdzie Q jest zbiorem sko´nczonym i G Q Q : Nie wykluczamy to przypadku = ;; tzn. grafu bez oznacze´n kraw¾edzi. Wtedy rozumiemy, ze G· Q Q:
Je´sli (s; t; a) 2 G tzn. (s; t; a) jest kraw¾edzi ¾a o etykiecie a, to rysujemy to nast ¾epuj ¾aco
Gdy (s; t; a); (s; t; b) 2 G; tzn. mamy dwie kraw¾edzie o tych samych wierzcho÷kach, to dla oszcz ¾edno´sci rysujemy to nast ¾epuj ¾aco
Zauwa·zmy, ·ze w my´sl naszej de…nicji mo·zliwe s ¾a kraw¾edzie ÷¾acz ¾ace ten sam wierzcho÷ek tzn. mog ¾a istnie´c kraw¾edzie (s; s; a) 2 G
Drog ¾a w gra…e G nazywamy ka·zdy ci ¾ag wierzcho÷ków (s1; s2; :::; sn); n > 2; takich, ze ka·· zde dwa s ¾asiednie wierzcho÷ki w tym ci ¾agu stanowi ¾a kraw¾ed´z grafu G tzn. (s1; s2; a1);
(s2; s3; a2); :::; (sn 1; sn; an 1) 2 G dla pewnych a1; a2; :::; an 12 :
Drog ¾e (s1; s2; :::; sn) w gra…e G nazywamy cyklem, gdy s1 = sn:
Graf G nazywamy drzewem, gdy 1. w G nie istniej ¾a cykle,
2. w G wyró·zniony jest jeden wierzcho÷ek s0 (zwany korzeniem G) taki, ·ze dla ka·zdego innego wierzcho÷ka s grafu G istnieje dok÷adnie jedna droga od s0 do s:
J ¾ezyki regularne
W rozdziale tym poznamy najprostsz ¾a klas ¾e j ¾ezyków formalnych - j ¾ezyki regularne. S ¾a one generowane przez wyra·zenia regularne. Klasa tych j ¾ezyków b ¾edzie akceptowana przez najprostsze modele komputerów tzw. automaty sko´nczone, które poznamy w Rozdziale 3.
2.1. Alfabety i j ¾ezyki formalne
Alfabetem nazywamy dowolny sko´nczony zbiór (mo·ze to by´c równie·z zbiór pusty ;).
B ¾edziemy oznaczali go zwykle przez (du·za litera grecka sigma): Elementy alfabetu nazywamy symbolami.
Przyk÷ad 2.1. Poniewa·z alfabet zde…niowali´smy bardzo ogólnie, jako dowolny sko´nczony zbiór, wi ¾ec przyk÷adami alfabetów mog ¾a by´c nast ¾epuj ¾ace zbiory: = f0; 1g; = fxg; = fa; bg; = f0; 1; :::; 9g; = flitery alfabetu ÷aci´nskiegog = fa; b; c; :::; zg; = ftrue, falseg:
W tym ostatnim przyk÷adzie zbiór jest dwuelementowy, a wi ¾ec alfabet ten zawiera dwa symbole. Nie s ¾a alfabetami: zbiór liczb naturalnych N =f1; 2; 3; : : :g; zbiór liczb ca÷kowitych Z =f0; 1; 2; 3; : : :g; bo nie s ¾a zbiorami sko´nczonymi.
Niech b ¾edzie dowolnym alfabetem. S÷owem utworzonym z alfabetu (lub krótko s÷owem z ) nazywamy dowolny, sko´nczony ci ¾ag z lub inaczej dowoln ¾a n-tk¾e, n > 1 z alfabetu ; czyli dowolny element iloczynu kartezja´nskiego n = | :::{z }
n-razy
; gdzie n jest dowoln ¾a liczb ¾a naturaln ¾a. Zatem, je´sli a1; a2; :::; an 2 ; to s÷owem z alfabetu jest (a1; a2; :::; an): Dodatkowo okre´slamy s÷owo puste jako ci ¾ag 0 symboli z alfabetu : S÷owo puste b ¾edziemy oznacza´c symbolem (lambda): Oczywi´scie w dalszym ci ¾agu b ¾edziemy za- k÷ada´c, ·ze symbol nie nale·zy do ·zadnego z alfabetów, które b ¾edziemy rozwa·za´c.
Uwaga 2.2. Ze wzgl ¾edu na trudno´s´c w precyzyjnym zrozumieniu poj ¾ecia s÷owa pustego podajemy jego ´scis÷¾a de…nicj ¾e w j ¾ezyku teorii zbiorów. Mianowicie, zauwa·zmy, ·ze ka·zda n- tka z dla n > 1 mo·ze by´c zde…niowana jako funkcja f : Jn ! ; gdzie Jn := f1; :::; ng:
Wówczas w tym uj ¾eciu s÷owo puste jest jedyn ¾a funkcj ¾a odwzorowuj ¾ac ¾a zbiór pusty ; w tzn.
: ; ! :
Je´sli (a1; a2; :::; an) 2 n jest s÷owem z tzn. a1; a2; :::; an 2 ; to w rozwa·zanej teorii oznaczamy je nast ¾epuj ¾aco a1a2:::an (powód przyj ¾ecia takiego oznaczenia poznamy za chwil ¾e, gdy zde…niujemy poj ¾ecie z÷o·zenia s÷ów). Ponadto dla skrócenia zapisów przyjmujemy umow¾e, ze je´sli jaki´s symbol wyst ¾· epuje w danym s÷owie wielokrotnie obok siebie to stosujemy zapis pot ¾egowy. Na przyk÷ad a2 to aa; x5= xxxxx itp.
Przyk÷ad 2.3. 1. Niech = fa; bg: Wówczas s÷owami z tego alfabetu s ¾a: aabaaa = a2ba3; a; ; bbbb = b4; a0 = .
2. Niech = flitery alfabetu ÷aci´nskiegog: Wówczas s÷owami z tego alfabetu s ¾a: abbbb;
ala; student:
3. Niech = fa; b; +; ; (; )g: Wówczas s÷owami z tego alfabetu s ¾a: (a + b) b2; a b; ((+));
(2+)3 = ((+))):
Poniewa·z b ¾edziemy zajmowa´c si ¾e formalnymi w÷asno´sciami s÷ów i zbiorów s÷ów, wi ¾ec na ogó÷b ¾edziemy stosowa´c nast ¾epuj ¾ace oznaczenia:
1. symbole rozwa·zanego alfabetu b ¾edziemy oznacza´c pocz ¾atkowymi ma÷ymi literami alfabetu ÷aci´nskiego tzn. a; b; c; :::, ewentualnie z indeksami a1; a2; :::.
9
2. s÷owa z rozwa·zanego alfabetu b ¾edziemy oznacza´c pocz ¾atkowymi du·zymi literami alfabetu ÷aci´nskiego tzn. A; B; C; :::, ewentualnie z indeksami A1; A2; :::.
Je´sli jest alfabetem, to domkni ¾eciem nazywamy zbiór wszystkich s÷ów utworzonych z alfabetu i oznaczamy : Zauwa·zmy, ·ze zgodnie z nasza de…nicj ¾a s÷owo puste jest s÷owem utworzonym z alfabetu ; a wi ¾ec zawsze 2 :
Przyk÷ad 2.4. 1. Niech = fag: Wówczas = f ; a; aa; aaa; :::g = f ; a; a2; a3; :::g = fan: n 2 N0 = N [ f0gg:
2. Niech = ;: Wówczas = ; = f g:
3. Niech = fa; bg: Wówczas = f ; a; b; aa; ab; bb; ba; ::::g:
Je´sli A 2 jest s÷owem z ró·znym od s÷owa pustego i A = a1a2:::an, gdzie a1; a2; :::; an2 , to n nazywamy d÷ugo´sci ¾a s÷owa A i oznaczamy jAj tzn. jAj = n: Dodatkowo przyjmu- jemy j j = 0:
Przyk÷ad 2.5. 1. Niech = fa; bg: Wówczas jaabbj = 4; a2b3 = 5; j j = 0:
2. Niech = f0; 1g: Wówczas j000j = 3; j1j = 1:
Zadanie 2.6. Ile s÷ów mo·zna utworzy´c z alfabetu ÷aci´nskiego (24 symbole) o d÷ugo´sci 0, o d÷ugo´sci 1, o d÷ugo´sci 2, o d÷ugo´sci 100?
Zadanie 2.7. Niech = fa; bg; 1 = fag; 2 = fbg: Opisa´c s÷owa nale·z ¾ace do n ( 1[ 2):
J ¾ezykiem formalnym (lub krótko j ¾ezykiem)nazywamy dowolny zbiór s÷ów z dowol- nego alfabetu : Poniewa·z przez oznaczyli´smy zbiór wszystkich s÷ów z ; wi ¾ec inaczej mówi ¾ac j ¾ezykiem formalnym nazywamy dowolny podzbiór ; tzn. dowolny zbiór s÷ów L taki, ·ze
L :
W dalszym ci ¾agu j ¾ezyki b ¾edziemy oznacza´c liter ¾a L (od angielskiego s÷owa ”language”), ewentualnie z indeksami np. L1; L2; :::.
Z powy·zszej de…nicji wynika, ·ze je´sli dany jest jaki´s alfabet ; to wyró·znienie w jakikol- wiek sposób pewnych s÷ów utworzonych z tego alfabetu jest ju·z okre´sleniem pewnego j ¾ezyka.
Nie narzucamy tutaj ·zadnych warunków na zbiór s÷ów tworz ¾acych dany j ¾ezyk. W szczegól- no´sci nie zak÷adamy, czy ma to by´c zbiór sko´nczony, niesko´nczony, niepusty itp.
Przyk÷ad 2.8. 1. Niech = f0; 1; :::; 9g: Wówczas przyk÷adami j ¾ezyków z s ¾a:
(i) L = fdowolne s÷owo nie zaczynaj ¾ace si ¾e od symbolu 0g = f1; 2; :::; 10; 11; :::g : Zauwa·zmy, ·ze s÷owa 0; 011; 001 =2 L: J ¾ezyk L mo·ze by´c uto·zsamiony ze zbiorem liczb naturalnych N;
(ii) L = ; ; (iii) L = f g :
2. Niech = flitery alfabetu polskiegog = fa; ¾a; b; c; c; :::; _z; zg: Wówczas przyk÷adami j ¾ezyków z s ¾a:
(i) L = fzbiór s÷ów w danym s÷owniku j ¾ezyka polskiegog ; (ii) L = fkot; piesg - j ¾ezyk sk÷adaj ¾acy si ¾e tylko z dwóch s÷ów.
3. Niech = fa; bg: Wówczas przyk÷adami j ¾ezyków z s ¾a:
(i) L = fanbn: n 2 Ng = fab; aabb; aaabbb; :::g ;
(ii) L = fpalindromyg = fs÷owa z ; które czytane zarówno od lewej jak i od prawej strony s ¾a takie sameg = f ; a; b; aa; bb; aba; aaa; ::::g = fa1a2:::an 2 : a1a2:::an = anan 1:::a1g: J ¾ezyk ten ma nazw ¾e w÷asn ¾a: PALINDROMY.
(iii) L = fparzyste palindromyg = fA 2PALINDROMY: jAj jest liczb ¾a parzyst ¾ag=f ; aa; bb; aaaa; :::g.
J ¾ezyk ten ma równie·z nazw ¾e w÷asn ¾a: PPALINDROMY.
(iv) L = fnieparzyste palindromyg = fA 2PALINDROMY: jAj jest liczb ¾a nieparzyst ¾ag=fa; b; aaa; :::g.
J ¾ezyk ten ma równie·z nazw ¾e w÷asn ¾a: NPALINDROMY.
Zadanie 2.9. Udowodni´c, ·ze ilo´s´c s÷ów w j ¾ezyku PALINDROMY o d÷ugo´sci 2n jest taka sama jak ilo´s´c s÷ów o d÷ugo´sci 2n 1 dla dowolnego n 2 N.