Jȩzyki, automaty, zlożoność obliczeniowa

Wielkość: px
Rozpocząć pokaz od strony:

Download "Jȩzyki, automaty, zlożoność obliczeniowa"

Transkrypt

1 Jȩzyki, automaty, zlożoność obliczeniowa Joanna Jȩdrzejowicz Andrzej Szepietowski 23 października 2007

2

3 Przedmowa Podręcznik niniejszy jest przeznaczony dla studentów drugiego roku kierunku informatyki i zawiera materiał wykładu z lingwistyki matematycznej, prowadzonego przez autorów na Uniwersytecie Gdańskim i na Politechnice Gdańskiej. Chcemy serdecznie podziękować słuchaczom naszych kursów za cenne uwagi i żywe reakcje. Myślimy, że pomogły nam one napisać lepszy podręcznik. Głównym celem wykładu jest zapoznanie słuchaczy z teoretycznymi podstawami informatyki. Chcemy wyjaśnić co to jest algorytm, oraz przekazać intuicję na temat tego, co jest a co nie jest obliczalne, co ma łatwe rozwiązanie algorytmiczne a co jest trudne. Podręcznik zawiera podstawowe wiadomości z lingwistyki matematycznej, teorii obliczalności oraz teorii złożoności obliczeniowej. Zawiera wiele przykładów, zadań oraz zagadnień do samodzielnego rozwiązania. Nie wymaga się od czytelnika specjalnego przygotowania, poza znajomością matematyki na poziomie szkoły średniej oraz pewnych podstawowych umiejętności programistycznych. Gdańsk, 7 maja 2007 autorzy

4 4

5 Spis treści Przedmowa 3 1 Alfabety, słowa, języki Języki Operacje na językach Zadania Klasa REG języków regularnych Wyrażenia regularne Automat skończony (deterministyczny) Automat niedeterministyczny Determinizacja automatu skończonego Automaty z λ przejściami Twierdzenia Kleene ego Iloczyn kartezjański dwóch pełnych automatów Operacje na językach regularnych Operacja podstawienia Języki nieregularne Twierdzenie Myhilla-Nerode a Automat dwukierunkowy Wyrażenia regularne w narzędziach programistycznych Zagadnienia Operacja przeplotu Skończone języki regularne Zagnieżdżenie -Kleene ego w wyrażeniu regularnym Automat minimalny Funkcje rozróżniające Tożsamości

6 6 Spis treści 3 Klasa CF języków bezkontekstowych Gramatyka bezkontekstowa Postacie normalne Automat ze stosem Lemat o pompowaniu Operacje na językach bezkontekstowych Parsery Języki liniowe Zagadnienia Języki jednoliterowe Lemat Ogdena Lemat o pompowaniu dla języków liniowych Języki Dyck a Języki z przeplotem Maszyny Turinga Deterministyczna maszyna Turinga Maszyna z taśmą wielościeżkową Maszyna z k taśmami Maszyna Turinga obliczająca funkcję Niedeterministyczne maszyny Turinga Problemy grafowe Listy sąsiedztwa Macierz sąsiedztwa Osiągalność w grafie Formuły boolowskie Determinizacja maszyny Turinga Zagadnienia Automat z dwoma stosami Automat z k licznikami Maszyna Turinga z taśmą dwustronnie nieskończoną Czasowa złożoność obliczeniowa Klasa P Algorytm CYK sprawdzania czy słowo należy do języka generowanego przez gramatykę bezkontekstową Złożoność problemu osiągalności w grafie Klasa N P

7 Spis treści Certyfikaty Koszt determinizacji Problemy N P zupełne Problem k-sat Pokrycie wierzchołkowe Zagadnienia Problem kliki Problem podziału Złożoność języka powtórzeń Języki regularne Pamięciowa złożoność obliczeniowa Konfiguracje Osiągalność w grafie skierowanym, problem GAP Maszyny k taśmowe Mnożenie pamięci przez stałą Koszt determinizacji, twierdzenie Savitcha Klasa PSPACE Uzupełnienie Zadania Zagadnienia Języki regularne Zamkniętość na operacje Zamkniętość na uzupełnienie Automaty z kamieniami Problemy rozstrzygalne i nierozstrzygalne Teza Turinga-Churcha Problemy rozstrzygalne Problemy rozstrzygalne dla automatów skończonych i wyrażeń regularnych Problemy dla języków CF Uzupełnienie Problemy nierozstrzygalne Kodowanie maszyn Turinga Język przekątniowy Uniwersalna maszyna Turinga Redukcja

8 8 Spis treści Problem stopu Twierdzenie Rice a Zagadnienia Języki programowania Problem pustości przekroju dla gramatyk CF Problem uniwersalności dla gramatyk CF Problem równoważności dla gramatyk CF Hierarchia Chomsky ego Klasa CS języków kontekstowych (czułych na kontekst) Automat liniowo ograniczony, LBA Gramatyki CS i automaty LBA Gramatyki kombinatoryczne i maszyny Turinga Maszyny generujące języki Operacje Problemy rozstrzygalne Zadania Zagadnienia Równoważna postać gramatyk kontekstowych Problem słowa dla gramatyk CS Problem pustości dla gramatyk CS Rozszerzona notacja BNF Przedstawienie języka rekurencyjnego przy pomocy homomorfizmu i języka kontekstowego Wskazówki i odpowiedzi do zadań 177 Bibliografia 185 Skorowidz 186 Spis oznaczeń 189

9 Rozdział 1 Alfabety, słowa, języki Alfabet to dowolny skończony i niepusty zbiór, który najczęściej oznaczać będziemy przez Σ. Elementy σ Σ nazywać będziemy symbolami lub literami. Dowolny ciąg symboli nazywamy słowem lub łańcuchem. Przez Σ oznaczamy zbiór wszystkich słów nad alfabetem Σ, λ lub ɛ oznacza słowo puste, czyli słowo nie zawierające żadnego symbolu. W naszym skrypcie alfabet najczęściej będzie miał tylko kilka liter. Przykład 1.1 a) Σ = {a, b}, do Σ należy λ, a, b, aa, ab, ba, bb, aaa, aab itd. b) Σ = {a, b, c}. c) Σ = {0, 1}. Możemy także rozważać inne alfabety: 1. Zbiór 26 liter alfabetu łacinskiego Σ = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w,x, y,z}. Wówczas do Σ należą słowa języka angielskiego, ale także ciągi, które nie należą do języka, na przykład abcc. 2. Zbiór 34 liter alfabetu polskiego. Wówczas Σ zawiera słownik języka polskiego. 3. Zbiór wszystkich znaków z klawiatury. Wtedy programy w języku PASCAL lub C mogą być traktowane jako elementy Σ. Oczywiście Σ zawiera także wiele słów, które nie są poprawnymi programami. 4. Wszystkie słowa z jakiegoś słownika (na przykład słownika ortograficznego języka polskiego). Wówczas słowa z Σ można traktować jako zdania. 9

10 10 Rozdział 1. Alfabety, słowa, języki Dla słów definiujemy dwuargumentową operację konkatenacji lub zespolenia. Niech u, v Σ, u = u 1...u k, v = v 1...v m wtedy konkatenacją słów u i v jest słowo u v = u 1...u k v 1...v m. Na przykład, jeżeli u = aba oraz v = bba, to u v = ababba oraz v u = bbaaba. Jak widać konkatenacja nie jest przemienna. Ponadto przyjmujemy, że dla dowolnego słowa u zachodzi λ u = u λ = u. Konkatenacja jest łączna. Symbol operacji składania często opuszczać, pisząc uv zamiast u v. Podsłowo słowa v to dowolny zwarty podciąg. Mówiąc dokładniej, u jest podsłowem słowa v Σ, jeżeli istnieją słowa x, y Σ, takie że v = xuy (x lub y może być słowem pustym). Na przykład podsłowami słowa abbc są słowa λ, ab, bb, bc oraz całe słowo abbc, a słowo abc nie jest podsłowem abbc. Początkowe podsłowo nazywamy prefiksem, dokładniej u jest prefiksem v, jeżeli istnieje y, takie że v = uy. Na przykład słowo abbc ma 5 prefiksów λ, a, ab, abb, abbc. Końcowe podsłowo nazywamy sufiksem, dokładniej u jest sufiksem v, jeżeli istnieje x, takie że v = xu. Długościa słowa w, oznaczaną przez w, nazywamy liczbę symboli, z których składa się słowo w, na przykład aab = 3. Słowo puste ma oczywiście długość λ = 0. Liczbę wystąpień litery a w słowie w będziemy oznaczać przez w a. Na przykład aba a = 2, oraz aba b = 1. Lustrzanym (zwierciadlanym) odbiciem słowa w = w 1 w 2...w n, gdzie w i Σ, dla i = 1...n, oznaczanym przez w R, nazywamy słowo postaci: w R = w n w n 1...w 2 w 1. Na przykład (abab) R = baba, odbiciem lustrzanym słowa pustego λ jest słowo puste λ R = λ. 1.1 Języki Podstawowym pojęciem omawianym w tej książce jest język. Język, nad alfabetem Σ to dowolny podzbiór Σ. Przykład 1.2 a) Językami nad alfabetem {a, b} sa zbiory {a, aa, aaa, aaaa}, {λ, a, b, aa} lub zbiór wszystkich słów parzystej długości. b) Językiem nad alfabetem {0, 1} jest zbiór słów, które koduja w systemie dwójkowym liczby podzielne przez 3. Języki nad alfabetami kilkuliterowymi mogą wydawać się sztuczne i niepraktyczne. Będziemy ich używać, bo na prostych przykładach łatwiej można wyjaśnić o co chodzi. Należy jednak mieć na uwadze, że języki mogą być bardziej złożone. Przedstawimy teraz kilka przykładów. 1. Językiem nad alfabetem 34 polskich liter jest zbiór wszystkich poprawnych słów w języku polskim.

