ezyki, automaty i obliczenia



Podobne dokumenty
P. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Wyk lad 7 Baza i wymiar przestrzeni liniowej

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

Wyk lad 8 macierzy i twierdzenie Kroneckera-Capellego

Złożoność obliczeniowa

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

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

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Niech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach:

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}

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Wyk lad 3 Wyznaczniki

Wyk lad 1 Podstawowe struktury algebraiczne

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Wyk lad 4 Warstwy, dzielniki normalne

Języki, automaty i obliczenia

Wyk lad 11 1 Wektory i wartości w lasne

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

Wyk lad 2 Podgrupa grupy

Hierarchia Chomsky ego Maszyna Turinga

Maszyna Turinga języki

Matematyczne Podstawy Informatyki

Wyk lad 5 Grupa ilorazowa, iloczyn prosty, homomorfizm

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

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Języki, automaty i obliczenia

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)

PODSTAWOWE W LASNOŚCI W ZBIORZE LICZB RZECZYWISTYCH

Wyk lad 3 Wielomiany i u lamki proste

Wyk lad 6 Podprzestrzenie przestrzeni liniowych

Hierarchia Chomsky ego

Imię, nazwisko, nr indeksu

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

Teoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej

Grupy i cia la, liczby zespolone

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 9

Normy wektorów i macierzy

Wyk lad 12. (ii) najstarszy wspó lczynnik wielomianu f jest elementem odwracalnym w P. Dowód. Niech st(f) = n i niech a bedzie

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

Wyk lad 14 Cia la i ich w lasności

1 Automaty niedeterministyczne

Indeks odwzorowania zmiennej zespolonej wzgl. krzywej zamknietej

Ekonomia matematyczna i dynamiczna optymalizacja

Wyrażenia regularne.

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

Języki, automaty i obliczenia

Wyk lad 9 Przekszta lcenia liniowe i ich zastosowania

Przestrzenie wektorowe, liniowa niezależność Javier de Lucas

Wyk lad 14 Formy kwadratowe I

Obliczenia inspirowane Naturą

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

Języki formalne i automaty Ćwiczenia 4

Niezmienniki i pó lniezmienniki w zadaniach

Statystyka w analizie i planowaniu eksperymentu

Uzgadnianie wyrażeń rachunku predykatów. Adam i orzeszki. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Języki formalne i automaty Ćwiczenia 1

Teoretyczne podstawy informatyki

Prostota grup A n. Pokażemy, że grupy A n sa. proste dla n 5. Dowód jest indukcyjny i poprzedzimy go lematem.

FUNKCJE LICZBOWE. x 1

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Rachunek zdań - semantyka. Wartościowanie. ezyków formalnych. Semantyka j. Logika obliczeniowa. Joanna Józefowska. Poznań, rok akademicki 2009/2010

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

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

WYK LAD 2: PODSTAWOWE STRUKTURY ALGEBRAICZNE, PIERWIASTKI WIELOMIANÓW, ROZK LAD FUNKCJI WYMIERNEJ NA U LAMKI PROSTE

1 Działania na zbiorach

(α + β) a = α a + β a α (a + b) = α a + α b (α β) a = α (β a). Definicja 4.1 Zbiór X z dzia laniami o wyżej wymienionych w lasnościach

LOGIKA ALGORYTMICZNA

Drzewa podstawowe poj

Statystyka w analizie i planowaniu eksperymentu

WYK LAD 5: GEOMETRIA ANALITYCZNA W R 3, PROSTA I P LASZCZYZNA W PRZESTRZENI R 3

10110 =

Języki formalne i automaty Ćwiczenia 7

Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007

Rachunek lambda CBN i CBV

MATEMATYKA DYSKRETNA - wyk lad 1 dr inż Krzysztof Bryś. Wprowadzenie

Statystyka w analizie i planowaniu eksperymentu

Uproszczony dowod twierdzenia Fredricksona-Maiorany

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 3 Tablice trwania życia 2

Wzory Viete a i ich zastosowanie do uk ladów równań wielomianów symetrycznych dwóch i trzech zmiennych

25 lutego 2013, godzina 23: 57 strona 1. P. Urzyczyn: Materia ly do wyk ladu z semantyki. Logika Hoare a

Jaki język zrozumie automat?

Rozdzia l 2. Najważniejsze typy algebr stosowane w logice

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010

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

celu przyjmijmy: min x 0 = n t Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt, czyli n

2 Rodziny zbiorów. 2.1 Algebry i σ - algebry zbiorów. M. Beśka, Wstęp do teorii miary, rozdz. 2 11

Matematyka A, klasówka, 24 maja zania zadań z kolokwium z matematyki A w nadziei, że pope lni lem wielu b le. rozwia

Algebra i jej zastosowania konspekt wyk ladu, czȩść druga

Przykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny:

2 Podobieństwo dwóch sekwencji

Algebra i jej zastosowania konspekt wyk ladu, cz

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

Liczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza. Oś liczbowa. Liczba 1, to nie jest liczba pierwsza

0.1 Sposȯb rozk ladu liczb na czynniki pierwsze

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

Matematyczne Podstawy Informatyki

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

Transkrypt:

J ezyki, automaty i obliczenia Wyk lad dla III roku informatyki, zima 2002-03 Pawe l Urzyczyn http://www.mimuw.edu.pl/ urzy/jaio.html S lowa i j ezyki Wyk lad 1 Definicja 1.1 S lowo nad alfabetem A to dowolny skończony ciag elementów zbioru A. Dok ladniej, jest to dowolna funkcja w : n A, gdzie n jest pewna liczba naturalna. Liczbe te nazywamy d lugościa s lowa w, i zapisujemy to tak: n = w. A wiec s lowo baba to funkcja w : 4 {a, b}, spe lniaj aca warunki { b, jeśli i jest parzyste; w(i) = a, jeśli i jest nieparzyste Zbiór wszystkich s lów n-literowych nad A (s lów o d lugości n) pokrywa sie wiec ze zbiorem A n wszystkich funkcji z n do A. Zbiór wszystkich s lów nad A oznaczamy przez A. Szczególnym s lowem jest jedyne s lowo o d lugości 0. Jest to s lowo puste, czyli funkcja pusta. Oznaczamy je przez ε. Zbiór s lów niepustych oznaczamy przez A +. Fakt 1.2 Jeśli alfabet A jest przeliczalny to zbiór wszystkich s lów A też jest przeliczalny. Konkatenacja (z lożeniem) s lów w : n A i v : m A nazywamy s lowo w v powsta le przez dopisanie s lowa v na końcu s lowa w. A zatem w v : n + m A, a dla i < n + m mamy: { w(i), jeśli i < n; (w v)(i) = v(i n), w przeciwnym przypadku. Operacja konkatenacji jest l aczna, na przyk lad:

ein (und zwanzig) = (ein und) zwanzig = einundzwanzig S lowo puste jest elementem neutralnym konkatenacji, tj. ε w = w ε = w dla dowolnego s lowa w. A zatem algebra A,, ε jest pó lgrup a z jednościa. W istocie jest to pó lgrupa wolna generowana przez A. Fakt 1.3 Dla dowolnych s lów w, v A, w v u A (v = w u). Dowód: Ćwiczenie. A zatem w v oznacza dok ladnie tyle, że s lowo w jest przedrostkiem (prefiksem) s lowa v. Definicja 1.4 J ezyk nad alfabetem A to dowolny zbiór s lów nad A (dowolny podzbiór zbioru A ). Naturalne operacje na j ezykach to dzia lania mnogościowe: suma, iloczyn i różnica, a także sk ladanie (konkatenacja) j ezyków: L 1 L 2 = {w v w L 1 v L 2 }. Oczywiście zamiast L L można napisać L 2. Ogólniej, przyjmujemy że L 0 = {ε} oraz L n+1 = L L n. J ezyk L = {L n n N} nazywamy iteracja jezyka L. Definicja 1.5 Klasa jezyków regularnych (nad A) to najmniejsza rodzina jezyków R, spe lniajaca warunki R; {ε} R; {a} R, dla wszystkich a A; L 1 L 2 R, dla wszystkich L 1, L 2 R; L 1 L 2 R, dla wszystkich L 1, L 2 R; L R, dla wszystkich L R. 2

Inaczej mówiac, klasa R zawiera najprostsze możliwe jezyki i jest zamknieta ze wzgledu na operacje sumy, sk ladania i iteracji. Jezyki regularne sa zwykle reprezentowane za pomoca wyrażeń regularnych, które definiujemy tak: jest wyrażeniem regularnym; ε jest wyrażeniem regularnym; jeśli a A to a jest wyrażeniem regularnym; jeśli α i β sa wyrażeniami regularnymi, to α β i α β sa wyrażeniami regularnymi. jeśli α jest wyrażeniem regularnym, to α jest wyrażeniem regularnym. Wyrażeniu regularnemu α odpowiada jezyk regularny L α, określony tak: L =, L ε = {ε}, L a = {a}, L α β = L α L β, L α β = L α L β. Jeśli przyjmiemy kilka konwencji notacyjnych, to bedziemy mogli w ogóle nie odróżniać jezyka od definiujacego go wyrażenia: Jeśli w A to zamiast {w} piszemy po prostu w ; Jeśli a A to liter e a utożsamiamy ze s lowem jednoliterowym. Na przyk lad al oznacza wiec jezyk {aw w L}. Oczywiście litera a, s lowo jednoliterowe a i jezyk a to trzy różne rzeczy, ale zwykle z kontekstu wynika, która z nich mamy na myśli. Automaty skończone Niedeterministyczny automat skończony definiujemy jako krotk e: gdzie: A jest skończonym alfabetem; Q jest skończonym zbiorem stanów; q 0 Q jest stanem poczatkowym; M = Q, A, δ, q 0, F, F Q jest zbiorem stanów końcowych; δ (Q A) Q jest relacja przejścia. 3

