1 Automaty niedeterministyczne

Podobne dokumenty
Języki formalne i automaty Ćwiczenia 7

Języki formalne i automaty Ćwiczenia 9

Imię, nazwisko, nr indeksu

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

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

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

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Jaki język zrozumie automat?

Języki, automaty i obliczenia

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

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

Matematyczne Podstawy Informatyki

Wyrażenia regularne.

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

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

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

Matematyczne Podstawy Informatyki

Obliczenia inspirowane Naturą

10110 =

Języki, automaty i obliczenia

Chcąc wyróżnić jedno z działań, piszemy np. (, ) i mówimy, że działanie wprowadza w STRUKTURĘ ALGEBRAICZNĄ lub, że (, ) jest SYSTEMEM ALGEBRAICZNYM.

KURS MATEMATYKA DYSKRETNA

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

Teoretyczne podstawy informatyki

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

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

Języki formalne i automaty Ćwiczenia 1

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

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

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

Wprowadzenie do maszyny Turinga

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

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

Maszyna Turinga języki

Hierarchia Chomsky ego

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

Teoretyczne podstawy informatyki

Instrukcje dla zawodników

TEORETYCZNE PODSTAWY INFORMATYKI

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

Języki, automaty i obliczenia

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

Języki, automaty i obliczenia

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

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

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Algorytmiczna teoria grafów

Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym.

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Teoretyczne podstawy informatyki

Obliczenia inspirowane Naturą

Dystrybucje, wiadomości wstępne (I)

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Turing i jego maszyny

020 Liczby rzeczywiste

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

Rozwiązania części z około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego

Macierze. Rozdział Działania na macierzach

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Maszyna Turinga (Algorytmy Część III)

Graf. Definicja marca / 1

Hierarchia Chomsky ego Maszyna Turinga

Elementy teorii grafów Elementy teorii grafów

Lista zadań - Relacje

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

1 Działania na zbiorach

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Zadania do Rozdziału X

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

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

Definicja 2. Twierdzenie 1. Definicja 3

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Języki formalne i automaty Ćwiczenia 6

Efektywność Procedur Obliczeniowych. wykład 5

Minimalne drzewa rozpinające

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Matematyka dyskretna. Andrzej Łachwa, UJ, A/14

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Matematyczny świat języków. Wprowadzenie i języki regularne materiały do ćwiczeń

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

Języki, automaty i obliczenia

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Języki formalne i automaty Ćwiczenia 4

POLITECHNIKA ŚLĄSKA. ZADANIE 2 WALCEM PO WALCU Zadanie zaproponowali: dr inż. Mariusz Pleszczyński, Wydział Matematyki Stosowanej, Politechnika Śląska

Problemy Decyzyjne dla Systemów Nieskończonych

KURS MATEMATYKA DYSKRETNA

Zarządzanie projektami

26 marzec, Łańcuchy Markowa z czasem ciągłym. Procesy Stochastyczne, wykład 7, T. Byczkowski, Procesy Stochastyczne, PPT, Matematyka MAP1136

A i. i=1. i=1. i=1. i=1. W dalszej części skryptu będziemy mieli najczęściej do czynienia z miarami określonymi na rodzinach, które są σ - algebrami.

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Transkrypt:

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 końcowych Q F. Relacja przejścia δ Q A Q. A zatem, relacja przejścia jest pewnym zbiorem trójek (p, σ, q), które będziemy zapisywać tak: p σ q. Jeżeli dla każdego stanu p i dla każdej litery σ istnieje najwyżej jeden stan q taki, że p σ q, to automat A jest deterministyczny. Mówimy, że słowo w = w 1 w 2... w k jest akceptowane przez automat A jeżeli istnieje ciąg stanów q 0,... q k, spełniające następujące warunki: - q 0 Q I - q k Q F. w - q 1 w 0 2 q1 q2 wk q k Przykład 1 Automat, rozpoznający język {a + b} b {a + b} b {a + b} przedstawiamy graficznie tak: a, b q 4 b q 3 a, b q 2 b q 1 a, b Możemy rozszerzyć pojęcie relacji przejścia w następujący sposób: Dla słowa w = w 1 w 2... w k napiszemy p w q, jeżeli istnieje ciąg q 0, q 1,... q k taki, że 1