11 1.2. Operacje na językach Jeżeli za alfabet przyjmiemy zbiór znaków z klawiatury, to językiem jest zbiór poprawnie zbudowanych programów w języku C. 3. Jeżeli za alfabet przyjmiemy zbiór wszystkich słów ze słownika, to językiem jest zbiór zdań poprawnie zbudowanych pod względem gramatycznym. 4. Językiem jest zbiór prawdziwych twierdzeń jakiejś teorii, na przykład geometrii. Tutaj alfabetem jest zbiór znaków z klawiatury. W tej książce będą nas interesowały głównie dwa problemy. Pierwszy to jak opisywać języki. Okaże się, że pewne języki można opisać łatwo, inne trochę trudniej, a dla jeszcze innych nie są znane metody dokładnego opisu. Drugi problem to konstrukcja automatów, maszyn lub programów komputerowych, które będą automatycznie sprawdzały, czy dane słowo należy do języka. Takim programem jest na przykład kompilator, który sprawdza poprawność programu. Istnieją też programy, które sprawdzają, czy w tekście nie ma błędów ortograficznych. 1.2 Operacje na językach Na językach można wykonywać operacje. Niech L 1 i L 2 będą dwoma językami nad alfabetem Σ. Wtedy L 1 L 2 lub L 1 + L 2 oznacza sumę mnogościową tych języków, L 1 L 2 oznacza przekrój (część wspólną), L 1 \ L 2 oznacza różnicę, zaś L 1 L 2 oznacza konkatenację języków, która zawiera wszystkie możliwe konkatenacje dwóch słów, z których pierwsze należy do L 1 a drugie do L 2, lub bardziej formalnie L 1 L 2 = {u v u L 1, v L 2 }. Przykład 1.3 Niech L 1 = {a, aa} oraz L 2 = {b, ab}. Wtedy: a) L 1 L 2 = {a, aa, ab, b} b) L 1 L 2 = {ab, aab, aaab} c) L 2 L 1 = {ba, baa, aba, abaa} d) L 1 L 1 = {aa, aaa, aaaa} e) L 2 L 2 = {bb, bab, abb, abab} Jeżeli konkatenujemy ze sobą ten sam język, to będziemy używać wykładników: L 2 = L L, L 3 = L L L i tak dalej, L i = L i 1 L dla każdego i 2. Ponadto, przyjmujemy L 1 = L oraz L 0 = {λ}. Przykład 1.4 Jeżeli L = {a, b}, to L 2 = {aa, ab, ba, bb} zawiera wszystkie słowa nad alfabetem {a, b} długości 2, zaś L i zawiera wszystkie słowa długości i.

12 12 Rozdział 1. Alfabety, słowa, języki Ostatnią operacją jest domknięcie Kleene ego (zwane gwiazdką Kleene ego), które definiujemy za pomocą sumy L = L i. Przez L + będziemy oznaczać L {λ}. i=0 Przykład 1.5 a) Jeżeli L 1 = {a, b}, to L 1 zawiera wszystkie słowa nad alfabetem {a, b}. b) Jeżeli L 2 = {aa, ab, ba, bb}, to L 2 zawiera wszystkie słowa nad alfabetem {a, b} parzystej długości. Operacje sumy, przekroju, konkatenacji oraz domknięcia Kleene ego mają pewną ważną własność, którą nazywamy monotonicznością. Lemat 1.6 Jeżeli A, B i C sa trzema językami i A B, to zachodzą zawierania: 1. A C B C 2. A C B C 3. AC BC 4. A B Dowód 4): Aby udowodnić inkluzję A B, pokażemy, że dowolne słowo w należące do A należy także do B. Rzeczywiście, jeżeli w A, to albo w = λ, i wtedy należy do B, albo w jest konkatenacją w = w 1...w k, z których każde w i A, a ponieważ A B, więc każde w i należy także do B i w należy do B. Dowody punktów 1 3 można przeprowadzić w podobny sposób, szczegóły pozostawiamy czytelnikowi. Lemat 1.7 Dla dowolnego języka A zachodzi (A ) = A. Dowód: Ponieważ A A, więc na mocy lematu 1.6 A (A ). Wystarczy, zatem udowodnić zawieranie w drugą stronę. Niech w (A ), wtedy albo w = λ i należy do A, albo w jest konkatenacją kilku słów należących do A, to znaczy w = w 1...w k i każde ze słów w i, 1 i k jest konkatenacją słów należących do A, a ponieważ konkatenacja jest łączna, więc w jest konkatenacją słów z A, czyli w A.

13 1.3. Zadania Zadania Zadanie 1.8 Wypisz wszystkie podsłowa, prefiksy i sufiksy słowa baba. Zadanie 1.9 Znajdź słowo długości 5 nad alfabetem {a, b}, które ma możliwie jak najwięcej różnych podsłów. Zadanie 1.10 Które z następujących równości sa przwdziwe dla dowolnych słów u, v, w {a, b}? 1. uw = wu 2. (uv) R = v R u R 3. (w R ) k = (w k ) R, k > 0 4. (w R ) R = w Zadanie 1.11 Dla jakich języków L domknięcie Kleene ego L jest zbiorem jednoelementowym, a dla jakich skończonym? Zadanie 1.12 Dane sa języki A i B nad alfabetem Σ = {a, b} Znaleźć A B, AB, A, B +, A \ B, A B. 1. A = {λ, a, aa, aaa}, B = {λ, b, bb, bbb} 2. A = {a, b}, B = {bb, bbbb} Zadanie 1.13 Dane sa języki K i L nad alfabetem Σ = {a, b} Znaleźć K L, KL, K, K \ L, K L. 1. K = {a n ba n : n 0}, L = {a n b k a n : k 0, n 1} 2. K = {ba 2n : n 1}, L = {ab 2n : n 0} Zadanie 1.14 Czy następujące równości sa prawdziwe dla dowolnych języków L, K i M? Uzasadnić. 1. K(L M) = KL KM 2. L(L \ K) = K 3. (K L) = K L

14 14 Rozdział 1. Alfabety, słowa, języki 4. (LK) L = L(KL) 5. (K + ) = K 6. (K L) = (K L ) 7. (K L) = (K L )

15 Rozdział 2 Klasa REG języków regularnych W tym rozdziale zajmiemy się językami regularnymi, które są pod wieloma względami najprostsze. Po pierwsze, istnieje prosta metoda opisu tych języków za pomocą tak zwanych wyrażeń regularnych. Po drugie, istnieje prosta metoda sprawdzania, czy dane słowo należy do języka. Robi się to za pomocą automatów skończonych. 2.1 Wyrażenia regularne Jak już wspomnieliśmy wyżej, wyrażenia regularne służą do opisu języków. 1. jest wyrażeniem regu- Definicja 2.1 (Wyrażenia regularnego nad alfabetem Σ) larnym, 2. λ jest wyrażeniem regularnym, 3. dla każdego σ Σ, σ jest wyrażeniem regularnym, 4. jeżeli u i v sa wyrażeniami regularnymi, to (u + v), (uv), (u) sa wyrażeniami regularnymi. Żadne inne napisy nie sa wyrażeniami regularnymi, to znaczy wyrażeniem regularnym jest tylko taki napis, który można uzyskać z symboli wymienionych w punktach 1 3 za pomoca skończonej liczby operacji wymienionych w punkcie 4. Przykład 2.2 Wyrażeniami regularnymi nad alfabetem Σ = {a, b, c} sa na przykład: λ, a, abb, a + bc, a(b + c), a, (ab), a + (b + c). 15

16 16 Rozdział 2. Klasa REG języków regularnych Jak widać opuściliśmy w tych wyrażeniach zbędne nawiasy. Podobnie w przyszłości będziemy opuszczać nawiasy, jeżeli nie będzie to prowadzić do niejednoznaczności. Dla prostych wyrażeń łatwo można się domyślić co one opisują. Wyrażenie λ opisuje słowo puste, wyrażenie a opisuje pojedynczą literę a, a dokładniej słowo składające się z jednej litery a, wyrażenie abb opisuje słowo abb. Znak + służy do wyrażania wyboru: wyrażenie a+ab opisuje jednoliterowe słowo a lub słowo ab, będziemy mówić, że a+ab opisuje zbiór (język) składający się z dwóch słów {a, ab}. Wyrażenie a(b + c) opisuje słowa, w których na pierwszym miejscu stoi litera a, a na drugim litera b lub c, czyli a(b + c) opisuje język {ab, ac}. Znak służy do powtarzania dowolną liczbę razy danego fragmentu. Wyrażenie a oznacza literę a powtórzoną dowolną liczbę razy, przy czym a może nie wystąpić wcale. Innymi słowy wyrażenie a opisuje nieskończony język składający się ze słowa pustego λ oraz wszystkich słów zawierających same a, to znaczy język {λ, a, aa, aaa,...}. Wyrażenie (ab) opisuje dowolną liczbę (także zero) razy powtórzone słowo ab, lub mówiąc inaczej (ab) opisuje język {λ, ab, abab, ababab,...}. Po tych prostych przykładach przejdźmy do formalnej definicji języka opisywanego przez wyrażenie regularne, albo mówiąc inaczej i bardziej poprawnie, języka generowanego przez wyrażenie regularne. Definicja 2.3 Język L(r) generowany przez wyrażenie regularne r określony jest następujaco: 1. jeśli r =, to L(r) = (generowany język jest zbiorem pustym), 2. jeśli r = λ, to L(r) = {λ} (generowany język składa się tylko ze słowa pustego), 3. jeśli r = σ, to L(r) = {σ} (generowany język składa się tylko z jednoliterowego słowa σ), 4. jeśli u i v generuja języki U = L(u) i V = L(v), to (u + v) generuje U V (sumę mnogościowa), (uv) generuje U V (konkatenację), (u) generuje U (domknięcie Kleene ego), Przykład Wyrażenie ba jest konkatenacja dwóch wyrażeń b oraz a. Wyrażenie b generuje język {b}, zaś a generuje język złożony z samych a (oraz słowa pustego λ). Tak więc wyrażenie ba generuje konkatenację tych dwóch języków, czyli słowa, które zaczynaja się literą b i potem zawieraja ciag (może być pusty) złożony z samych a.