Automat jest deterministyczny, gdy δ jest funkcja: δ : (Q A) Q. Automat można przedstawiać jako graf, którego wierzcho lki to stany. Stany q i p sa po l aczone krawedzi a o etykiecie a, gdy trójka q, a, p jest w relacji δ. Na obrazku 1 mamy przyk lad automatu o zbiorze stanów {0, 1, 2, 3}, nad alfabetem {a, b}, o relacji przejścia z lożonej z trójek: 0, b, 0, 0, a, 1, 0, a, 3, 1, a, 1, 1, b, 1, 1, b, 2, 2, a, 3, 3, b, 3. Stanem poczatkowym naszego automatu jest 0, a stanem końcowym 3. b 0 a 1 a, b a b 3 a 2 b Obrazek 1: Taki sobie automat Dzia lanie automatu należy sobie wyobrażać tak: W stanie q automat czyta z wejścia litere a i przechodzi do nowego stanu p, spe lniaj acego warunek q, a, p δ. Zapisujemy to tak: albo tak: albo po prostu tak: a M q q a p, a M p, q a p. Relacje uogólniamy nastepuj aco: jeżeli w = a 1 a 2... a n, to że istnieje ciag przejść: Taki ciag nazywamy obliczeniem automatu. 1 a q = s 1 a 0 2 a n 1 a s1 n sn 1 sn = p. M q w p oznacza, Automat M akceptuje s lowo w, wtedy i tylko wtedy, gdy q 0 q, dla pewnego q F. w Uwaga: w ogólności może być wiele obliczeń realizujacych relacje q 0 q, ale jeśli automat jest deterministyczny, to co najwyżej jedno. Jezykiem akceptowanym przez M nazywamy jezyk: L(M) = {w A M akceptuje w}. 1 Czasem obliczeniami nazywa sie tylko te ciagi, które zaczynaja sie w q 0. 4 w

Wyk lad 2 Automaty skończone akceptuja jezyki regularne Za lóżmy, że mamy automat M = Q, A, δ, q 0, F, i że Q = {q 0,..., q n }. Chcemy wyznaczyć jezyk L(M). W tym celu wygodnie jest rozważać n odmian automatu M, różniacych sie stanami poczatkowymi. Niech M i = Q, A, δ, q i, F i niech L i = L(M i ), dla i = 1,..., n. Oczywiście L(M) = L 0. Dalej niech A ij a = {a A q i q j }. Nietrudno zauważyć, że nasze jezyki spe lniaj a równania: L i = A i0 L 0 A i1 L 1 A in L n gdy q i F ; L i = A i0 L 0 A i1 L 1 A in L n ε gdy q i F. Lemat 2.1 Jeśli A, B A oraz ε A, to istnieje dok ladnie jeden jezyk L A spe lniajacy warunek: L = AL B, a mianowicie L = A B. Inaczej mówiac, równanie L = AL B ma wtedy dok ladnie jedno rozwiazanie L = A B. Dowód: Sprawdzenie, że L = A B jest rozwiazaniem równania jest latwe: AL B = A(A B) B = AA B B = (AA ε)b = A B = L. Niech wiec L bedzie dowolnym jezykiem spe lniaj acym L = AL B. Przez indukcje pokażemy, że dla dowolnego k zachodzi A k B L. Stad zaś wynika A B L. Dla k = 0 mamy A 0 B = B AL B = L. Za lóżmy wiec, że A k B L. Wtedy A k+1 B = A(A k B) AL AL B = L. Aby pokazać, że L A B, przypuśćmy, że w L. Przez indukcje ze wzgledu na d lugość w pokażemy, że w A B. Za lóżmy wiec, że każde s lowo v z jezyka L, którego d lugość jest mniejsza od w, należy także do A B. Skoro w L = AL B, to albo w AL albo w B. Jeśli w B to w A B, i dobrze. Niech wiec w AL, czyli w = uv dla pewnych u A i v L. Na dodatek v < w (bo u A oznacza, że u ε). Z za lożenia indukcyjnego v A B, a stad w = uv AA B A B i też jest dobrze. Uwaga: Jeśli ε A, to jezyk L = A B jest najmniejszym rozwiazaniem równania L = AL B (czyli najmniejszym punktem sta lym operatora L AL B). 5

Wniosek 2.2 Niech ε A ij, dla i, j = 0,..., n. Wtedy istnieje dok ladnie jedno rozwiazanie L 0,..., L n uk ladu rownań i wszystkie te jezyki sa regularne. L 0 = A 00 L 0 A 01 L 1 A 0n L n B 0 L 1 = A 10 L 0 A 11 L 1 A 1n L n B 1.......................... L n = A n0 L 0 A n1 L 1 A nn L n B n, Dowód: Przypadek n = 0 wynika z poprzedniego lematu. Dla n > 0 postepujemy przez indukcje. W tym celu należy zauważyć, że nasz uk lad równań ma te same rozwiazania co uk lad z lożony z równania i równań L 0 = A 00(A 01 L 1 A 0n L n B 0 ) L 1 = (A 11 A 10 A 00A 01 )L 1 (A 1n A 10 A 00A 0n )L n (B 1 A 10 A 00B 0 )........................... L n = (A 11 A n0 A 00A 01 )L 1 (A 1n A n0 A 00A 0n )L n (B 1 A n0 A 00B 0 ) Istotnie, przypuśćmy, że jezyki L 0,..., L 1 stanowia rozwiazanie starego uk ladu. Wtedy równość L 0 = A 00(A 01 L 1 A 0n L n B 0 ) wynika z Lematu 2.1, bo ε A 00. Wstawiajac to do pozosta lych równań otrzymujemy nowy uk lad. 2 Podobnie latwo można sprawdzić, że każde rozwiazanie nowego uk ladu jest też rozwiazaniem starego uk ladu. Pozostaje zauważyć, że wspó lczynniki przy L i w nowym uk ladzie równań nadal nie zawieraja s lowa pustego i zastosować za lożenie indukcyjne, bo równań jest o jedno mniej. Twierdzenie 2.3 Dla dowolnego automatu skończonego M, j ezyk L(M) jest regularny. Dowód: Jak już zauważyliśmy, jezyk L(M) jest pierwsza wspó lrz edn a rozwiazania a pewnego uk ladu równań o wspó lczynnikach A ij = {a A q i q j }. Oczywiście ε A ij, zatem teza wynika z Wniosku 2.2. 2 W istocie przekszta lcamy uk lad równań stosujac dobrze znana metode eliminacji niewiadomych. 6

Przyk lad 2.4 Dla automatu z obrazka mamy uk lad równań: L 0 = bl 0 al 1 al 3 L 1 = (a b)l 1 bl 2 L 2 = al 3 L 3 = bl 3 ε Po rozwiazaniu metoda eliminacji niewiadomych, dostaniemy L 0 = b a((a b) ba ε)b. I żadnych innych Twierdzenie 2.5 Dla dowolnego j ezyka regularnego L istnieje automat skończony, który go akceptuje. Dowód: Przypomnijmy, że j ezyk jest regularny, wtedy i tylko wtedy, gdy: jest równy lub ε, lub jednoliterowy; jest konkatenacja dwóch jezyków regularnych; jest suma dwóch jezyków regularnych; jest iteracja jezyka regularnego. Jeśli L jest pusty lub L = ε, to wystarczy automat jednostanowy, gdzie F jest w pierwszym przypadku puste, w drugim nie. Dla j ezyka z lożonego z jednej litery a potrzeba dwóch stanów i przejścia q 0, a, q, gdzie F = {q}. Za lóżmy, że L = L 1 L 2, gdzie L 1 = L(M 1 ) i L 2 = L(M 2 ). Niech M 1 = Q 1, A, δ 1, q 1 0, F 1 oraz M 2 = Q 2, A, δ 2, q 2 0, F 2. Wtedy L = L(M), dla pewnego automatu gdzie relacja przejścia jest taka: M = Q 1 Q 2, A, δ, q 1 0, F, δ = δ 1 δ 2 { f, a, q f F 1 q 2 0, a, q δ 2 }. Nasz automat jest wiec suma automatów M 1 i M 2, w której wszystkie krawedzie wychodzace ze stanu poczatkowego M 2 zdublowano krawedziami wychodzacymi ze stanów końcowych M 1. Automat M naśladuje wiec najpierw automat M 1 a po osiagni eciu stanu końcowego może przejść do symulacji automatu M 2. Chcemy, żeby M akceptowa l s lowa u postaci uv dla których istnieja przejścia q 0 f F 1 w automacie M 1, oraz przejścia v q 0 f F 2 w automacie M 2. Dlatego definiujemy F = F 2 gdy q0 2 F 2, ale musimy przyjać F = F 1 F 2 gdy q0 2 F 2, tj. gdy M 2 akceptuje s lowo puste. 7