- p = q 0, - q = q k, w - q 1 w 0 2 q1 q2 wk q k Naturalne jest przyjęcie konwencji, że p ε q wtedy i tylko wtedy, gdy p = q. Możemy teraz przeformułować definicję akceptacji: Słowo w jest akceptowane przez automat A wtedy i tylko wtedy, gdy p w q dla pewnego p Q I oraz q Q F. Według powyższych oznaczeń, każde słowo w wyznacza nam relację binarną w na zbiorze Q, i z samej definicji wynika, że relacja wyznaczona przez konkatenację słów v oraz w jest złożeniem odpowiednich relacji gdzie złożenie relacji v w = v w, 1 oraz 2 jest relacją 1 2 zdefiniowaną tak: p 1 2 r istnieje q takie, że p 1 q oraz q 2 r. Przykład 2 Poniżej przedstawiony jest ciąg relacji wyznaczonych przez kolejne litery słowa w = abbaba w automacie z poprzedniego przykładu oraz ich złożenie. W tym ciągu relacji istnieje ścieżka od stanu początkowego 1 po lewej stronie do stanu akceptującego 4 po prawej stronie. A zatem, słowo w jest akceptowane przez automat. Równoważnie, wynikowa relacja zawiera krawędź od stanu początkowego 1 do stanu akceptującego 4, więc słowo jest akceptowane. a b b a b a abbaba 2

Tak więc, czytając słowo w, możemy obliczać on-line relację w w następujący sposób: w [i] = w [i 1] w i gdzie w [i] = w 1 w 2... w i. Robi to automat deterministyczny B opisany poniżej. Alfabetem jest alfabet automatu A Zbiorem stanów jest zbiór R Q wszystkich relacji binarnych na zbiorze Q. Jest ich dokładnie 2 Q Q. Stanem początkowym jest ε (tzn. relacja identycznościowa). Stany akceptujące to takie relacje, że p q dla pewnych p Q I, q Q F. Relacja przejścia określona jest następująco. Automat B będąc w stanie i czytając literę σ przechodzi do stanu σ. W ten sposób, po wczytaniu słowa w, automat B oblicza relację w, czyli relację przejścia wyznaczoną przez to słowo w automacie A. Jeżeli ta relacja umożliwia przejście ze stanu z Q I do stanu z Q F, to automat B akceptuje. Jasne jest więc, że automat B akceptuje dokładnie te słowa, co automat A. Także widać, że B faktycznie jest deterministyczny. Automaty podobne do B określimy mianem automatów półgrupowych. W tym celu wprowadzimy parę definicji. Definicja 1.1 Półgrupą nazywamy zbiór (S, ) wyposażony w operację mnożenia spełniającą warunek (s t) u = s (t u). ( ) Dodatkowo będziemy wymagać, by półgrupa S zawierała element neutralny, tzn. taki element e, że s e = e s = s dla każdego s S (zazwyczaj takie półgrupy nazywa się monoidami lub półgrupą z jednością). Warunek ( ) nazywa się łącznością. Przykład 3 Półgrupa (Z 6, ) składająca się z liczb 0, 1, 2, 3, 4, 5 wraz z operacją mnożenia modulo 6. 3