17 2.1. Wyrażenia regularne Wyrażenie (a + b) jest domknięciem Kleene ego wyrażenia a + b, które generuje język {a, b}. Tak więc (a + b) generuje {a, b}, czyli zbiór wszystkich słów nad alfabetem {a, b}. 3. Wyrażenie a(a+b) jest konkatenacja wyrażeń a oraz (a+b) i generuje słowa nad alfabetem {a, b} zaczynajace się od a. 4. Wyrażenie a(a+b) +(a+b) b jest suma dwóch wyrażeń: a(a+b) oraz (a+b) b. Pierwsze generuje słowa zaczynajace się od a, a drugie słowa kończace się na b. Razem, całe wyrażenie a(a + b) + (a + b) b generuje słowa zaczynajace się od a lub kończace na b. Chociaż bardziej poprawnie jest mówić, że wyrażenie generuje język, czasami będziemy mówić, że je opisuje. Przykład 2.5 Wyrażenie: 1. (a + b) aa(a + b) generuje wszystkie słowa, nad alfabetem {a, b}, które zawieraja podsłowo aa. 2. (a + b)(a + b) generuje wszystkie słowa długości ((a + b)(a + b)) generuje wszystkie słowa parzystej długości. 4. (a + b)((a + b)(a + b)) generuje wszystkie słowa nieparzystej długości. 5. (a + bc) generuje wszystkie słowa nad alfabetem {a, b, c}, w których za każdym b stoi jedno c. Definicja 2.6 Każdy język generowany przez wyrażenie regularne nazywamy językiem regularnym. Klasę języków regularnych oznaczamy REG. Zadanie 2.7 Jaki język generuje następujące wyrażenie: 1. a(a + b)c 2. (a + b)(a + b)(b + a) 3. (a + b)(a + b) 4. aa(a + b) + (a + b) bb. 5. (a + b) aaa(a + b).

18 18 Rozdział 2. Klasa REG języków regularnych Zadanie 2.8 Podaj wyrażenie regularne, które generuje język składajacy się ze słów nad alfabetem {a, b}: 1. zawierających podsłowa aa oraz bb. 2. zaczynajacych się litera a oraz kończacych się litera b. 3. nie kończacych się literą b. 4. w których nie występuja po sobie dwie takie same litery. 5. których długość dzieli się przez których długość nie dzieli się przez 3. Zadanie 2.9 Podaj wyrażenie regularne, które generuje język składajacy się ze słów nad alfabetem {a, b, c} 1. zawierających podsłowo abc. 2. nie kończacych się literą b. Zadanie 2.10 Podaj wyrażenie regularne, które opisuje stałe typu integer (w języku Pascal lub C). Zadanie 2.11 Poprawna nazwa w języku XML może zawierać litery, cyfry oraz znaki podkreślenia, dwukropek, myślnik i musi zaczynać się od litery, znaku podkreślenia lub od dwukropka. Podać wyrażenie regularne opisujące poprawne nazwy. Definicja 2.12 Mówimy, że wyrażenia regularne u i v sa tożsame (lub równoważne), co zapisujemy u v, jeżeli języki generowane przez te wyrażenia sa równe L(u) = L(v). Przykład Wyrażenia (a+b)+c i a+(b+c) sa tożsame, ponieważ oba opisują język {a, b, c}. 2. Wyrażenia (a + b) i a + b nie sa tożsame, ponieważ słowo ab jest generowane przez pierwsze wyrażenie, a nie przez drugie. 3. Wyrażenia (a + b) i (a + b ) sa tożsame, oba opisują ten sam język wszystkich słów nad alfabetem {a, b}. Ponieważ L(b) L(b ), więc L((a + b) ) L((a + b ) ). Zawieranie w druga stronę wynika z faktu, że L((a + b ) ) jest podzbiorem wszystkich słów nad alfabetem {a, b}, czyli języka L((a + b) ).

19 2.2. Automat skończony (deterministyczny) 19 Zadanie 2.14 Czy następujace tożsamości sa prawdziwe. 1. (ab ) + aa b 2. (ab + a) a (ba + a) 3. (a + b) b (a b) 4. (a + b) (a + b ) 5. (a + b) c a c + b c 2.2 Automat skończony (deterministyczny) Dla języków regularnych istnieje prosty sposób rozpoznawania, czy słowo należy do języka. Robi się to za pomocą tak zwanych automatów skończonych. Automat skończony jest pewną matematyczną abstrakcją. Dlatego zanim podamy jego formalną definicję rozważmy działanie automatu mniej abstrakcyjnego, czyli automatu sprzedającego batony (zamiast batonów mogą być bilety, zabawki, kawa lub coś innego). Przypuśćmy, że do automatu wrzucamy monety jednozłotowe i dwuzłotowe i jak wrzucimy w sumie trzy złote to automat wydaje nam baton. Oczywiście konstrukcja automatu wymaga rozwiązania wielu szczegółów, którymi nie będziemy się tutaj zajmować. Nas interesuje jeden aspekt, mianowicie, że taki automat musi mieć pamięć. Aby dostać baton trzeba wrzucić kilka monet i automat musi móc zapamiętać ile pieniędzy już dostał. Musi móc rozróżnić (co najmniej) cztery sytuacje: 1. nie dostałem jeszcze żadnych pieniędzy, 2. dostałem 1 złoty, 3. dostałem w sumie 2 złote, 4. dostałem w sumie 3 złote, Naiwnie możemy sobie wyobrazić, że tą pamięcią automatu jest jakiś trybik (małe kółko zębate), które może się znajdować w czterech różnych położeniach, które będziemy nazywać stanami, i te stany odpowiadają czterem wspomnianym wyżej sytuacjom, nazwijmy te stany {q 0, q 1, q 2, q 3 }. Na początku automat znajduje się w stanie q 0. Wrzucanie monet powoduje zmiany stanów (odpowiednie obracanie się kółka). Po osiągnięciu stanu q 3 automat wydaje baton.

20 20 Rozdział 2. Klasa REG języków regularnych q 1 0 q 2 1 q q 2 Rysunek 2.1: Schemat automatu sprzedającego batony Rysunek 2.1 przedstawia jak działa nasz automat. Kółka oznaczają stany, stan q 0 jest oznaczony krótką wchodzącą strzałką, ponieważ od niego rozpoczyna się działanie automatu. Stan q 3 oznaczony jest podwójnym brzegiem, jego osiągnięcie powoduje wydanie batonu. Strzałki z etykietami pokazują jak zmieniają się stany, kiedy automat otrzymuje na swoim wejściu monety. Na przykład, jeżeli automat jest w stanie q 1 i otrzyma na wejściu 2 złote, to zmienia stan na q 3. Podobnie działają automaty rozpoznające, będziemy mówili akceptujące, języki. Możemy sobie wyobrazić, że taki automat wygląda tak jak na rysunku 2.2. a a b a b q Rysunek 2.2: Schemat automatu Posiada on taśmę, podzieloną na komórki, głowicę czytającą symbole z taśmy oraz moduł pamięci, zwany także pamięcia. Na taśmie, w poszczególnych komórkach wypisane jest słowo wejściowe. Moduł pamięci znajduje się w jakimś stanie, a głowica znajduje się pod aktualnie czytanym symbolem taśmy. Na początku głowica znajduje się pod pierwszym symbolem, a pamięć w specjalnym stanie początkowym q 0. Następnie automat przeprowadza obliczenie, które przebiega w taktach. W każdym takcie automat zmienia stan i przesuwa głowicę o jedną kratkę w prawo. Po przeczytaniu całego słowa automat za-

21 2.2. Automat skończony (deterministyczny) 21 trzymuje się. Mówimy, że automat akceptuje słowo wejściowe, jeżeli stan, w którym się na końcu zatrzymuje, należy do specjalnego zbioru stanów akceptujących. Zbiór wszystkich słów akceptowanych przez automat tworzy język akceptowany przez ten automat. W tym rozdziale zajmujemy się automatami skończonymi, w których pamięć jest skończona, lub mówiąc inaczej, moduł pamięci może przyjmować stany z pewnego skończonego zbioru stanów, który zwykle będziemy oznaczać przez Q. Podobnie jak w przypadku automatu sprzedającego batony, dla nas będzie najważniejsze jak zmieniają się stany po przeczytaniu poszczególnych symboli. Dlatego automaty często będziemy przedstawiać za pomocą tak zwanych grafów przejść. b b q 0 a q 1 a Rysunek 2.3: Przykład grafu przejść Rysunek 2.3 przedstawia przykład grafu przejść pewnego automatu. Kółka oznaczają stany, stan q 0 jest stanem początkowym, od niego rozpoczyna się obliczenie, jest on oznaczony krótką wchodzącą strzałką. Stan q 1 jest stanem końcowym lub akceptującym, oznaczony jest podwójnym brzegiem. Strzałki z etykietami pokazują, jak zmieniaą się stany po przeczytaniu poszczegónych liter. Jeżeli na wejście automatu damy, na przykład, słowo w = aba, to automat będzie czytał to słowo zmieniając przy tym swój stan. Obliczenie rozpoczyna się w stanie q 0, po przeczytaniu pierwszej litery stan automatu zmienia się na q 1, po przeczytaniu drugiej litery stan automatu nie zmieni się, a po przeczytaniu ostatniej litery stan zmieni się na q 0 i obliczenie zakończy się. Ponieważ ostateczny stan nie jest stanem końcowym, słowo w = aba nie jest akceptowane przez automat. Podobnie możemy sie przekonać, że słowo abaa doprowadza automat do stanu q 1 i jest akceptowane. Łatwo widać, że automat akceptuje wyłącznie słowa zawierające nieparzystą liczbę liter a. W tym rozdziale pokażemy, że automaty skończone akceptują dokładnie języki regularne. To znaczy każdy język opisany przez wyrażenie regularne jest akceptowany przez pewien automat skończony i na odwrót każdy język akceptowany przez automat skończony może być opisany przez wyrażenie regularne. Do tego potrzebne nam są formalne