Niech teraz L = L 1 L 2, i znowu L 1 = L(M 1 ) i L 2 = L(M 2 ), dla pewnych automatów M 1 = Q 1, A, δ 1, q 1 0, F 1 oraz M 2 = Q 2, A, δ 2, q 2 0, F 2. Wtedy L = L(M), gdzie Relacja przejścia jest taka: M = Q 1 Q 2 {q 0 }, A, δ, q 0, F. δ = δ 1 δ 2 { q 0, a, q q 1 0, a, q δ 1 } { q 0, a, q q 2 0, a, q δ 2 }, a zbiorem stanów końcowych jest F 1 F 2, gdy q 1 0 F 1 i q 2 0 F 2 ; F 1 F 2 {q 0 }, w przeciwnym przypadku. Ten automat na poczatku wybiera, czy chce symulować zachowanie M 1, czy M 2, a potem robi, co postanowi l. Pozostaje przypadek, gdy L = L 1. Niech L 1 = L(M 1 ), gdzie M 1 = Q 1, A, δ 1, q0, 1 F 1. Jezyk L jest akceptowany przez automat M = Q 1, A, δ, q 0, F, gdzie F = F 1 {q 0 }, z relacja przejścia δ = δ 1 { f, a, q f F q0, 1 a, q δ 1 }. Te konstrukcje należy sobie wyobrażać jako doklejenie stanów końcowych automatu do jego stanu poczatkowego. 2.1 Pompowanie Twierdzenie 2.6 (Lemat o pompowaniu) Dla dowolnego jezyka regularnego L istnieje sta la n N o nastepuj acej w lasności: Jeżeli w L oraz w n to s lowo w można przedstawić w postaci w = uvz, gdzie v ε; uv n; i N(uv i z L) (w szczególności uz L). Sta l a n można efektywnie wyznaczyć np. na podstawie automatu akceptujacego L. Dowód: Niech M = Q, A, δ, q 0, F bedzie automatem akceptujacym L. Definiujemy n jako liczbe elementów zbioru Q. Weźmy takie w = a 1 a 2 a m L, że m = w n i rozpatrzmy obliczenie akceptujace w. Jest to taki ciag stanów: a q 0 = s 1 a 0 2 a m 1 a s1 m sm 1 sm F. 8

Ponieważ stanów s 0, s 1,..., s m jest m + 1 > n, wiec dwa z nich musza być takie same, tj. s i = s j dla pewnych i < j. Co wiecej, można wybrać liczby i, j tak, że i, j n. Rozbicie s lowa w na trzy cześci określamy tak: u = a 1 a i ; v = a i+1 a j ; z = a j+1 a m. Oczywiście v ε, bo i j, oraz uv n, bo j m. Trzeci warunek wynika stad, że zarówno ciag a q 0 = s 1 a 0 2 a s1 i a j+1 a j+2 a si sj+1 m sm, jak i każdy z ciagów a q 0 = s 1 a 0 2 a s1 i a i+1 a i+2 a j a i+1 a i+2 a j a i+1 si si+1 sj si+1 sj jest poprawnym obliczeniem akceptujacym automatu M. ai+1 a i+1 a j a j+1 s i+1 sj sj+1 a m sm, Przyk lad 2.7 Jezyk L = {ww R w A } nie jest regularny, bo dla dostatecznie dużego N, s lowo 0 N 110 N nie daje sie przedstawić w postaci 0 N 110 N = uvz, spe lniaj acej wymagania lematu o pompowaniu. Prefiks uv sk lada lby sie wtedy z samych zer (bo jest krótki) i przyjmujac, że v = k, mielibyśmy 0 N+ik 110 N L, dla dowolnego k = 1, 0, 1, 2,... Determinizacja Wyk lad 3 Twierdzenie 3.1 Każdy j ezyk regularny jest akceptowany przez pewien automat deterministyczny. Dowód: Niech M = Q, A, δ, q 0, F bedzie dowolnym automatem skończonym. Konstruujemy deterministyczny automat M = Q, A, δ, q 0, F, akceptujacy ten sam jezyk. Zbiorem stanów M jest zbiór potegowy P(Q). Stan poczatkowy to zbiór jednoelementowy q 0 = {q 0 }. Zbiorem stanów końcowych jest rodzina tych podzbiorow Q, które maja niepuste przeciecia z F : F = {Z Q Z F }. 9

Wreszcie funkcja przejścia jest określona tak: δ (Z, a) = {q Q p Z(p a q)}. Powyższa konstrukcja jest oparta na takim pomyśle: warunek M {q 0 } Z oznacza, w że zbiór Z sk lada sie ze wszystkich stanów osiagalnych z q 0 za pomoca relacji M. Dok ladniej: ( ) M q 0 w w Z w, gdzie Z w = {q Q M q 0 q}. Warunku ( ) latwo można dowieść przez indukcje ze wzgledu na w, korzystajac z równości Z wa = δ (Z w, a). A zatem: L(M ) = {w A M q 0 w Z, dla pewnego Z F } = {w A Z w F } = {w A Z w F } = {w A w M q 0 q, dla pewnego q F } = L(M). w Wniosek 3.2 Nastepuj ace warunki sa równoważne: L jest j ezykiem regularnym. L jest akceptowany przez pewien automat skończony. L jest akceptowany przez pewien deterministyczny automat skończony. Wniosek 3.3 a) Jeśli jezyki L 1 i L 2 sa regularne to L 1 L 2 jest regularny. b) Jeśli j ezyk L jest regularny to L też jest regularny 3. Dowód: (a) Niech M 1 = Q 1, A, δ 1, q0, 1 F 1 oraz M 2 = Q 2, A, δ 2, q0, 2 F 2 bed a automatami deterministycznymi akceptujacymi odpowiednio L 1 i L 2. Automat akceptujacy iloczyn jest taki: M = Q 1 Q 2, A, δ, q0, 1 q0, 2 F 1 F 2. Funkcja przejścia jest określona tak: δ( q 1, q 2, a) = δ 1 (q 1, a), δ 2 (q 2, a). Automat M realizuje równolegle symulacj e obu automatów M 1 i M 2. (b) Jeśli deterministyczny automat M = Q, A, δ, q 0, F akceptuje jezyk L to wystarczy zamienić F na Q F i otrzymamy automat akceptujacy jezyk L. 3 Przez L oznaczamy A L (dope lnienie do A ). 10

Ilorazy Zdefiniujemy teraz (tym razem poprawnie) poj ecie lewo- i prawostronnego ilorazu j ezyków. L 1 \L 2 = {x A y L 2 (y x L 1 )} (iloraz lewostronny) L 1 /L 2 = {x A y L 2 (x y L 1 )} (iloraz prawostronny) Lemat 3.4 L\ε = L; (L\w)\a = L\wa; Warunki ε L\w i w L sa równoważne. Dowód: Latwy, jeśli si e nie pomyli ilorazów... Twierdzenie 3.5 J ezyk jest regularny wtedy i tylko wtedy, gdy ma tylko skończenie wiele różnych ilorazów lewostronnych. Dowód: (= ) Niech L = L(M) dla pewnego deterministycznego automatu M = Q, A, δ, q 0, F. Przyjmujac Q = {q 0,..., q n } możemy, jak już robiliśmy to wcześniej, rozważać maszyny M i = Q, A, δ, q i, F i jezyki L i = L(M i ), dla i = 1,..., n. w Jeśli teraz q 0 q i to L i = {v A wv L} = L\w, bo maszyna jest deterministyczna. Zatem dla dowolnego s lowa w, iloraz L\w jest jednym z jezyków L i. Ponieważ dla dowolnego S, zachodzi L\S = {L\w w S}, a takich sum jest tylko skończenie wiele, wiec L ma tylko skończenie wiele ilorazów. ( =) Definiujemy deterministyczny automat M = Q, A, δ, q 0, F, gdzie: Q jest zbiorem wszystkich ilorazów j ezyka L. δ(l, a) = L \a, dla L Q i a A}. q 0 = L. F = {L Q ε L }. 11

Zauważmy, że automat jest deterministyczny. Latwo widzieć, że dla dowolnego s lowa w zachodzi M L w L\w. Zatem w L(M) wtedy i tylko wtedy, gdy ε L\w, czyli wtedy i tylko wtedy, gdy w L. W lasności ilorazów lewostronnych i prawostronnych sa analogiczne z powodu symetrii. Dlatego powyższe twierdzenie zachodzi też dla ilorazów prawostronnych. Wystarczy w tym celu zauważyć, że: Jeśli L jest regularny to L R = {w R w L} też. Zawsze L/w = (L R \w R ) R. Przyk lad 3.6 J ezyk L = {0 n 1 n n N} nie jest regularny, bo każdy iloraz L\0 n jest inny. J ezyki bezkontekstowe Przypomnijmy, że gramatyka bezkontekstowa nad alfabetem A nazywamy twór postaci G = A, N, P, ξ 0, w którym produkcje (czyli regu ly) ze zbioru P maja kszta lt ξ v, gdzie ξ N oraz v (A N ). Pomocnicze symbole ξ N nazywamy niekońcowymi (lub nieterminalnymi), w odróżnieniu od końcowych czyli terminalnych symboli alfabetu A. Piszemy G w u, albo w G u gdy w P jest taka regu la ξ v, że w = w 1 ξw 2, u = w 1 vw 2. Gdy wiadomo o jaka gramatyke chodzi, można pisać po prostu w u. Relacja G jest domknieciem przechodnio-zwrotnym relacji G, tj. w G u (zapisywane też jako G w u) zachodzi, gdy istnieje ciag: w = w 0 G w 1 G G w k 1 G w k = u, nazywany wyprowadzeniem (wywodem, redukcja) w gramatyce G. Jezyk generowany przez gramatyke G, to jezyk L(G) = {w A G ξ 0 w}. Jezyki generowane przez gramatyki bezkontekstowe sa nazywane jezykami bezkontekstowymi. Gramatyki czasem zapisuje si e w stylu notacji Backusa-Naura, np. ξ 0 ::= aξ 0 a bξ 0 b a b ε 12