Przykład 4 Półgrupa funkcji na zbiorze n-elementowym, wraz z operacją składania funkcji ( ). Przykład 5 Półgrupa macierzy k k o elementach z pierścienia Z n, z operacją mnożenia macierzy. Przykład 6 Dowolna grupa. Przykład 7 Półgrupa relacji binarnych na zbiorze n-elementowym, wraz z operacją składania relacji ( ). Definicja 1.2 Automat półgrupowy S jest opisany przez następujące składniki: Alfabet Σ Półgrupa (S, ) Funkcja przejścia δ : Σ S Zbiór akceptujący T S. Funkcja przejścia określa, jaki element półgrupy S wyznacza każda z liter σ Σ. Powiemy, że automat S akceptuje słowo w = w 1 w 2... w k jeżeli δ(w 1 ) δ(w 2 ) δ(w k 1 ) δ(w k ) T. Zauważmy, że bez wpływu na język rozpoznawany przez automat S, możemy założyć, że półgrupa S jest generowana przez zbiór elementów {δ(σ) : σ Σ}, tzn. że każdy element S jest ilocznynem pewnego ciągu takich elementów. Każdy automat półgrupowy S wyznacza w naturalny sposób automat deterministyczny, rozpoznający ten sam język. Jego stany to elementy półgrupy S, stanem początkowym jest jej element neutralny, stany akceptujące to elementy zbioru T i wreszcie, automat ten, będąc w stanie s i wczytując literę σ przechodzi do stanu s δ(σ). Z kolei dowolny automat niedeterministyczny A wyznacza automat półgrupowy określony następująco: Alfabet to alfabet automatu A Półgrupa automatu to półgrupa relacji R Q na zbiorze Q stanów automatu A, 4

Funkcja przejścia zadana jest wzorem δ(σ) = σ, gdzie σ jest relacją przejścia wyznaczoną przez literę σ w automacie A, Zbiór akceptujący to { R Q : p Q I, q Q F : p q}. Widzimy więc, że wszystkie trzy klasy automatów półgrupowe, deterministyczne i niedeterministyczne mają tę samą siłę wyrazu (i rozpoznają języki regularne). 2 Automaty dwukierunkowe Deterministyczny automat dwukierunkowy D działa w następujący sposób. W kolejnych krokach, D wczytuje literę z taśmy wejściowej i, w zależności od tej litery, kierunku z którego przyszedł oraz stanu w jakim się znajduje, decyduje się, zgodnie z ustaloną tablicą reguł, przejść w prawo lub w lewo oraz zmienić stan na inny (w bardziej powszechnym wariancie zakłada się, że decyzja nie zależy od kierunku przyjścia). Przyjmujemy, że przed pierwszą i za ostatnią literą słowa na taśmie wejściowej stoją specjalne markery końca słowa. Automat zaczyna przed markerem początku słowa, w stanie początkowym. Gdy przekroczy marker końca słowa, kończy swój bieg. W zależności od stanu, w którym się znajdzie, słowo będzie zaakceptowane lub nie. A zatem, formalnie, dwukierunkowy automat deterministyczny ma następujące składniki: Alfabet skończony A oraz dwa markery specjalne begin, end / A Zbiór stanów Q Stan początkowy q I Q Zbiór stanów końcowych Q F Funkcja przejścia δ : (A {begin, end}) {d, d } Q {d, d } Q (d oraz d oznaczają tutaj kierunki ruchu automatu) Automat niedeterministyczny tym się różni od deterministycznego, że reguły nie są wyznaczone jednoznacznie w zależności od wczytanej litery, kierunku ruchu i stanu automatu. Automat może mieć kilka możliwości i w każdym ruchu decyduje się na jedną z nich. Formalnie, znaczy to tyle, 5

że δ nie jest już funkcją, ale relacją. A zatem, dla danego słowa, automat niedeterministyczny może mieć wiele biegów (czasem nawet nieskończenie wiele, przy zapętleniach), a bieg automatu deterministycznego jest wyznaczony jednoznacznie przez słowo wejściowe. Gdy któryś z możliwych biegów automatu jest zakończony w stanie początkowym, powiemy że automat akceptuje dane słowo wejściowe. Zbiór słów akceptowanych przez automat jest językiem automatu. Pokażemy, że deterministyczny automat dwukierunkowy wyznacza w naturalny sposób pewien automat półgrupowy. W tym celu, zdefiniujemy półgrupę T n modelującą działanie automatów dwukierunkowych o n stanach. Zdefiniujemy półgrupę T n transformacji dwukierunkowych zbioru {1,..., n}. Elementami tej półgrupy są grafy nieskierowane o 4n-elementowym zbiorze wierzchołków o następujących etykietach: 1, 2,..., n wierzchołki wyjścia z lewej strony 1, 2,..., n wierzchołki wejścia z lewej strony 1, 2,..., n wierzchołki wyjścia z prawej strony 1, 2,..., n wierzchołki wejścia z prawej strony Krawędzie mogą łączyć jedynie wierzchołki wejścia z wierzchołkami wyjścia. Przykładowo, lewy wierzchołek wejścia może być połączony z prawym wierzchołkiem wyjścia albo z lewym wierzchołkiem wyjścia (odpowiada to dwukierunkowości automatu). Każdy wierzchołek wejścia może być połączony z najwyżej jednym wierzchołkiem (warunek determinizmu). Oto graficzna reprezentacja przykładowego elementu półgrupy T 5 : Poniższy rysunek, przedstawia, jak będziemy mnożyć dwa elementów półgrupy T 5 : 6