22 22 Rozdział 2. Klasa REG języków regularnych definicje. Definicja 2.15 Deterministyczny automat skończony to piatka gdzie A = (Q, Σ, δ, q 0, F), Q jest skończonym zbiorem stanów automatu, Σ jest alfabetem wejściowym, q 0 Q jest pewnym wyróżnionym stanem, zwanym stanem poczatkowym, F Q jest zbiorem stanów końcowych (lub akceptujacych), δ : Q Σ Q jest funkcja przejścia, która określa jak zmienia się stan automatu. Przykład 2.16 Automat odpowiadajacy grafowi przejść podanemu na rysunku 2.3 formalnie wyglada tak: A = (Q, Σ, δ, q 0, F), gdzie: tabela Q = {q 0, q 1 }, Σ = {a, b}, F = {q 1 }. Funkcję przejścia δ przedstawia poniższa δ a b q 0 q 1 q 0 q 1 q 0 q 1 Konfiguracją automatu jest słowo postaci postaci qw, w którym q Q jest bieżącym stanem automatu, a w Σ jest zawartością taśmy wejściowej, która została jeszcze do przeczytania (głowica obserwuje pierwszą literę słowa w). Intuicyjnie konfiguracja ma określać na jakim etapie znajduje się obliczenie automatu i w sposób jednoznaczny wyznacza dalszy przebieg obliczenia. Pomiędzy konfiguracjami określamy relację bezpośredniego następnika, która opisuje jak zmienia się konfiguracja po wykonaniu jednego kroku automatu. Definicja 2.17 Konfiguracja pw jest bezpośrednim następnikiem konfiguracji qσw, jeżeli δ(q, σ) = p.

23 2.2. Automat skończony (deterministyczny) 23 Mówiąc inaczej, automat będąc w konfiguracji qσw (głowica w stanie q czyta na taśmie symbol σ, a na prawo od σ stoi słowo w) po wykonaniu jednego kroku znajdzie się w konfiguracji pw (głowica zmieni stan na p i przesunie się o jedną komórkę w prawo). Konfigurację q 0 w nazywamy konfiguracją początkową na słowie w (głowica w stanie początkowym q 0 obserwuje pierwszą literę słowa w). Definicja 2.18 Obliczenie na słowie w, to ciag konfiguracji β 0,..., β k w którym β 0 jest konfiguracją poczatkow a na w, oraz dla każdego i, 0 i < k konfiguracja β i+1 jest bezpośrednim następnikiem konfiguracji β i. Konfiguracja postaci qλ jest konfiguracją akceptujac a, jeżeli q F. W konfiguracji akceptującej stoi słowo puste, co oznacza, że automat przeczytał już całe słowo. Obliczenie na słowie w jest akceptujące, jeżeli kończy się konfiguracją akceptującą. W dalszym ciągu będziemy często oznaczać konfigurację akceptującą jako q zamiast pisać qλ. Ponadto przyjmujemy, że obliczenie na słowie pustym w = λ jest akceptujące jeżeli stan początkowy jest końcowy, q 0 F. Uwaga. Dopuszcza się, aby funkcja przejścia była funkcją częściową, to znaczy nie musi być określona dla każdej pary (q, σ). W takim przypadku może się zdarzyć, że konfiguracja qσw nie posiada następnika i obliczenie kończy się konfiguracją, w której nie całe słowo zostało przeczytane. Takie obliczenie nigdy nie jest akceptujące. Przykład 2.19 Obliczenie automatu A z rysunku 2.3 na słowie aba wyglada następujaco: q 0 aba q 1 ba q 1 a q 0 i nie jest akceptujace. Obliczenie automatu A na słowie abaa wyglada następująco: i jest akceptujace. q 0 abaa q 1 baa q 1 aa q 0 a q 1 Definicja 2.20 Język akceptowany przez automat A to zbiór L(A) = {w Σ istnieje obliczenie akceptuja ce A na w}. Jest oczywiste, że ten sam język może być akceptowany przez kilka różnych automatów. Definicja 2.21 Dwa automaty A 1 i A 2 nazwiemy równoważnymi, jeżeli akceptuj a ten sam język, L(A 1 ) = L(A 2 ).

24 24 Rozdział 2. Klasa REG języków regularnych a a q 0 b q 1 a Rysunek 2.4: Automat dany jako graf przejść Przykład 2.22 Automat A z rysunku 2.3 akceptuje słowa zawierajace nieparzysta liczbę liter a. Łatwo można udowodnić przez indukcję ze względu na długość słowa w, że po przeczytaniu słowa w automat znajduje się w stanie q 0, jeżeli w zawiera parzystą liczbę liter a, i w stanie q 1, jeżeli w zawiera nieparzystą liczbę a. Zadanie 2.23 Przedstaw funkcję przejścia automatu z rysunku 2.4. Przedstaw obliczenie na słowach baaab oraz babaa. Jaki język akceptuje ten automat? Zadanie 2.24 Dany jest automat = (Q, Σ, δ, q 0, F), gdzie Q = {q 0, q 1, q 2 }, Σ = {0, 1}, F = {q 0 }, δ a b q 0 q 1 q 0 q 1 q 2 q 1 q 2 q 0 q 2 Przedstaw go jako graf przejść. Przedstaw obliczenie automatu na słowach abbaa, ababa. Jaki język akceptuje ten automat? Zadanie 2.25 Podaj automat akceptujacy język składajacy się ze słów nad alfabetem {a, b}: 1. zawierających podsłowo aa. 2. zaczynajacych się litera a. 3. kończacych się literą b.