przedstawia gramatyke z jednym nietermina lem ξ 0, generujac a jezyk wszystkich palindromów. A ta gramatyka opisuje ma ly kawa leczek jezyka polskiego: zdanie ::= grupa podmiotu grupa orzeczenia ; grupa podmiotu ::= przydawka grupa podmiotu podmiot ; grupa orzeczenia ::= okolicznik orzeczenie ; orzeczenie ::= czasownik ; podmiot ::= rzeczownik ; przydawka ::= przymiotnik ; okolicznik ::= przys lówek ; rzeczownik ::= pies kot; czasownik ::= szczeka śpi; przymiotnik ::= czarny ma ly; przys lówek ::= g lośno smacznie. Jezyk generowany przez gramatyke bezkontekstowa można uważać za najmniejszy punkt sta ly pewnego operatora (dok ladniej: jedna ze wspó lrz ednych najmniejszego punktu sta lego pewnego wielowymiarowego operatora na jezykach). Zilustrujemy to na przyk ladzie. Niech gramatyka G ma produkcje ξ ::= ηξ a, η ::= ε aηb Niech L = L(G) i niech R bedzie jezykiem generowanym przez zmieniona gramatyke G, w której jako poczatkowy wybrano symbol η. Latwo zauważyć, że jezyki L i R musza spe lniać równania: 4 L = RL a oraz R = ε arb. Nie jest to jednak jedyne rozwiazanie tego uk ladu. Inne rozwiazanie tworza na przyk lad jezyki L = A i R = R. Jeśli zdefiniujemy operator Φ : P (A ) P (A ) P (A ) P (A ) wzorem Φ( X, Y ) = Y X a, ε ay b, to punktami sta lymi Φ sa dok ladnie rozwiazania naszego uk ladu. Fakt 3.7 Niech L 0 = R 0 = i niech L n+1, R n+1 = Φ( L n, R n ) dla n N. Inaczej, L n, R n = Φ n (, ). 1. Jeśli L ω = n N L n i R ω = n N R n, to para L ω, R ω jest najmniejszym punktem sta lym Φ. 2. Dla dowolnego w L istnieje takie k, że w L k ; 3. Dla dowolnego w R istnieje takie k, że w R k. 4 W istocie mamy tutaj R = {a n b n n N} oraz L = R a. 13

Dowód: Zbiór P (A ) P (A ) z uporzadkowaniem po wspó lrz ednych zadanym przez inkluzje jest krata zupe ln a, a przekszta lcenie Φ jest ciag le. Zatem cześć pierwsza wynika z twierdzenia Tarskiego o punkcie sta lym. Cześci druga i trzecia można pokazać przez indukcje ze wzgledu na d lugość wyprowadzenia. Z powyższego faktu wynika, że L ω, R ω = L, R, czyli, że para L, R jest najmniejszym punktem sta lym operatora Φ. Wyk lad 4 Jezyki regularne sa bezkontekstowe Fakt 4.1 Każdy j ezyk regularny jest bezkontekstowy. Dowód: Niech L = L(M) dla pewnego automatu skończonego M = Q, A, δ, q 0, F, gdzie Q = {q 0,..., q n }. Wtedy L = L(G), gdzie gramatyka G = A, Q, P, q 0 ma produkcje P = {q i aq j M q i a q j } {q i ε q i F }. Istotnie, każdemu wyprowadzeniu w G ospowiada pewne obliczenie automatu i na odwrót. Gramatyka G jest prawostronna wtedy i tylko wtedy gdy wszystkie produkcje sa postaci ξ wη lub ξ w, gdzie w A oraz η Σ. Gramatyka użyta w dowodzie Faktu 4.1 jest prawostronna. Fakt 4.2 Jeżeli gramatyka G jest prawostronna to j ezyk L(G) jest regularny, Dowód: Równania wyznaczone przez produkcje gramatyki prawostronnej maja postać ξ i ::= w 1 ξ ni1... w k ξ nik w k+1... w m L i = w 1 L i1... w k L nik w k+1... w m a najmniejsze rozwiazanie uk ladu takich równań tworza pewne jezyki regularne. 14

Standaryzacja i drzewa Istote bezkontekstowości wyraża nastepuj acy lemat: Lemat 4.3 Jeżeli wv G u w pewnej gramatyce bezkontekstowej G, to u = u 1 u 2 dla pewnych s lów u 1 i u 2, takich że w G u 1 i v G u 2. Dowód: Indukcja ze wzgl edu na d lugość wyprowadzenia. Lemat 4.3 należy rozumieć tak: kroki redukcji sa wykonywane w różnych cześciach s lowa niezależnie od siebie. Ale oznacza to, że można je wykonywać w dowolnej kolejności, np. od lewej. Uściślimy teraz te obserwacje. Mówimy, że wyprowadzenie w = w 0 w 1 w k 1 w k = u, w gramatyce G jest standardowe, co zapisujemy jako w L u jeżeli dla dowolnego i = 0,..., k 1: w i = u i ξ i v i u i x i v i = w i+1, oraz u i u i+1 dla wszystkich j i. Inaczej, nigdy nie wykonuje si e redukcji najpierw po prawej, potem po lewej. Wyprowadzenie standardowe ξ 0 L w A nazywamy też lewostronnym. Lemat 4.4 Jeśli G w v, to istnieje wyprowadzenie standardowe G w L v i to tej samej d lugości. Dowód: Postepujemy przez indukcje ze wzgledu na d lugość wyprowadzenia. Wyprowadzenie, które ma nie wiecej niż jeden krok, jest oczywiście standardowe. Przypuśćmy wiec, że każde wyprowadzenie z lożone z n lub mniej kroków można zastapić wyprowadzeniem standardowym o tej samej d lugości. Niech teraz wyprowadzenie w v u ma n + 1 kroków. Pierwsze n kroków można zastapić wyprowadzeniem standardowym w L v. Jeśli wyprowadzenie w L v u nie jest standardowe to musi być tak: Ostatni krok wyprowadzenia w L v jest postaci v = v 1 ξv 2 ηv 3 v 1 ξv 2 yv 3 = v; Redukcja v u jest postaci v = v 1 ξv 2 yv 3 v 1 xv 2 yv 3 = u. Zauważmy, że s lowo v 3 jest sufiksem wszystkich s lów wystepuj acych w wyprowadzeniu w L v, bo redukcja η y, jako ostatnia, musia la zajść najbardziej na prawo. Mamy wiec w = w v 3 i standardowe wyprowadzenie w L v 1 ξv 2 η v 1 ξv 2 y. 15

Rozpatrzmy teraz redukcj e w L v 1 ξv 2 η v 1 xv 2 η. Ta redukcja jest d lugości n, wi ec istnieje też standardowe wyprowadzenie w L v 1 xv 2 η. Ponieważ η jest ostatnim symbolem s lowa v 1 xv 2 η, wi ec wyprowadzenie w L v 1 xv 2 η v 1 xv 2 y też jest standardowe. To samo dotyczy wyprowadzenia w = w v 3 L v 1 xv 2 ηv 3 v 1 xv 2 yv 3 = u. Oczywiście d lugość tego wyprowadzenia jest równa n. Przez drzewo wywodu s lowa w w gramatyce G rozumiemy każde skończone drzewo etykietowane symbolami z (A N ) w taki sposób: Korzeń ma etykiet e ξ 0. Etykiety liści sa symbolami terminalnymi i czytane od lewej do prawej (w porzadku leksykograficznym) daja s lowo w. Jeśli wierzcho lek o etykiecie nieterminalnej ξ ma k córek o etykietach a 1,..., a k (czytanych od lewej do prawej) to ξ a 1... a k jest produkcja gramatyki G. Oczywiście drzewo wywodu dla w istnieje wtedy i tylko wtedy, gdy w L(G). Drzewo wywodu może odpowiadać różnym wyprowadzeniom tego samego s lowa, ale tylko jednemu wyprowadzeniu lewostronnemu. Mimo to dla jednego s lowa może istnieć wi ecej niż jedno drzewo wywodu. Lemat 4.5 Jeśli prawa strona każdej produkcji gramatyki G ma d lugość co najwyżej p, to drzewo wywodu dla s lowa w o d lugości w > p m ma wysokość wieksz a niż m. Dowód: Drzewo o stopniu rozga l ezienia nie przekraczajacym p i wysokości nie przekracza- acej m ma co najwyżej p m liści. j Twierdzenie 4.6 (Lemat o pompowaniu) Dla dowolnego jezyka bezkontekstowego L istnieje sta la n N o nastepuj acej w lasności: Jeżeli w L oraz w n to w można przedstawić w postaci w = uvzxy, gdzie vx ε; vzx n; uv i zx i y L dla dowolnego i N, w szczególności uzy L. Sta l a n można efektywnie wyznaczyć na podstawie gramatyki generujacej L. 16