= = Formalna definicja mnożenia przedstawiona jest poniżej. Aby otrzymać złożenie s t dwóch takich grafów s, t Sklejamy ze sobą, usuwając ich etykiety, pary wierzchołków o odpowiadających sobie numerach (k = 1,... n): - wierzchołek wyjścia z prawej strony k grafu s z wierzchołkiem wejścia z lewej strony k grafu t - wierzchołek wyjścia z lewej strony k grafu t z wierzchołkami wejścia z prawej strony k grafu s. Etykiety pozostałych wierzchołków dwóch grafów pozostają niezmienione, w efekcie czego znów otrzymujemy graf który ma wierzchołki zaetykietowane jako wierzchołki wejścia i wyjścia z lewej i prawej strony. Powiemy, że wierzchołek p jest połączony z wierzchołkiem q w grafie s t, jeżeli w powstałym grafie istnieje ścieżka łącząca odpowiednie wierzchołki. Tak określamy dziełanie w półgrupie (deterministycznych) transformacji dwukierunkowych T n. Niech D będzie deterministycznym automatem dwukierunkowym, o stanach 1,..., n, o stanie początkowym 1 oraz zbiorze stanów końcowych Q F. Wówczas, każda litera σ Σ {begin, end} wyznacza pewną transformację dwukierunkową ˆδ(σ) zbioru stanów automatu D, mianowicie ˆδ(σ) jest grafem opisanym następująco: - jeżeli δ(σ, i, d ) = (j, d ), to wierzchołki i oraz j połączone są krawędzią - jeżeli δ(σ, i, d ) = (j, d ), to wierzchołki i oraz j połączone są krawędzią - jeżeli δ(σ, i, d ) = (j, d ), to wierzchołki i oraz j połączone są krawędzią - jeżeli δ(σ, i, d ) = (j, d ), to wierzchołki i oraz j połączone są krawędzią Rozpatrzmy teraz następujący automat półgrupowy T nad alfabetem Σ. Półgrupa automatu T to T n. Funkcja przejścia automatu A to ˆδ. Zbiór akceptujący składa się z tych transformacji dwukierunkowych s T n, które spełniają następujący warunek: 7

transformacja dwukierunkowa ˆδ(begin) s ˆδ(end) ma krawędź z wierzchołka 1 do wierzchołka q dla pewnego stanu q Q F. Jest jasne, że automat półgrupowy T rozpoznaje dokładnie ten język, co automat D. Ponieważ każdy automat półgrupowy wyznacza natychmiast automat deterministyczny (jednokierunkowy), to pokazuje to, że D rozpoznaje język regularny. Dla niedeterministycznych automatów dwukierunkowych, można zdefiniować analogiczną do T n półgrupę niedeterministycznych transformacji dwukierunkowych DT n, której elementy składają się z podobnych grafów, z tą różnicą, że nie muszą spełniać warunku determinizmu. Mnożenie w tej półgrupie definiuje się w identyczny sposób. Dla danego dwukierunkowego automatu niedeterministycznego N można wówczas skonstruować automat półgrupowy, bardzo podobny do tego skonstruowanego powyżej, który rozpoznaje dokładnie ten sam język, co wyjściowy automat. To pokazuje, że nawet niedeterministyczne, dwukierunkowe, automaty rozpoznają jedynie języki regularne. 8