25 2.2. Automat skończony (deterministyczny) zaczynajacych się litera a oraz kończacych się litera b. 5. zawierających parzysta liczbę liter a. 6. w których symbol a występuje co najmniej 2 razy. 7. których długość jest wielokrotnością które od trzeciej pozycji zawierają tylko literę a. 9. które na trzeciej pozycji od końca zawieraja literę a. Zadanie 2.26 Podaj automat akceptujacy język składajacy się ze: 1. słów nad alfabetem {0, 1}, które przedstawiają liczbę binarną podzielna przez słów nad alfabetem {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, które przedstawiają liczbę w systemie dziesiętnym podzielną przez 3 (w innych wariantach tego zadania liczby maja być podzielne przez 6 lub 7). 3. słów nad alfabetem {0, 1}, które przedstawiają liczbę w systemie dwójkowym podzielna przez 3 (w innym wariancie tego zadania liczby maja być podzielne przez 5). 4. słów nad alfabetem {a, b, c}, w których pierwsza litera powtarza się w słowie przynajmniej jeden raz. 5. słów nad alfabetem {a, b, c}, zawierajacych podsłowo aaa. 6. słów nad alfabetem {a, b, c}, zawierajacych podsłowo aaa lub aba. 7. słów a, aab oraz aaab. Zadanie 2.27 Podaj automaty akceptuj ace języki generowane przez wyrażenia regularne: b a, (aa), (a + b)(a + b).

26 26 Rozdział 2. Klasa REG języków regularnych Zadanie 2.28 Dany jest automat M a 3 1 b 2 b c a a 4 a 5 c Podaj wyrażenie regularne generujace język akceptowany przez automat powstały z M poprzez: 1. usunięcie strzałki prowadzacej od stanu 1 do 3 i od stanu 1 do zmianę stanu poczatkowego na stan o numerze 2. Zadanie 2.29 Dla danego automatu przedstawionego w postaci grafu przejść podaj wyrażenie regularne generujace akceptowany język: 1. graf przejść A b 4 a b a a c a 5 c 2. graf przejść B

27 2.3. Automat niedeterministyczny 27 b a 1 3 b 4 a b a c a 5 b c 3. graf przejść C b a 1 a 2 b a b 3 Zadanie 2.30 Skonstruuj automat akceptujacy język {a n b n : 0 n 7}. Czy istnieje automat akceptujacy ten język majacy mniej niż 7 stanów? 2.3 Automat niedeterministyczny Przejdziemy teraz do omawiania następnej klasy automatów skończonych: do skończonych automatów niedeterministycznych, które mówiąc niedokładnie mogą zgadywać lub inaczej mogą wybierać, jak dalej będzie przebiegać obliczenie. Rysunek 2.5 przedstawia przykład grafu przejść automatu niedeterministycznego. Ze stanu q 1 odchodzą dwie strzałki z etykietą b i jeżeli automat znajduje się w tym stanie, to może wybrać którą drogą pójdzie obliczenie. Słowo wejściowe jest zaakceptowane, jeżeli istnieje ciąg wyborów prowadzących do stanu akceptującego. Na przykład dla słowa abab istnieje ciąg odgadnięć prowadzących do stanu akceptującego: q 0 abab q 0 bab q 0 ab q 0 b q 1, więc słowo abab jest akceptowane przez automat. Dla tego samego słowa ababa istnieje też inny ciąg odgadnięć q 0 abab q 0 bab q 1 ab,

28 28 Rozdział 2. Klasa REG języków regularnych a,b q b 0 q 1 Rysunek 2.5: Graf przejść automatu niedeterministycznego A który doprowadził do konfiguracji, która nie ma następnika i nie jest końcowa. Przyjmujemy, że istnienie takich obliczeń nie będzie miało wpływu na akceptację, ważne jest by słowo miało przynajmniej jedno obliczenie akceptujące. Zauważmy, że nie istnieje obliczenie akceptujące dla słowa aba. Nie trudno zuważyć, że automat akceptuje dokładnie słowa kończące się literą b. Czytając słowo wejściowe, po napotkaniu każdej litery b automat odgaduje, czy jest to ostatnia litera słowa i przechodzi do stanu q 1, w którym kończy obliczenie, lub odgaduje, że to nie jest koniec słowa i zostaje w stanie q 0. Przejdźmy teraz do formalnej definicji automatu niedeterministycznego. Definicja 2.31 Niedeterministyczny automat skończony to piatka A = (Q, Σ, δ, q 0, F), gdzie Q, Σ, q 0 oraz F maja takie samo znaczenie jak w automacie deterministycznym, zaś funkcja przejścia ma inna przeciwdziedzinę. Tutaj δ : Q Σ P(Q) gdzie P(Q) oznacza zbiór wszystkich podzbiorów zbioru Q. Przykład 2.32 Funkcję przejścia automatu z rysunku 2.5 przedstawia tabela δ a b q 0 {q 0 } {q 0, q 1 } q 1 Definicja bezpośredniego następnika jest podobna jak w automacie deterministycznym. Konfiguracja pw jest bezpośrednim następnikiem konfiguracji qσw, jeżeli p δ(q, σ).

29 2.3. Automat niedeterministyczny 29 Obliczenie na słowie w, to ciąg konfiguracji β 0,..., β k w którym β 0 jest konfiguracją początkową na w, oraz dla każdego i, 0 i < k konfiguracja β i+1 jest bezpośrednim następnikiem konfiguracji β i. Konfiguracja postaci qλ jest konfiguracją akceptującą, jeżeli q F. Obliczenie jest akceptujące, jeżeli kończy się konfiguracją akceptującą. Zauważmy, że definicje obliczenia, obliczenia akceptującego i języka akceptowanego dla automatu niedeterministycznego są takie same jak dla automatu deterministycznego. Wszystkie konfiguracje, do których prowadzą obliczenia w automacie niedeterministycznym (zwane konfiguracjami osiagalnymi) można przedstawić w postaci tak zwanego drzewa obliczeń automatu. W korzeniu drzewa jest konfiguracja początkowa, natomiast synami wierzchołka odpowiadającego konfiguracji α są wierzchołki odpowiadające bezpośrednim następnikom konfiguracji α. Przy tej interpretacji słowo jest zaakceptowane, jeżeli w jego drzewie obliczeń jest liść z konfiguracją akceptującą. Jeżeli takiego liścia nie ma, słowo nie jest zaakceptowane. Rysunek 2.6 przedstawia akceptujące drzewo obliczeń automatu A na słowie bab oraz drzewo obliczeń na słowie bba, w którym nie ma liścia akceptującego. a) b) q 0 bab q 0 bba q 0 ab q 1 ab q 0 ba q 1 ba q 0 b q 0 a q 1 b q 0 q 1 q 0 Rysunek 2.6: Rysunki a) i b) przedstawiają drzewo obliczeń automatu A na slowie bab i bba Zadanie 2.33 Na rysunku 2.7 przedstawiony jest automat niedeterministyczny D. Podaj tabelę jego funkcji przejścia. Narysuj drzewo obliczeń dla słów aba, bab. Jaki język akceptuje ten automat?

30 30 Rozdział 2. Klasa REG języków regularnych a,b q 0 b q 1 a,b q 2 Rysunek 2.7: Automat D Zadanie 2.34 Przedstaw automat niedeterministyczny dla języka: 1. słów nad alfabetem {a, b} kończacych się literą b. 2. słów nad alfabetem {a, b}, w których na przedostatnim miejscu stoi litera a. 3. słów nad alfabetem {a, b}, w których na trzecim (dziesiatym) miejscu od końca stoi litera a. 4. słów nad alfabetem {a, b, c}, w których ostatnia litera występuje wcześniej w słowie. 5. słów nad alfabetem {a, b, c}, w których występuje podsłowo abc. 6. słów nad alfabetem {a, b, c}, w których występuje podsłowo aab lub podsłowo aac. 7. konkatenacji dwóch języków LK nad alfabetem {a, b, c}, gdzie L zawiera słowa kończace się literą a, zaś K słowa z parzysta liczba liter c. 2.4 Determinizacja automatu skończonego Każdy automat niedeterministyczny można zastąpić równoważnym (akceptującym ten sam język) automatem deterministycznym. Proces determinizacji pokażemy na przykładzie. Weźmy automat niedeterministczny A z rysunku 2.5 i opiszemy równoważny mu automat deterministyczny A D. Zbiór stanów automatu A jest równy Q = {q 0, q 1 }, stanami automatu A D są wszystkie podzbiory zbioru Q, czyli Q D = P(Q). Stanem początkowym automatu A D jest zbiór {q 0 }, ponieważ na początku automat A jest w stanie q 0. Po przeczytaniu każdego prefiksu x (początkowej części słowa wejściowego), automat A D pamięta w swoim stanie zbiór stanów do jakich może dojść A po przeczytaniu x. Na

31 2.4. Determinizacja automatu skończonego 31 przykład prześledźmy zachowanie automatu A D na słowie abab. Konfiguracją początkową automatu A D jest {q 0 }abab następną konfiguracją jest {q 0 }bab ponieważ po przeczytaniu litery a automat A może dojść tylko do stanu q 0. Następnie A D przechodzi do konfiguracji {q 0, q 1 }ab ponieważ ze stanu q 0 po przeczytaniu b automat A może przejść do q 0 lub q 1. Następną konfiguracją jest {q 0 }b ponieważ ze stanu q 0 A może przejść do q 0, a ze stanu q 1 nigdzie nie może przejść. Ostatnią konfiguracją jest {q 0, q 1 } zawiera ona te stany, do których może dojść automat A po przeczytaniu słowa abab. Ponieważ zbiór ten zawiera stan akceptujący automatu A, więc A D też akceptuje słowo abab. Natomiast obliczenie automatu A D na słowie aba wygląda następująco: {q 0 }aba {q 0 }ba {q 0, q 1 }a {q 0 } Ponieważ zbiór z ostatniej konfiguracji nie zawiera stanu akceptującego, słowo aba nie jest akceptowane przez A D. Funkcja przejścia automatu A D wygląda następująco: δ a b {q 0 } {q 0 } {q 0, q 1 } {q 0, q 1 } {q 0 } {q 0, q 1 } {q 1 } Zbiorem stanów akceptujących automatu A D jest zbiór {{q 0, q 1 }, {q 1 }}, który zawiera te stany automatu A D, które zawierają q 1 jedyny stan akceptujący automatu A. Zauważmy, że stany {q 1 } oraz automatu A D nie są osiągalne ze stanu początkowego, więc automat A D można uprościć przyjmując i funkcję przejścia Q D = {{q 0 }, {q 0, q 1 }}

32 32 Rozdział 2. Klasa REG języków regularnych δ a b {q 0 } {q 0 } {q 0, q 1 } {q 0, q 1 } {q 0 } {q 0, q 1 } Podobnie można determinizować dowolny automat niedeterministyczny A N = (Q N, Σ, q 0, δ N, F). Zbiór stanów automatu deterministycznego A D jest postaci Q D = P(Q N ) stanem początkowym automatu A D jest zbiór {q 0 } zbiorem stanów akceptujących automatu A D jest zbiór F D = {S Q N S F }, który zawiera te stany automatu A D (czyli zbiory stanów automatu A N ), które zawierają jakieś stany akceptujące A N. Funkcja przejścia jest zdefiniowana następująco: δ D (S, σ) = s S δ N (s, σ) Łatwo można udowodnić przez indukcję ze względu na długość słowa, że jeżeli słowo w doprowadza automat A D ze stanu {q 0 } do stanu R, to zbiór R zawiera wszystkie stany r, dla których istnieje obliczenie A N na w prowadzące ze stanu q 0 do r. Tak więc udowodniliśmy następujące twierdzenie o determinizacji automatów skończonych Twierdzenie 2.35 Dla każdego automatu niedeterministycznego A N istnieje automat deterministyczny A D akceptujacy ten sam język. Zadanie 2.36 Przeprowadź determinizację automatu D z rysunku 2.7. Zadanie 2.37 Zaprojektuj automat niedeterministyczny akceptujacy słowa nad {a, b}, w których piat a literą od końca jest a. Czy istnieje taki automat z nie więcej niż 6 stanami? Udowodnij, że każdy automat deterministyczny akcepujacy ten język ma co najmniej 2 5 = 32 stanów. Zadanie 2.38 Skonstruuj automat deterministyczny równoważny automatowi:

33 2.5. Automaty z λ przejściami 33 a,b q 0 b q 1 b q 2 λ a q 3 Rysunek 2.8: Automat z λ przejsciami A λ 1. A 1 = (({p, q, r, s}, {0, 1}, p, p, {s}) δ p q r s 0 {p, q} {r} {s} {s} 1 {p} {r} - {s} 2. A 2 = ({p, q, r}, {a, b}, p, δ, {r}) δ p q r a {p, q} {r} {p, r} b {q} - {p, q} 3. A 3 = ({p, g, r, s}, {0, 1}, p, δ, {q, s}) δ p q r s 0 {q, s} {r} {s} - 1 q q, r p p 2.5 Automaty z λ przejściami Następnym rodzajem automatów są niedeterministyczne automaty z λ przejściami, w których możliwa jest zmiana stanu bez czytania litery z wejścia.

34 34 Rozdział 2. Klasa REG języków regularnych Rysunek 2.8 przedstawia niedeterministyczny automat z λ przejściami A λ. Jeżeli automat znajduje się w stanie q 0, z którego jest λ przejście (strzałka z etykietą λ), to możliwa jest zmiana stanu na q 3 bez czytania litery z taśmy wejściowej. Automat A λ akceptuje słowa, które kończą się na bb lub a. Na przykład obliczenie akceptujące na słowie aba wygląda następująco q 0 aba q 0 ba q 0 a q 3 a q 2 Podobnie jak dla automatów niedeterministycznych, możliwa jest determinizacja automatów z λ przejściami. Twierdzenie 2.39 Dla każdego automatu niedeterministycznego z λ przejściami A λ istnieje automat deterministyczny A D akceptujacy ten sam język. Przykład 2.40 Pokażemy jak zdeterminizować automat A λ z rysunku 2.8. Zaczynamy od stanu poczatkowego {q 0 } i szukamy stanów, do których można dojść literą a uwzględnajac przy tym λ przejścia. Ze stanu q 0 po przeczytaniu a automat A λ może pozostać w q 0, lub wykorzystujac λ przejście do q 2 lub q 3. Po przeczytaniu b automat może pozostać w q 0, przejść do q 1 lub q 3. Podobnie możemy wyliczyć resztę funkcji przejścia automatu deterministycznego A D. a b p 0 = {q 0 } {q 0, q 2, q 3 } {q 0, q 1, q 3 } p 1 = {q 0, q 1, q 3 } {q 0, q 2, q 3 } {q 0, q 1, q 2, q 3 } p 2 = {q 0, q 2, q 3 } {q 0, q 2, q 3 } {q 0, q 1, q 3 } p 3 = {q 0, q 1, q 2, q 3 } {q 0, q 2, q 3 } {q 0, q 1, q 2, q 3 } automat ten przedstawiony jest na rysunku 2.9. Zauważmy, że w przypadku, gdy w automacie z λ przejściami istnieje ciąg λ-przejść prowadzący ze stanu początkowego do pewnego stanu końcowego, co oznacza, że automat akceptuje słowo puste, to należy uwzględnić ten fakt przy determinizacji i stan początkowy automatu deterministycznego powinien być końcowy. Poniższy przykład ilustruje taką sytuację. Przykład 2.41 Na rysunku 2.10 dany jest automat z λ przejściami. Automat A D równoważny A N jest określony następujaco: A D = ({p 0, p 1, p 2, p 3 }, {a, b}, δ D, p 0, {p 0, p 1, p 3 })

35 2.5. Automaty z λ przejściami 35 p 1 b b b p 0 b a p 3 a a p 2 a Rysunek 2.9: Automat po determinizacji δ D a b {q 0 } {q 1, q 2 } {q 3 } {q 1, q 2 } {q 1, q 2 } - {q 3 } {q 3 } {q 2, q 3 } {q 2, q 3 } {q 3 } {q 2, q 3 } Zadanie 2.42 Dany jest automat z λ-przejściami A 1 = ({0, 1, 2, 3}, {a, b}, 0, δ, {2, 3}) gdzie funkcja przejścia dana jest w tabelce: Podać równoważny automat bez λ-przejść. δ a b λ 0 {0, 1} - {1} 1 {2, 3} {1} {2} Zadanie 2.43 Dany jest automat z λ-przejściami

36 36 Rozdział 2. Klasa REG języków regularnych a q λ 0 q λ 1 q 2 b b q 3 a,b Rysunek 2.10: Automat A N z λ przejściami A = ({p, g, r, s}, {0, 1} {λ}, p, δ, {s}) δ p q r s 0 {r, p} - {s} {s} 1 {q} {q, r} {r} {s} λ {r, s} {r} - - Podaj równoważny automat bez λ przejść. Zadanie 2.44 Jaki język akceptuje automat A z rysunku Przeprowadź jego determinizację. 2.6 Twierdzenia Kleene ego W tym rozdziale udowodnimy, że wyrażenia regularne są równoważne automatom skończonym w tym sensie, że języki generowane przez wyrażenia pokrywają sie z językami akceptowanymi przez automaty.

37 2.6. Twierdzenia Kleene ego 37 a,b a,b q a 0 q 1 q a 2 q 3 b, λ Rysunek 2.11: Automat z λ przejściami A Twierdzenie 2.45 (twierdzenie Kleene ego) Dla każdego wyrażenia regularnego r istnieje automat A z λ przejściami, który akceptuje język generowny przez r, czyli L(A) = L(r) Dowód: Budowa automatu przebiega rekurencyjnie ze względu na strukturę wyrażenia regularnego r. Dla uproszczenia dowodu, będziemy utożsamiać automaty z ich grafami przejść. Budowane automaty mają stan początkowy s r i tylko jeden stan akceptujący f r. Nie ma strzałek prowadzących do stanu początkowego, ani strzałek wychodzących ze stanu końcowego. A λ : s λ λ f λ A : s f A a : sa a f a Rysunek 2.12: Automaty dla λ,, a. Automat dla r = nie zawiera żadnych strzałek, nie istnieje w nim żadne obliczenie prowadzące do stanu końcowego, więc nie akceptuje żadnego słowa. Automat dla r = λ akceptuje tylko słowo puste. Ponieważ nie ma w nim strzałek etykietowanych literami, nie może on przeczytać, żadnej litery. Nie ma więc obliczeń akceptujących na niepustych słowach. Automat dla r = a akceptuje dokładnie jedno słowo a. Załóżmy, że mamy już automaty A u i A v dla wyrażeń u i v przedstawione na rysunku 2.13.

38 38 Rozdział 2. Klasa REG języków regularnych s u f u s v f v Rysunek 2.13: Automaty A u, A v Automat A u+v odpowiadający wyrażeniu r = u + v jest pokazany na rysunku Automat ten akceptuje sumę L(u) L(v). Rzeczywiście, jeżeli słowo należy do L(u), to obliczenie zaczyna się od λ przejścia prowadzącego do stanu s u z górnego podautomatu. Następnie przebiega według obliczenia automatu A u i kończy się λ przejściem prowadzącym z f u do stanu końcowego f r. Podobnie dla słów należących do L(v). Na odwrót, jeżeli istnieje obliczenie akceptujące automatu A u+v, to albo przechodzi ono przez A u od s u do f u i słowo wejściowe jest akceptowane przez A u i należy do L(u), albo przechodzi przez A v i słowo wejściowe jest akceptowane przez A v i należy do L(v). Automat A uv odpowiadający wyrażeniu r = uv jest pokazany na rysunku Jeżeli słowo wejściowe w jest konkatenacją w 1 w 2, gdzie w 1 L(u) i w 2 L(v), to obliczenie akceptujące automatu A uv składa się z obliczenia akceptującego automatu A u na w 1, z λ przejścia oraz z obliczenia akceptującego automatu A v na w 2. Na odwrót, jeżeli słowo w jest akceptowane przez A uv, to obliczenie to musi przechodzić przez stany f u i s v. Fragment obliczenia od stanu początkowego s u do f u czyta jakieś słowo w 1 L(A u ), a fragment obliczenia od stanu s v do f v czyta jakieś słowo w 2 L(A v ). Słowo wejściowe jest konkatenacją w = w 1 w 2 L(u)L(v). Automat A u odpowiadający wyrażeniu r = u jest pokazany na rysunku Jeżeli słowo w L(u ), to albo w = λ i jest akceptowane przez λ przejście prowadzące bezpośrednio od s r do f r, albo w = w 1 w 2...w k, wtedy obliczenie k razy przechodzi przez A u od s u do f u, za każdym razem czytając kolejne słowo w i. Na odwrót, jeżeli słowo w jest akceptowane przez A w, to albo obliczenie akceptujące przechodzi bezpośrednio od s r do f r λ przejściem i w = λ, albo obliczenie przechodzi k razy przez A u, za każdym razem czytając słowo w i. Każde w i prowadzi od s u do f u, więc w i L(u). Słowo wejściowe jest wtedy postaci w = w 1... w k i należy do L(u ). Ponieważ na podstawie twierdzenia 2.39 każdy automat z λ przejściami można zamienić

39 2.6. Twierdzenia Kleene ego 39 s u f u λ λ s r f r λ λ s v f v Rysunek 2.14: Automat A u+v na równoważny automat deterministyczny, mamy następujący wniosek. Wniosek 2.46 Dla każdego wyrażenia regularnego r istnieje deterministyczny automat skończony A, który akceptuje język generowny przez r, czyli L(A) = L(r). Przykład 2.47 Rysunek 2.17 przedstawia automat dla wyrażenia a + ab. Zadanie 2.48 Podaj automat dla wyrażenia a + (ab). Zadanie 2.49 Skonstruuj automat z λ przejściami dla wyrażeń: 1. abc, 2. ba + ab, 3. a(a + b) bb. Twierdzenie 2.50 Dla każdego automatu deterministycznego A istnieje wyrażenie regularne r takie, że L(A) = L(r).

40 40 Rozdział 2. Klasa REG języków regularnych s u f u s v f v λ Rysunek 2.15: Automat A uv λ s λ r s u f u f r λ λ Rysunek 2.16: Automat A u Dowód: Przyjmijmy, że A = ({q 1, q 2,...,q n }, Σ, δ, q 1, F). Zauważmy, że stany automatu A są numerowane od 1 do n i stan q 1 jest stanem początkowym. Niech R k ij oznacza zbiór wszystkich słów etykietujących drogę prowadzącą od stanu q i do stanu q j bez przechodzenia przez stany q m dla m > k, przy czym zakaz nie dotyczy stanów q i oraz q j, i lub j mogą być większe od k. Innymi słowy, jeżeli w grafie istnieje ścieżka prowadząca od stanu q i do q j prowadząca przez stany o numerach nie większych od k, to słowo utworzone z etykiet na strzałkach w tej ścieżce należy do R k ij. Łatwo zdefiniować R k ij dla k = 0. Jeżeli i j, to R 0 ij = {a δ(q i, a) = q j }, jeżeli i = j, to R 0 ij = {a δ(q i, a) = q j } {λ}.

Imię, nazwisko, nr indeksu

Imię, nazwisko, nr indeksu Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za

Bardziej szczegółowo

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}

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11} Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy

Bardziej szczegółowo

Jaki język zrozumie automat?

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

Bardziej szczegółowo

Hierarchia Chomsky ego Maszyna Turinga

Hierarchia Chomsky ego Maszyna Turinga Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 9: Własności języków bezkontekstowych Sławomir Lasota Uniwersytet Warszawski 27 kwietnia 2016 Plan 1 Pompowanie języków bezkontekstowych 2 Własności domknięcia 3 Obrazy

Bardziej szczegółowo

Maszyna Turinga języki

Maszyna Turinga języki Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę

Bardziej szczegółowo

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

Dopełnienie to można wyrazić w następujący sposób: 1. (6 punktów) Czy dla każdego regularnego L, język f(l) = {w : każdy prefiks w długości nieparzystej należy do L} też jest regularny? Odpowiedź. Tak, jęsli L jest regularny to też f(l). Niech A będzie

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 1

Języki formalne i automaty Ćwiczenia 1 Języki formalne i automaty Ćwiczenia Autor: Marcin Orchel Spis treści Spis treści... Wstęp teoretyczny... 2 Wprowadzenie do teorii języków formalnych... 2 Gramatyki... 5 Rodzaje gramatyk... 7 Zadania...

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A

Bardziej szczegółowo

Hierarchia Chomsky ego

Hierarchia Chomsky ego Hierarchia Chomsky ego Gramatyki nieograniczone Def. Gramatyką nieograniczoną (albo typu 0) nazywamy uporządkowaną czwórkę G= gdzie: % Σ - skończony alfabet symboli końcowych (alfabet, nad którym

Bardziej szczegółowo

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)

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) 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) Kamil Matuszewski 20 lutego 2017 22 lutego 2017 Zadania, które

Bardziej szczegółowo

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

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 4 kwietnia 2019 1 Dodajmy kontekst! Rozważaliśmy

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 9

Języki formalne i automaty Ćwiczenia 9 Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej

Bardziej szczegółowo

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

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady

Bardziej szczegółowo

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

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, δ) Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też L = {vw : vuw L dla pewnego u A takiego, że u = v + w } Rozwiązanie. Niech A =

Bardziej szczegółowo

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

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 Zadanie 1. Rozważmy jezyk 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 równe. Narysować diagram minimalnego automatu deterministycznego akceptujacego

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 7

Języki formalne i automaty Ćwiczenia 7 Języki formalne i automaty Ćwiczenia 7 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Automaty... 2 Cechy automatów... 4 Łączenie automatów... 4 Konwersja automatu do wyrażenia

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga

Bardziej szczegółowo

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

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze

Bardziej szczegółowo

10110 =

10110 = 1. (6 punktów) Niedeterministyczny automat skończony nazwiemy jednoznacznym, jeśli dla każdego akceptowanego słowa istnieje dokładnie jeden bieg akceptujący. Napisać algorytm sprawdzający, czy niedeterministyczny

Bardziej szczegółowo

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

Bardziej szczegółowo

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

(j, k) jeśli k j w przeciwnym przypadku. Zadanie 1. (6 punktów) Rozważmy język słów nad alfabetem {1, 2, 3}, w których podciąg z pozycji parzystych i podciąg z pozycji nieparzystych są oba niemalejące. Na przykład 121333 należy do języka, a 2111

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 11: Obliczalność i nieobliczalność Sławomir Lasota Uniwersytet Warszawski 6 maja 2015 Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo)

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 12: Gramatyki i inne modele równoważne maszynom Turinga. Wstęp do złożoności obliczeniowej Sławomir Lasota Uniwersytet Warszawski 20 maja 2015 Plan 1 Gramatyki 2 Języki

Bardziej szczegółowo

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego 2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór

Bardziej szczegółowo

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

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 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 anagram(l) = {w : w jest anagaramem v dla pewnego v L}. (a) Czy jeśli L jest

Bardziej szczegółowo

Wyrażenia regularne.

Wyrażenia regularne. Teoretyczne podstawy informatyki Wykład : Wyrażenia regularne. Prof. dr hab. Elżbieta Richter-Wąs.2.202 Wyrażenia regularne Wyrażenia regularne (ang. regular expressions) stanowią algebraiczny sposób definiowania

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 10: Opis wzorców - wyrażenia regularne. http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Wyrażenia regularne Wyrażenia

Bardziej szczegółowo

Symbol, alfabet, łańcuch

Symbol, alfabet, łańcuch Ł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)

Bardziej szczegółowo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

JAO - Wprowadzenie do Gramatyk bezkontekstowych JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa

Bardziej szczegółowo

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka Gramatyki, wyprowadzenia, hierarchia Chomsky ego Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G =

Bardziej szczegółowo

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

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty Dr inŝ. Janusz Majewski Katedra Informatyki Literatura Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques

Bardziej szczegółowo

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

JAO - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2 Dowodzenie nieregularności języka [lemat o pompowaniu] Jeśli L regularny to istnieje stała c spełniająca : jeżeli z L, z c to istnieje dekompozycja w = u v x tak, że uv i x L dla każdego i 0 [lemat o skończonej

Bardziej szczegółowo

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

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka Języki i operacje na językach Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Definicja języka Definicja języka Niech Σ będzie alfabetem, Σ* - zbiorem wszystkich łańcuchów

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Od maszyn Turinga do automatów komórkowych Jarosław Miszczak IITiS PAN Gliwice 03/03/2016 1 / 16 1 2 3 Krótka historia Znaczenie 2 / 16 Czego dowiedzieliśmy się

Bardziej szczegółowo

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

JAO - lematy o pompowaniu dla jezykow bezkontekstowy JAO - lematy o pompowaniu dla jezykow bezkontekstowych Postać normalna Chomsky ego Gramatyka G ze zbiorem nieterminali N i zbiorem terminali T jest w postaci normalnej Chomsky ego wtw gdy każda produkcja

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 2

Języki formalne i automaty Ćwiczenia 2 Języki formalne i automaty Ćwiczenia 2 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Metoda brute force... 2 Konwersja do postaci normalnej Chomskiego... 5 Algorytm Cocke a-youngera-kasamiego

Bardziej szczegółowo

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

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę: AUTOMATY SKOŃCZONE DETERMINISTYCZNY AUTOMAT SKOŃCZONY - DAS Automat skończony jest modelem matematycznym systemu o dyskretnych wejściach i wyjściach. System taki w danej chwili może znajdować się w jednym

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową

Bardziej szczegółowo

Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d

Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d C. Bagiński Materiały dydaktyczne 1 Matematyka Dyskretna /008 rozwiązania 1. W każdym z następujących przypadków podać jawny wzór na s n i udowodnić indukcyjnie jego poprawność: (a) s 0 3, s 1 6, oraz

Bardziej szczegółowo

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

Automaty Büchi ego i równoważne modele obliczeń Politechnika Krakowska im. Tadeusza Kościuszki Wydział Fizyki, Matematyki i Informatyki Kierunek Matematyka Paulina Barbara Rozwód Automaty Büchi ego i równoważne modele obliczeń praca magisterska studia

Bardziej szczegółowo

Lista zadań - Relacje

Lista zadań - Relacje MATEMATYKA DYSKRETNA Lista zadań - Relacje Zadania obliczeniowe Zad. 1. Która z poniższych relacji jest funkcją? a) Relacja składająca się ze wszystkich par uporządkowanych, których poprzednikami są studenci,

Bardziej szczegółowo

Elementy Teorii Obliczeń

Elementy Teorii Obliczeń Wykład 2 Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 stycznia 2009 Maszyna Turinga uwagi wstępne Maszyna Turinga (1936 r.) to jedno z najpiękniejszych i najbardziej intrygujacych

Bardziej szczegółowo

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

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204 Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego

Bardziej szczegółowo

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

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski Modele Obliczeń Wykład 1 - Wprowadzenie Marcin Szczuka Instytut Matematyki, Uniwersytet Warszawski Wykład fakultatywny w semestrze zimowym 2014/2015 Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 1 /

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA

Bardziej szczegółowo

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

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1. 3. Wykłady 3 i 4: Języki i systemy dedukcyjne. Klasyczny rachunek zdań. 3.1. Monoidy wolne. Niech X będzie zbiorem niepustym. Zbiór ten będziemy nazywać alfabetem. Skończony ciąg elementów alfabetu X będziemy

Bardziej szczegółowo

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

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 21 marca 2019 1 Gramatyki! Gramatyka to taki przepis

Bardziej szczegółowo

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

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1 Obliczanie 1 Obliczanie Co to jest obliczanie? Czy wszystko można obliczyć? Czy to, co intuicyjnie uznajemy za obliczalne można obliczyć za pomocą mechanicznej procedury? 2 Czym jest obliczanie? Dawid