Dowód: Niech L = L(G) i niech p bedzie takie, że x p dla dowolnej produkcji ξ x gramatyki G. Na dodatek, niech N = m. Wybieramy sta l a n = p m + 1. Przypuśćmy teraz, że w L oraz w n. Weźmy drzewo wywodu s lowa w o najmniejszej możliwej liczbie wierzcho lków. Wysokość tego drzewa (Lemat 4.5) musi być wieksza niż m, czyli niż liczba nietermina lów. Zatem na pewnej ścieżce w drzewie powtarza sie nieterminalna etykieta, i to wśród ostatnich m + 1 wierzcho lków tej ścieżki. Niech η bedzie takim powtarzajacym sie nietermina lem. Za lóżmy, że η wystepuje jako etykieta pewnego wierzcho lka a i jego potomka b. Za lóżmy przy tym, że liczba wszystkich potomków wierzcho lka a jest najmniejsza możliwa, tj. poniżej a nie ma już takich powtórzeń. Na mocy Lematu 4.5, oznacza to, że wysokość poddrzewa zaczepionego w a jest nie wieksza od m. ξ 0 η η u v z x y Dla pewnych s lów v, z, x mamy teraz η vηx vzx, bo również η z. Nasze drzewo odpowiada wi ec takiemu wyprowadzeniu: ξ 0 uηy uvηxy uvzxy, w którym dwa wyróżnione wystapienia η dotycza wierzcho lków a i b. Można to wyprowadzenie modyfikować, usuwajac lub powielajac fragment drzewa odpowiadajacy wyprowadzeniu η vηx. Otrzymujemy w ten sposób wyprowadzenia: ξ 0 uηy uzy, 17

ξ 0 uηy uvηxy uv 2 ηx 2 y uv i ηx i y uv i zx i y. Nierówność vzx n zachodzi dlatego, że wyprowadzenie η vzx odpowiada drzewu o wysokości co najwyżej m. Ponadto vx ε, bo inaczej uzy = w i wyprowadzenie ξ 0 uηy uzy ma mniejsze drzewo wywodu. Przyk lad 4.7 Jezyk {a k b k c k k N} nie jest bezkontekstowy. Istotnie, przypuśćmy, że n jest sta l a z lematu o pompowaniu, i że uvzxy jest żadanym rozbiciem s lowa a n b n c n. Środkowa cześć vzx jest d lugości co najwyżej n i jest za krótka na to, aby wystepowa ly w niej zarówno litery a jak i c. Zatem w s lowie uv 2 zx 2 y zabraknie albo liter a albo c. Automaty ze stosem Przez (niedeterministyczny) automat ze stosem rozumiemy krotk e: w której: M = Q, A, Σ, δ, q 0, σ 0, F, A jest skończonym alfabetem (wejściowym); Σ jest skończonym alfabetem stosu; Q jest skończonym zbiorem stanów; q 0 Q jest stanem poczatkowym; σ 0 Σ jest poczatkowym symbolem stosu; F Q jest zbiorem stanów końcowych; δ (Q A {ε} Σ) (Q Σ ) jest relacja przejścia. Bedziemy czasem używać skrótu A ε na oznaczenie A {ε} (podobnie Σ ε ). Pare postaci q, V, gdzie q jest stanem a V Σ nazywamy konfiguracja automatu. (Interpretacja: automat jest w stanie q a zawartościa stosu jest s lowo v, przy czym wierzcho lek stosu jest z w lewej strony.) Dzia lanie automatu opisujemy za pomoca relacji M C 1 C 2, pomiedzy konfiguracjami: Jeśli q, a, σ, p, U δ to M q, σv może być równe ε); w Jeśli M C 1 w 1 C2 i M C 2 w 2 C3 to M C 1 w 2 1 C3. a p, UV, dla dowolnego V. (Uwaga: a 18

Pomijamy M jeśli wiadomo o jaki automat chodzi. J ezyk akceptowany przez automat ze stosem definiujemy tak: L(M) = {w A M q 0, σ 0 w q, U, dla pewnego q F }. Przez obliczenie rozumiemy oczywiście odpowiedni ciag konfiguracji. Przyk lad 4.8 Dla zaakceptowania jezyka {a n b n n N} potrzeba automatu o czterech stanach q 0, q a, q b, f i alfabecie stosowym {σ 0, a}. Relacja przejścia sk lada sie z takich piatek: q 0, ε, σ 0, f, ε q 0, a, σ 0, q a, aσ 0 ; q a, a, a, q a, aa ; q a, b, a, q b, ε ; q b, b, a, q b, ε ; q b, ε, σ 0, f, ε. Wyk lad 5 W Przyk ladzie 4.8 każde akceptujace obliczenie kończy sie z pustym stosem, tj. w konfiguracji f, ε, a symbol poczatkowy stosu jest z niego usuwany dopiero na samym końcu. Zmiany stosu polegaja zawsze albo na do lożeniu jednej litery (operacja push) albo na usunieciu jednej litery (operacja pop). Można zak ladać, że zawsze tak jest: Lemat 5.1 Jeśli L = L(M ) dla pewnego automatu ze stosem M = Q, A, Σ, δ, q 0, σ 0, F, to także L = L(M), gdzie automat M = Q, A, Σ, δ, q 0, σ 0, F ma takie w lasności: 1) Automat M ma tylko jeden stan końcowy: F = {f}, przyjmowany tylko na koniec obliczenia (nie ma w δ piatki postaci f,... ). 2) Automat M akceptuje tylko z pustym stosem: L = L(M) = {w A w M q 0, σ 0 f, ε }. 3) Relacja δ sk lada sie wy l acznie z piatek postaci q, a, σ, p, τσ i postaci q, a, σ, p, ε, gdzie τ, σ Σ. (Operacje wykonywane na stosie sa tylko typu pop i push.) 4) Nie ma w δ piatki postaci q, a, σ, p, σ 0 σ, a jeśli q, a, σ 0, p, ε δ to p = f. (Symbol σ 0 jest usuwany ze stosu tylko w ostatnim kroku przed zaakceptowaniem i nigdy nie jest tam dok ladany.) Dowód: Przerabiamy automat M na automat M. Najpierw dodajemy nowy stan poczatkowy q 0 i ustalamy nowy poczatkowy symbol stosu σ 0. Dodajemy jedno nowe przejście q 0, ε, σ 0, q 0, σ 0σ 0. Po wykonaniu tego przejścia, automat M robi to samo co automat M, z ta różnica, że na dnie stosu leży dodatkowo symbol σ 0. 19

Dodajemy teraz nowy stan f i takie przejścia: f, ε, σ 0, f, ε ; f, ε, σ, f, ε ; f, ε, σ, f, ε, dla dowolnego stanu końcowego f automatu M i dowolnego σ σ 0. Przejścia te pozwalaja na opróżnienie stosu po osiagni eciu stanu f i przejście do stanu końcowego maszyny M. Jest to jedyny sposób, w jaki można usunać ze stosu symbol σ 0. Ponieważ nie do lożymy już żadnego przejścia wstawiajacego σ 0 na stos, wiec warunki (1), (2) i (4) bed a spe lnione. Dla spe lnienia warunku (3) rozbijemy każdy krok maszyny M na kilka kroków maszyny M, typu pop lub push. Każda piatk e q, a, σ, p, τ 1... τ k, która nie jest ani postaci push ani pop zastapimy mianowicie przez piatki: q, a, σ, r k 1, τ k 1 σ, r k 1, ε, τ k 1, r k 2, τ k 2 τ k 1,... r 2, ε, τ 2, p, τ 1 τ 2, gdy k 2 oraz τ k = σ; q, a, σ, r, σ σ i r, ε, σ, p, ε, gdy k = 1 i τ k = σ (symbol σ jest dowolny, byle tylko σ σ 0 ); q, a, σ, r k, ε, r k, ε, τ, r k 1, τ k τ (dla dowolnego τ) oraz r k 1, ε, τ k, r k 2, τ k 1 τ k,...... r 1, ε, τ 2, p, τ 1 τ 2, gdy k > 0 i τ k σ. Trzeba tylko pamietać aby dla każdej eliminowanej piatki używać innych stanów r i. Akceptowanie j ezyków bezkontekstowych Twierdzenie 5.2 Każdy j ezyk bezkontekstowy jest akceptowany przez pewien automat ze stosem. Dowód: Niech L = L(G) dla pewnej gramatyki G = A, N, P, ξ 0. Konstruujemy automat M = Q, A, Σ, δ, q 0, σ 0, F akceptujacy L. Zbiór stanów jest taki: Q = {q 0, q 1, q 2 }, przy czym q 2 jest końcowy. Jak alfabet stosu przyjmujemy Σ = A N {σ 0 }. Relacja sk lada sie z takich piatek: q 0, ε, σ 0, q 1, ξ 0 σ 0 ; q 1, ε, ξ, q 1, w, dla dowolnej regu ly ξ w P ; q 1, a, a, q 1, ε, dla a A; 20

q 1, ε, σ 0, q 2, ε. Sens tej konstrukcji jest taki: automat najpierw umieszcza na stosie symbol poczatkowy ξ 0 gramatyki G. Potem ca ly czas mamy na stosie pewne s lowo x (A N ), takie, że G ξ 0 ux, dla pewnego u A. Automat może w każdym kroku zrobić jedna z dwóch rzeczy: 1) Jeśli pierwszy symbol s lowa x jest w A to ten sam symbol powinien pojawiać si e na wejściu. Czytamy symbol z wejścia i usuwamy go ze stosu. 2) Jeśli pierwszy symbol ξ s lowa x jest nieterminalny, to zastepujemy go przez prawa strone którejś z odpowiednich produkcji (tu dzia la niedeterminizm). Maszyna akceptuje, gdy na stosie już nic nie zosta lo oprócz symbolu końca stosu. Dzia lanie jej możemy wiec opisać taka równoważnościa, która zachodzi dla dowolnych w A oraz dowolnych x, y (A N ) : M q 1, yσ 0 w q 1, xσ 0 wtedy i tylko wtedy, gdy G y wx Ścis ly dowód implikacji ( ) można przeprowadzić przez indukcje ze wzgledu na liczbe wystapień stanu q 1 w obliczeniu, a dowód implikacji ( ) przez indukcje ze wzgledu na liczbe kroków wyprowadzenia lewostronnego. Jeśli w powyższej równoważności przyjmiemy y = ξ 0 i x = ε to latwo otrzymamy równość L(M) = L(G). Twierdzenie 5.3 Dla dowolnego automatu ze stosem M, j ezyk L(M) jest bezkontekstowy. Dowód: Niech M = Q, A, Σ, δ, q 0, σ 0, F i niech Q = {q 0,..., q n }. Zak ladamy, że nasz automat spe lnia warunki Lematu 5.1, w szczególności niech F = {q n }. Definiujemy gramatyke G = A, N, P, ξ 0, gdzie N = {ξij σ i, j = 0,..., n σ Σ}, oraz ξ 0 = ξ σ 0 0n. Chodzi o to, aby z symbolu ξij σ wygenerować taki jezyk: L σ ij = {w A M q i, σ w q j, ε }. Dok ladniej, chcemy, żeby L σ ij = L(G σ ij), gdzie G σ ij = A, N, P, ξ σ ij. Jasne, że wtedy b edziemy mieli L(G) = L(G σ 0 0n) = L(M). Produkcje dla nietermina lu ξij σ w zależa od możliwego przebiegu obliczenia q i, σ q j, ε. W zależności od pierwszego kroku, takie obliczenie może być dwojakiej postaci (tutaj a A ε ): q i, σ q i, σ a q k, ε (pojedyncza operacja typu pop ) a q k, τσ w q l, σ w q j, ε, przy czym obliczenie q k, τσ w q l, σ odbywa sie bez usuwania σ ze stosu. 21

(Zauważmy, że warunki Lematu 5.1 uniemożliwiaja jakikolwiek krok przy pustym stosie.) Dla w L σ ij, w drugim przypadku mamy w L τ kl iraz w L σ lj. Dlatego gramatyka G ma takie produkcje: ξ σ ij a, dla dowolnego przejścia q i, a, σ, q k, ε δ; ξ σ ij aξ τ kl ξσ lj, dla dowolnego przejścia q i, a, σ, q k, τσ δ. Aby wykazać, że L(G σ ij) = L σ ij post epujemy tak: inkluzji ( ) dowodzimy przez indukcj e ze wzgl edu na d lugość wyprowadzenia, a inkluzji ( ) przez indukcj e ze wzgl edu na d lugość obliczenia. Wniosek 5.4 Każdy j ezyk regularny jest bezkontekstowy. Dowód: Każdy automat skończony można uważać za automat ze stosem. 5.2 Deterministyczne j ezyki bezkontekstowe Automat ze stosem M = Q, A, Σ, δ, q 0, σ 0, F jest deterministyczny, jeśli spe lnia takie warunki: Relacja przejścia jest funkcja cześciow a, δ : (Q A ε Σ) (Q Σ ); Dla dowolnej pary q Q, σ Σ, jeżeli wartość δ(q, ε, σ) jest określona, to nie jest określona żadna z wartości δ(q, a, σ), gdzie a A. A zatem automat deterministyczny może (przy ustalonym wejściu) w każdej konfiguracji wykonać co najwyżej jeden ruch. Dla danej konfiguracji C takiego automatu, i danego s lowa wejściowego, obliczenie rozpoczynajace sie od C może wiec być tworzone tylko na jeden sposób. J ezyki akceptowane przez deterministyczne automaty ze stosem nazywamy deterministycznymi j ezykami bezkontekstowymi. Klasa deterministycznych j ezyków bezkontekstowych, jak si e niebawem okaże, jest zamkni e- ta ze wzgl edu na dope lnienie. Tymczasem: Fakt 5.5 Klasa j ezyków bezkontekstowych nie jest zamkni eta ze wzgl edu na dope lnienie. 22

Dowód: Rozpatrzmy j ezyki: L 1 = {a n b n c k n, k N}, L 2 = {a n b k c k n, k N}. Gdyby klasa j ezyków bezkontekstowych by la zamkni eta ze wzgl edu na dope lnienie, to j ezyk L = {a n b n c n n N} = L 1 L 2 = ( L 1 L 2 ) by lby bezkontekstowy. Jezyk ten nie spe lnia jednak warunków lematu o pompowaniu. Niech bowiem n bedzie sta l a z lematu o pompowaniu. Jeśli rozbijemy s lowo a n b n c n na pieć cześci uvzxy, tak że vzx n, to s lowo vx albo wcale nie zawiera litery a albo wcale nie zawiera litery c. W obu przypadkach, którejś litery bedzie za ma lo w s lowie uv 2 zx 2 y. Wniosek 5.6 Nie każdy j ezyk bezkontekstowy jest deterministyczny. Wyk lad 6 Deterministyczne j ezyki bezkontekstowe Lemat 6.1 Jeśli L jest deterministycznym j ezykiem bezkontekstowym, to L = L(M ) dla pewnego deterministycznego automatu ze stosem M = Q, A, Σ, δ, q 0, σ 0, F, który ma takie w lasności: 1) Jeśli δ(q, a, σ 0 ) = (p, W ), to W = W σ 0, gdzie W (Σ {σ 0 }), jeśli zaś σ σ 0 i δ(q, a, σ) = (p, W ), to W (Σ {σ 0 }). (Symbol σ 0 nie jest nigdy usuwany ze stosu ani nie jest tam dok ladany.) 2) Dla dowolnej q Q, σ Σ albo określona jest wartość δ(q, ε, σ), albo wszystkie wartości δ(q, a, σ), dla a A. (Automat M w każdej konfiguracji, przy każdym wejściu, może wykonać dok ladnie jeden ruch.) 3) Dla dowolnego s lowa w istnieje obliczenie postaci q 0, σ 0 zawsze czyta ca le s lowo wejściowe. w q, X, tj. automat Dowód: Za lóżmy, że L = L(M ), gdzie M = Q, A, Σ, δ, q 0, σ 0, F. Przerabiamy automat M na automat M. Dodajemy nowy stan poczatkowy q 0 q 0 i wybieramy nowy poczatkowy symbol stosu σ 0 σ 0. Definiujemy δ(q 0, ε, σ 0 ) = (q 0, σ 0σ 0 ). W ten sposób uzyskamy warunek (1). Teraz dodajemy nowy stan r i we wszystkich przypadkach gdy zarówno δ (q, ε, σ) jest nieokreślone jak też nieokreślone jest δ (q, a, σ) dla pewnego a A, definiujemy δ(q, a, σ) = (r, σ). 23

Dla dowolnych a i σ definiujemy też δ(r, a, σ) = (r, σ). W ten sposób uzyskamy (2). Stan r nie bedzie stanem akceptujacym, wiec jezyk akceptowany sie nie zmieni. Dodajemy teraz nowy stan f i przyjmujemy F = F {f}. Definiujemy δ(f, a, σ) = (r, σ), dla wszystkich a A. Powiemy, że para q, σ jest martwa konfiguracja, gdy istnieje nieskończone obliczenie automatu M : q, σ = p 0, V 0 ε ε p 1, V 1 p 2, V 2 Jeśli w takiej sytuacji, któryś ze stanów p i jest końcowy, to poprawiamy funkcj e δ tak: δ(q, ε, σ) = (f, σ). Jeśli żaden nie jest końcowy, to definiujemy δ(q, ε, σ) = (r, σ). Robimy tak, dla każdej martwej konfiguracji. Ich liczba jest oczywiście skończona. W pozosta lych przypadkach definiujemy δ tak samo jak δ. Musimy pokazać, że nasz nowy automat spe lnia warunek (3). Jeśli automat M ma obliczenie, które czyta ca le s lowo w, to oczywiście M też ma takie obliczenie. W przeciwnym razie mamy pewne w laściwe pods lowo w s lowa w i obliczenie automatu M postaci q 0, σ 0 w p 0, W 0 ε p 1, W 1 ε p 2, W 2 ε Z ciagu wszystkich W i wybieramy najkrótsze możliwe s lowo, powiedzmy W k. Przypuśćmy, że W k = τ W (s lowo W k jest niepuste, bo zachodzi warunek (1)). Wtedy para p k, τ jest martwa konfiguracja. Rzeczywiście: wszystkie s lowa W m, dla m k sa postaci W m = W mw, istnieje wiec nieskończone obliczenie p k, τ ε p k+1, W k+1 ε p k+2, W k+2 ε W automacie M mamy teraz δ(p k, ε, τ) = (r, τ) lub δ(p k, ε, τ) = (f, τ). A zatem M w ε q 0, σ 0 p k, τ W p, τ W w r, τ W, gdzie p to albo r albo f. Tak czy owak, obliczenie kończy sie w stanie r, bo s lowo w jest niepuste. Fakt 6.2 Klasa deterministycznych j ezyków bezkontekstowych jest zamkni eta ze wzgl edu na dope lnienie. Dowód: Niech L = L(M), gdzie M = Q, A, Σ, δ, q 0, σ 0, F spe lnia warunki Lematu 6.1. Zdefiniujemy automat M = Q, A, Σ, δ, q 0, σ 0, F, akceptujacy dope lnienie jezyka L. Jego zbiorem stanów jest Q = Q {0, 1, 2}, a jako stan poczatkowy wybieramy q 0 = q 0, 2. Automat M ma za zadanie naśladować obliczenia automatu M i do tego s luży pierwsza wspó lrz edna każdego stanu. Druga wspó lrz edna zawiera informacje o tym, czy automat osiagn a l (1) czy nie (2) jakiś stan akceptujacy przeczytane dotychczas s lowo. Wartość zero oznacza, że stanu akceptujacego nie by lo i już nie bedzie, bo w laśnie zamierzamy przeczytać nastepn a litere. Funkcja przejścia automatu M jest wiec określona tak: 24