Bardziej szczegółowo

Wprowadzenie do maszyny Turinga

Wprowadzenie do maszyny Turinga Wprowadzenie do maszyny Turinga Deterministyczna Maszyna Turinga (DTM) jest pewną klasą abstrakcyjnych modeli obliczeń. W tej instrukcji omówimy konkretną maszynę Turinga, którą będziemy zajmować się podczas

Bardziej szczegółowo

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

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne Automat skończony (AS), ang. Finite Automaton (FA) Automat skończony (automat czytający, maszyna Rabina-Scotta)

Bardziej szczegółowo

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

domykanie relacji, relacja równoważności, rozkłady zbiorów 1 of 8 2012-03-28 17:45 Logika i teoria mnogości/wykład 5: Para uporządkowana iloczyn kartezjański relacje domykanie relacji relacja równoważności rozkłady zbiorów From Studia Informatyczne < Logika i

Bardziej szczegółowo

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

Definiowanie języka przez wyrażenie regularne(wr) Wykład3,str1 Definiowanie języka przez wyrażenie regularne(wr) DEFINICJA: (wyrażenia regularne) M(specjalneznakinienależącedoalfabetu:{,},, ) literyalfabetusąwr złożeniawrsąwr: jeśliw 1 iw 2 sąwr,to{w

Bardziej szczegółowo

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

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych Szczepan Hummel Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych 24.11.2005 1. Minimalizacja automatów deterministycznych na słowach skończonych (DFA) [HU] relacja

Bardziej szczegółowo

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

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. 1 Zbiór potęgowy - Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. - Dowolny podzbiór R zbioru 2 S nazywa się rodziną zbiorów względem S. - Jeśli S jest n-elementowym zbiorem,

Bardziej szczegółowo

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

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

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

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:

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: Zbiory 1 Rozważmy dowolne dwa zbiory A i B. Suma A B składa się z wszystkich elementów, które należą do zbioru A lub do zbioru B: (x A B) (x A x B). Część wspólna (przekrój) A B składa się z wszystkich

Bardziej szczegółowo

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

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia Nazwa przedmiotu: Kierunek: Rodzaj przedmiotu: obowiązkowy dla wszystkich specjalności Rodzaj zajęć: wykład, ćwiczenia Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 6

Języki formalne i automaty Ćwiczenia 6 Języki formalne i automaty Ćwiczenia 6 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Wyrażenia regularne... 2 Standardy IEEE POSIX Basic Regular Expressions (BRE) oraz Extended

Bardziej szczegółowo

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

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym. Wyrażenie nawiasowe Wyrażeniem nawiasowym nazywamy dowolny skończony ciąg nawiasów. Każdemu nawiasowi otwierającemu odpowiada dokładnie jeden nawias zamykający. Poprawne wyrażenie nawiasowe definiujemy

Bardziej szczegółowo

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017 Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język

Bardziej szczegółowo

Indukcja matematyczna

Indukcja matematyczna Indukcja matematyczna 1 Zasada indukcji Rozpatrzmy najpierw następujący przykład. Przykład 1 Oblicz sumę 1 + + 5 +... + (n 1). Dyskusja. Widzimy że dla n = 1 ostatnim składnikiem powyższej sumy jest n

Bardziej szczegółowo

1 Działania na zbiorach

1 Działania na zbiorach M. Beśka, Wstęp do teorii miary, rozdz. 1 1 1 Działania na zbiorach W rozdziale tym przypomnimy podstawowe działania na zbiorach koncentrując się na własnościach tych działań, które będą przydatne w dalszej

Bardziej szczegółowo

Zadanie 1. Potęgi (14 pkt)

Zadanie 1. Potęgi (14 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,

Bardziej szczegółowo

Maszyna Turinga (Algorytmy Część III)

Maszyna Turinga (Algorytmy Część III) Maszyna Turinga (Algorytmy Część III) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-12-18 08:22:34 +0100 Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych

Bardziej szczegółowo

Efektywność Procedur Obliczeniowych. wykład 5

Efektywność Procedur Obliczeniowych. wykład 5 Efektywność Procedur Obliczeniowych wykład 5 Modele procesu obliczeń (8) Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 3

Języki formalne i automaty Ćwiczenia 3 Języki formalne i automaty Ćwiczenia 3 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Algorytm LL(1)... 2 Definicja zbiorów FIRST1 i FOLLOW1... 3 Konstrukcja tabeli parsowania

Bardziej szczegółowo

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań. Wykłady z Analizy rzeczywistej i zespolonej w Matematyce stosowanej Wykład ELEMENTY LOGIKI ALGEBRA BOOLE A Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek

Bardziej szczegółowo

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

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

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

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów

Bardziej szczegółowo

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

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy Wprowadzenie do programowania języki i gramatyki formalne dr hab. inż. Mikołaj Morzy plan wykładu wprowadzenie gramatyki podstawowe definicje produkcje i drzewa wywodu niejednoznaczność gramatyk hierarchia

Bardziej szczegółowo

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4 ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4 Dla każdego zadania określić: graf przejść tablicę stanów automatu skończonego akceptującego określoną klasę słów podać dwa przykłady ilustrujące parę AS

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 10b: Wzorce i automaty. http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Wzorce i automaty Problematyka wzorców

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 4

Języki formalne i automaty Ćwiczenia 4 Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji

Bardziej szczegółowo

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

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33 Klasyczne i kwantowe podejście do teorii automatów i języków formalnych mgr inż. Olga Siedlecka olga.siedlecka@icis.pcz.pl Zakład Informatyki Stosowanej i Inżynierii Oprogramowania Instytut Informatyki

Bardziej szczegółowo

Turing i jego maszyny

Turing i jego maszyny Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan

Bardziej szczegółowo

Złożoność obliczeniowa. wykład 1

Złożoność obliczeniowa. wykład 1 Złożoność obliczeniowa wykład 1 Dwa wykłady: wtorek / środa różnice niewielkie Sprawy organizacyjne wtorek: trochę szybciej, parę dodatkowych rzeczy dedykowana grupa ćw. M. Pilipczuka - ale śmiało mogą

Bardziej szczegółowo

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

Bardziej szczegółowo

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i A (symbol F i oznacza ilość argumentów funkcji F i ). W rozważanych przez nas algebrach

Bardziej szczegółowo

Lista 4. Kamil Matuszewski 22 marca 2016

Lista 4. Kamil Matuszewski 22 marca 2016 Lista 4 Kamil Matuszewski 22 marca 2016 1 2 3 4 5 6 7 8 9 10 Zadanie 2 Ułóż algorytm który dla danego n-wierzchołkowego drzewa i liczby k pokoloruje jak najwięcej wierzchołków tak, by na każdej ścieżce

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,

Bardziej szczegółowo

Rozdział 7 Relacje równoważności

Rozdział 7 Relacje równoważności Rozdział 7 Relacje równoważności Pojęcie relacji. Załóżmy, że dany jest niepusty zbiór A oraz własność W, którą mogą mieć niektóre elementy zbioru A. Własność W wyznacza pewien podzbiór W A zbioru A, złożony

Bardziej szczegółowo

LOGIKA I TEORIA ZBIORÓW

LOGIKA I TEORIA ZBIORÓW LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja

Bardziej szczegółowo

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

Przykładowe zadania z teorii liczb

Przykładowe zadania z teorii liczb Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę

Bardziej szczegółowo

JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKI FORMALNE I METODY KOMPILACJI Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2015/2016 JĘZYKI FORMALNE reguły gry Wykład1,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/dydaktyka/jezform

Bardziej szczegółowo

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

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka

Bardziej szczegółowo

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2 ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2 1. Twierdzenie Sipsera: Dla dowolnej maszyny M działającej w pamięci S(n) istnieje maszyna M taka, że: L(M) = L(M ), M działa w pamięci S(n), M ma własność stopu. Dowód:

Bardziej szczegółowo

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.

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. RELACJE Relacje 1 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. Relacje 2 Przykład 1 Wróćmy do przykładu rozważanego

Bardziej szczegółowo

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

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1 Odmiany maszyny Turinga 1 Uniwersalna maszyna Turinga Uniwersalna maszyna U nad alfabetem A k jest to maszyna definiująca funkcje: f U, n+1 = {((w(i 1, I 2,..., I n )),y) w - opis maszyny T za pomocą słowa,

Bardziej szczegółowo

Podstawy Informatyki Maszyna Turinga

Podstawy Informatyki Maszyna Turinga Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga 2 3 4 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga,

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

PROBLEMY NIEROZSTRZYGALNE

PROBLEMY NIEROZSTRZYGALNE PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną

Bardziej szczegółowo

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość 11. Wykład 11: Rachunek λ. Obliczenia i obliczalność. Rachunek λ jest systemem pozornie bardzo prostym. Abstrakcja i aplikacja wydają się trywialnymi operacjami, i może się zdawać, że niczego ciekawego

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 8

Języki formalne i automaty Ćwiczenia 8 Języki formalne i automaty Ćwiczenia 8 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Konwersja NFA do DFA... 2 Minimalizacja liczby stanów DFA... 4 Konwersja automatu DFA do

Bardziej szczegółowo

Zakładamy, że maszyna ma jeden stan akceptujacy.

Zakładamy, że maszyna ma jeden stan akceptujacy. Złożoność pamięciowa Rozważamy następujac a maszynę Turinga: 1 0 0 1 1 0 1 1 1 1 Taśma wejściowa (read only) 1 0 1 1 0 0 0 1 0 0 1 Taśma robocza (read/write) 0 1 1 0 0 1 0 0 1 Taśma wyjściowa (write only)

Bardziej szczegółowo