Jeśli δ(q, ε, σ) = (p, V ), to: δ ( q, 1, ε, σ) = ( p, 1, V ); δ ( q, 2, ε, σ) = ( p, 1, V ), dla p F ; δ ( q, 2, ε, σ) = ( p, 2, V ), dla p F. Jeśli δ(q, a, σ) = (p, V ), gdzie a A, to: δ ( q, 1, a, σ) = ( p, 1, V ), dla p F ; δ ( q, 1, a, σ) = ( p, 2, V ), dla p F ; δ ( q, 0, a, σ) = ( p, 1, V ), dla p F ; δ ( q, 0, a, σ) = ( p, 2, V ), dla p F ; δ ( q, 2, ε, σ) = ( q, 0, V ). Definiujemy F = { q, 0 q Q}. Wówczas s lowo w jest akceptowane przez M wtedy i tylko wtedy, gdy nie jest akceptowane przez M, bo obliczenie automatu M dla w nie osiaga stanu akceptujacego. Wniosek 6.3 Nie każdy j ezyk bezkontekstowy jest deterministyczny. Dowód: Z poprzedniego wyk ladu wiadomo, że klasa wszystkich jezyków bezkontekstowych nie jest zamknieta ze wzgledu na dope lnienie. Przyk lad 6.4 Konkretnym przyk ladem j ezyka bezkontekstowego, który nie jest deterministyczny jest j ezyk L 3 = {a n b m c k n m m k}. Gdyby ten j ezyk by l deterministyczny, to j ezyk L = {a n b n c n n N} by lby bezkontekstowy, bo L = L 3 a b c, a latwo pokazać, że iloczyn j ezyka bezkontekstowego i j ezyka regularnego musi być bezkontekstowy. J ezyki kontekstowe Przez gramatyke typu zero rozumiemy krotke G = A, N, P, ξ 0, w którym produkcje sa postaci u v, gdzie u, v (A N ) sa zupe lnie dowolnymi s lowami, byle tylko u ε. Relacja redukcji G jest zdefiniowana podobnie jak dla gramatyk bezkontekstowych, mianowicie x G y (zapisywane też tak: G x y) zachodzi wtedy i tylko wtedy, gdy x = x 1 ux 2, y = x 1 vx 2, oraz u v jest pewna produkcja. Oczywiście notacja G oznacza istnienie (być może pustego) ciagu redukcji, a jezyk generowany przez taka gramatyke definiujemy tak: L(G) = {w A ξ 0 G w} 25

Na przyk lad j ezyk {a n b n c n n N} jest generowany przez gramatyk e typu zero, która ma takie produkcje: ξ 0 ε, ξ 0 η; η aβηc, βa aβ, η abc; βb bb. Mówimy, że gramatyka jest monotoniczna jeśli jej produkcje sa tylko postaci ξ 0 ε; u v, gdzie u v oraz ξ 0 nie wyst epuje w s lowie v. Jeśli jezyk jest generowany przez gramatyke typu zero (monotoniczna) to mówimy, że jest to jezyk typu zero (monotoniczny). Gramatyka z przyk ladu powyżej jest monotoniczna. Natomiast nie każda gramatyka bezkontekstowa jest monotoniczna, bo po prawej stronie produkcji może być s lowo puste. Ale chodzi nam o jezyki, a nie o gramatyki. Fakt 6.5 Każdy j ezyk bezkontekstowy jest monotoniczny. Dowód: Przerabiamy dana gramatyke bezkontekstowa G = A, N, P, ξ 0, generujac a jezyk L, na gramatyke monotoniczna. Najpierw dodajemy nowy nietermina l ξ 0 i każda regu l e ξ v, dla ξ ξ 0, przerabiamy na ξ v, gdzie v powstaje z v przez zamiane wszystkich ξ 0 na ξ 0. Natomiast produkcje ξ 0 v zmieniamy na ξ 0 v. Na koniec dodajemy produkcje ξ 0 ξ 0. Teraz niech N ε = {ξ N ξ G ε}. Dla dowolnej produkcji η u, jeśli w u wystepuj a symbole z N ε, to dodajemy do gramatyki wszystkie produkcje postaci η u, gdzie u jest dowolnym niepustym s lowem, które można otrzymać ze s lowa u przez usuniecie jednego lub wiecej wystapień pewnych symboli ze zbioru N ε. (Na przyklad w przypadku produkcji η aη bη c, gdzie η, η N ε dodajemy produkcje η abη c, η aη bc, η abc.) Po tej operacji usuwamy z gramatyki wszystkie produkcje postaci ξ ε. Jeśli ε L to dodajemy jeszcze produkcj e ξ 0 ε. Jeśli w L i w ε to wyprowadzenie s lowa w w gramatyce G można naśladować w gramatyce przerobionej, przewidujac, z których wystapień nietermina lów należacych do N ε ma zostać wyprowadzone s lowo puste, i stosujac zawczasu odpowiednie produkcje pomijajace te wystapienia. Na odwrót, wyprowadzenie terminalnego s lowa w nowej gramatyce zawsze odpowiada pewnemu wyprowadzeniu w G, gdzie pewne nietermina ly zosta ly zredukowane do s lowa pustego. 26

Gramatyke nazywamy kontekstowa jeśli ma tylko produkcje postaci: ξ 0 ε; xξy xvy, gdzie x, y, v (A N ), ξ N, v ε a symbol ξ 0 nie wyst epuje w s lowie v. J ezyki generowane przez gramatyki kontekstowe nazywamy oczywiście j ezykami kontekstowymi. Latwo widzieć, że każda gramatyka kontekstowa jest monotoniczna. W istocie mamy: Twierdzenie 6.6 J ezyk jest kontekstowy wtedy i tylko wtedy gdy jest monotoniczny. Dowód: Przypuśćmy, że G jest gramatyka monotoniczna. Przerabiamy ja na gramatyke kontekstowa, akceptujac a ten sam jezyk. Najpierw dodajemy nowe nietermina ly ξ a, dla wszystkich a A. Dla dowolnego s lowa x, przez x oznaczmy s lowo powsta le z x przez zamiane każdego a A na nietermina l ξ a. Każda produkcje x y zastepujemy przez produkcje x y i dodajemy wszystkie produkcje postaci ξ a a. Po tym zabiegu mamy w gramatyce produkcje postaci ξ 0 ε, ξ a, oraz x y, gdzie s lowa x i y sk ladaj a sie z samych nietermina lów, a przy tym x y. Pierwsze dwa rodzaje produkcji sa dobre, a produkcje trzeciego rodzaju trzeba przerobić na kontekstowe. Weźmy wiec taka produkcje, np. ξ 1 ξ 2... ξ k η 1 η 2... η n, i przerabiajmy (pamietaj ac, że k n). W tym celu dodamy do N nowe nieterminalne symbole τ 1,..., τ n, i zastapimy nasza produkcje przez k + n produkcji: ξ 1 ξ 2... ξ k τ 1 ξ 2... ξ k τ 1 ξ 2... ξ k τ 1 τ 2 ξ 3... ξ k... τ 1... τ k 2 ξ k 1 ξ k τ 1... τ k 2 τ k 1 ξ k τ 1... τ k 1 ξ k τ 1... τ n τ 1... τ n η 1 τ 2... τ n η 1 τ 2... τ n η 1 η 2 τ 3... τ n... η 1... η n 1 τ n η 1... η n Teraz już wszystkie produkcje sa kontekstowe. Oczywiście nowa gramatyka generuje wszystkie s lowa z jezyka L(G). Ponieważ dla każdej z regu l eliminowanych w sposób opisany 27

powyżej dobieramy nowe nietermina ly τ i, wi ec zadne dodatkowe s lowo też nie może zostać wygenerowane. Zauważmy bowiem, że pozbycie si e τ i z generowanego s lowa jest możliwe tylko wtedy gdy odpowiednia sekwencja dodanych regu l zosta la wykonana w ca lości. Hierarchia Chomsky ego Tak zwana hierarchia Chomsky ego sk lada si e z czterech poziomów: Jezyki typu zero, czyli rekurencyjnie przeliczalne. Jezyki typu jeden, czyli kontekstowe (monotoniczne). Jezyki typu dwa, czyli bezkontekstowe. Jezyki typu trzy, czyli regularne. Inkluzje pomiedzy klasami jezyków tworzacymi kolejne szczeble hierarchii sa w laściwe, tj. dla każdego n = 1, 2, 3 istnieja jezyki typu n 1, które nie sa typu n. Dla n = 1, 2 takie przyk lady już znamy, przypadek n = 0 wyniknie z pewnych ogólniejszych faktów. Maszyny Turinga Wyk lad 7 Maszyne Turinga nad alfabetem A (niedeterministyczna, jednotaśmowa) definiujemy jako krotke M = Σ, Q, δ, q 0, A, R gdzie: Σ jest skończonym alfabetem, zawierajacym A oraz symbol B A (blank); Q jest skończonym zbiorem stanów; q 0 Q jest stanem poczatkowym; A, R Q sa odpowiednio zbiorami stanów akceptujacych i odrzucajacych; zbiory Σ i Q, oraz A i R sa roz l aczne, a sume F = A R nazywamy zbiorem stanów końcowych; δ (Q F ) Σ Σ Q { 1, 0, +1} jest relacja przejścia. 28

Zak ladamy dla uproszczenia, że dla dowolnej pary (q, a), gdzie q F istnieje zawsze co najmniej jedna piatka (q, a, b, p, i) δ. Maszyna jest deterministyczna, gdy δ jest funkcja: δ : (Q F ) Σ Σ Q { 1, 0, +1}. Interpretacja tej definicji jest taka: maszyna zawsze znajduje sie w dok ladnie jednym ze swoich stanów i widzi dok ladnie jedna klatke taśmy (nieskończonej w obie strony). Na taśmie zapisane sa znaki z alfabetu Σ. Relacja δ określa możliwe zachowanie maszyny: jeśli (q, a, b, p, i) δ, to maszyna widzac a w stanie q może napisać b, przejść do stanu p i przesunać g lowice o i klatek w prawo. Przez konfiguracje maszyny rozumie sie zazwyczaj s lowo postaci wqv, gdzie q Q oraz w, v Σ. Utożsamiamy konfiguracje wqv, Bwqv i wqvb. (Zawsze można wiec zak ladać, że s lowo v nie kończy sie blankiem a s lowo w nie zaczyna sie od blanku.) Sens: na taśmie mamy s lowo wv, z lewej i z prawej same blanki, a glowica maszyny patrzy na pierwszy znak na prawo od w. Konfiguracje postaci C w = q 0 w, gdzie w A, nazywamy poczatkow a, a konfiguracje postaci wqv, gdzie q F nazywamy końcowa (akceptujac a lub odrzucajac a, zależnie od stanu q). Uwaga: Ta definicja oznacza przyjecie dwóch ważnych za lożeń interpretacyjnych. Po pierwsze, że dozwolone konfiguracje sk ladaj a sie z prawie samych blanków: na taśmie może być tylko skończenie wiele innych znaków. Po drugie, że nie odróżniamy od siebie sytuacji różniacych sie tylko przesunieciem na taśmie. Gdyby te dwa za lożenia odrzucić, to zawartość taśmy powinna być definiowana jako dowolna funkcja ze zbioru liczb ca lkowitych (numerów klatek na taśmie) w alfabet Σ, a konfiguracja maszyny jako para z lożona z zawartości taśmy i stanu. W wiekszości przypadków te dwa uproszczenia nie wp lywaj a na prawdziwość uzyskanych wyników, ale nie zawsze tak jest. Relacj e M na konfiguracjach definiuje si e tak: Jeśli (q, a, b, p, +1) δ to wqav M wbpv; Jeśli (q, a, b, p, 0) δ to wqav M wpbv; Jeśli (q, a, b, p, 1) δ to wcqav M wpcbv; Symbolem M oznaczamy przechodnio-zwrotne domkniecie relacji M. Mówimy, że maszyna zatrzymuje sie dla konfiguracji C (dla s lowa w A), gdy C M C (odpowiednio, gdy C w M C ), gdzie C jest konfiguracja końcowa. Jeżeli C w M C, gdzie C jest konfiguracja akceptujac a to mówimy, że maszyna akceptuje s lowo w. J ezyk akceptowany przez maszyn e M definiujemy tak: L(M) = {w M akceptuje w}. 29

W przypadku maszyny deterministycznej, mówimy, że maszyna odrzuca s lowo w, jeżeli C w M C, dla pewnej konfiguracji odrzucajacej C. Maszyna deterministyczna jest totalna, jeżeli zatrzymuje sie dla każdej konfiguracji poczatkowej. Przez obliczenie maszyny rozpoczynajace sie od konfiguracji C, rozumiemy maksymalny ciag konfiguracji C = C 0 M C 1 M C 2 M. Obliczenie może być skończone (akceptujace lub odrzucajace 5 ) lub nieskończone. Dla danej konfiguracji C, maszyna deterministyczna ma zawsze tylko jedno obliczenie rozpoczynajace sie od C. Maszyna niedeterministyczna może mieć ich wiele. Przyk lad 7.1 Relacje przejścia maszyny Turinga można czasem przedstawić za pomoca tabelki. W wierszu q i kolumnie a znajduja sie takie trójki (b, p, i), że (q, a, b, p, i) δ. Nasz przyk lad to maszyna akceptujaca jezyk {ww w {a, b} }. Stanem akceptujacym jest OK. Dla czytelności tabeli nieistotne pola pozosta ly puste. Można tam wpisać cokolwiek. a b B # q 0 #, q a, +1 #, q b, +1 B, OK, 0 q a a, q a, +1 b, q a, +1 B, q a, 0 #, p, 1 q b a, q b, +1 b, q b, +1 B, q a, 0 #, p, 1 p a, p, 1 b, p, 1 #, q 1, +1 q 1 #, q a, +1 #, q b, +1 q a a, q a, +1 b, q a, +1 #, r a, +1 q b a, q b, +1 b, q b, +1 #, r b, +1 r a #, r, 1 b, r a, 0 B, r a, 0 #, r a, +1 r b a, r b, 0 #, r, 1 B, r a, 0 #, r b, +1 r a, p, 1 b, p, 1 B, s, +1 #, r, 1 s a, s, 0 b, s, 0 B, OK, 0 #, s, +1 W stanie q 0 maszyna zamazuje krzyżykiem obecnie ogladany symbol, i przechodzi do stanu q a lub q b, zależnie od tego, jaki to by l symbol. Nastepnie przesuwa g lowice w prawo, aż w pewnym momencie, w konfiguracji postaci #wq a av lub #wq b bv postanowi wracać. Wtedy przechodzi do konfiguracji postaci #wp#v i przesuwa g lowice w lewo, aż nie natrafi na krzyżyk. Wtedy cofa sie o krok i przechodzi do stanu q 1. W tym stanie maszyna zachowuje sie podobnie jak w stanie q 0, ale tym razem deterministycznie poszukujemy pierwszej litery na prawo od wcześniej postawionych krzyżyków. Jeśli ta litera jest taka jak trzeba, to zamazujemy ja i wracamy znowu na poczatek. Powtarzamy to tak d lugo, aż sie nie okaże, że zamazaliśmy już wszystkie litery. Wtedy maszyna powracajaca w lewo w stanie r natrafia na blank, przechodzi do stanu s i przesuwa g lowice w prawo. Jeśli natrafi na znowu na blank to akceptuje. 5 Przy naszej definicji nie ma innej możliwości. 30

Nasza maszyna nie ma stanów odrzucajacych. Jeśli natrafia na sytuacje, która jej sie nie podoba, to naburmuszona zostaje w miejscu, wykonujac trywialne czynności. Obliczenie jest wtedy nieskończone. Maszyny wielotaśmowe Maszyny Turinga stanowia bardzo prosty formalny model obliczenia. Ze wzgledu na te prostote, opisy różnych algorytmów za pomoca zwyk lych maszyn Turinga bywaja skomplikowane. Dlatego pos lugujemy sie różnymi uogólnieniami, np. rozważamy maszyny, które maja kilka taśm roboczych. Formalnie, maszyna z k taśmami roboczymi (i jedna wejściowa) definiowana jest podobnie do zwyk lej, ale ma relacje przejścia δ (Q F ) A Σ k Σ k Q { 1, 0, +1} k+1 Konfiguracj e takiej maszyny stanowi krotka postaci q, w 0, v 0, w 1, v 1,..., w k, v k, przedstawiajaca kolejno: stan, zawartość taśmy wejściowej i zawartość k taśm roboczych (blanki pomijamy). Interpretacja jest taka, że na i-tej taśmie zapisane jest s lowo w i v i a i- ta g lowica widzi pierwszy symbol s lowa v i (jeśli v i = ε, to pierwszy blank nastepuj acy po s lowie w i.) Konfiguracja poczatkowa ma postać: q 0, ε, w, ε, ε,..., ε, ε Zmiana konfiguracji polega na zmianie stanu, poprawieniu pozycji wszystkich g lowic, i wpisaniu odpowiednich symboli na taśmach roboczych. Zawartość taśmy wejściowej nie ulega zmianie. Oczywiście maszyna wielotaśmowa może być deterministyczna lub nie. Maszyny wielotaśmowe potrafia tyle samo ile zwyk le, tylko czasem wygodniej o nich mówić. Fakt 7.2 Jeśli L = L(M), dla pewnej maszyny wielotaśmowej M, to także L = L(M ), dla pewnej maszyny jednotaśmowej M. Co wi ecej, jeśli M jest deterministyczna to M też jest deterministyczna. Dowód: Zamiast używać wielu taśm, można sie pos lużyć jedna taśma wielościeżkowa. Na k + 1 ścieżkach zapisujemy zawartość taśmy wejściowej i taśm roboczych, a na kolejnych k + 1 ścieżkach zapisujemy po lożenia g lowic. Formalnie oznacza to, że alfabet naszej maszyny M jest taki: Σ = A {B, } (Σ {B, }) k. Jeden symbol takiego alfabetu zawiera (na wspó lrz ednych nieparzystych) informacje o tym co znajduje sie w klatkach k + 1 taśm maszyny M po lożonych pionowo jedna nad druga. Strza lka znajdujaca sie na 2i-tej wspó lrz ednej oznacza, że g lowica i-tej taśmy oglada odpowiednia klatke. 31