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



Podobne dokumenty
1 Automaty niedeterministyczne

Imię, nazwisko, nr indeksu

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}

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

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)

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

Języki formalne i automaty Ćwiczenia 7

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

Obliczenia inspirowane Naturą

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

Matematyczne Podstawy Informatyki

Maszyna Turinga języki

Teoretyczne podstawy informatyki

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

Jaki język zrozumie automat?

Wyrażenia regularne.

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

Teoretyczne podstawy informatyki

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

LOGIKA I TEORIA ZBIORÓW

Języki formalne i automaty Ćwiczenia 9

Języki, automaty i obliczenia

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

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

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

Kolorowanie płaszczyzny, prostych i okręgów

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

LX Olimpiada Matematyczna

Indukcja matematyczna

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

Zbiory, relacje i funkcje

Języki, automaty i obliczenia

Hierarchia Chomsky ego Maszyna Turinga

Elementy Teorii Obliczeń

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

Korzystając z własności metryki łatwo wykazać, że dla dowolnych x, y, z X zachodzi

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

Układy równań i nierówności liniowych

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

Lista zadań - Relacje

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Języki, automaty i obliczenia

1 Działania na zbiorach

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Języki formalne i automaty Ćwiczenia 1

Problemy Decyzyjne dla Systemów Nieskończonych

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

Wykład z równań różnicowych

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

Spacery losowe generowanie realizacji procesu losowego

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Indukcja matematyczna. Zasada minimum. Zastosowania.

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Elementy logiki matematycznej

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

Dwa równania kwadratowe z częścią całkowitą

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

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

Dlaczego nie wystarczają liczby wymierne

1. Wykład NWD, NWW i algorytm Euklidesa.

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Temperatura w atmosferze (czy innym ośrodku) jako funkcja dł. i szer. geogr. oraz wysokości.

Algorytmiczne aspekty teorii gier: Wykład 5

Topologia zbioru Cantora a obwody logiczne

Rozwiązania, seria 5.

Notatki przygotowawcze dotyczące inwersji na warsztaty O geometrii nieeuklidesowej hiperbolicznej Wrocław, grudzień 2013

Zasada indukcji matematycznej

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.

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

Paradygmaty dowodzenia

Matematyka Dyskretna Zestaw 2

Ciągi Podzbiory Symbol Newtona Zasada szufladkowa Dirichleta Zasada włączania i wyłączania. Ilość najkrótszych dróg. Kombinatoryka. Magdalena Lemańska

jest ciągiem elementów z przestrzeni B(R, R)

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

W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1

Teoretyczne podstawy informatyki

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

Struktury formalne, czyli elementy Teorii Modeli

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Szeregi o wyrazach dodatnich. Kryteria zbieżności d'alemberta i Cauchy'ego

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:

Sumy kwadratów kolejnych liczb naturalnych

Liczby pierwsze. Kacper Żurek, uczeń w Gimnazjum nr 1 im. Jana Pawła II w Giżycku.

10110 =

Obliczenia inspirowane Naturą

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

Wprowadzenie do maszyny Turinga

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

Przykładowe zadania z teorii liczb

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI

Rachunek prawdopodobieństwa- wykład 2

Transkrypt:

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 stacjonarne Promotor: dr Katarzyna Pałasińska Kraków 2012

Spis treści Wstęp 2 Spis symboli i podstawowe definicje 5 1. Automaty skończone 6 1.1. Skończenie stanowe maszyny wykonujące obliczenia na skończonych słowach............................. 6 1.1.1. Pojęcie skończenie stanowej maszyny............ 7 1.1.2. Obliczenia skończenie stanowej maszyny na skończonych słowach............................ 9 1.2. Pojęcie automatu skończonego................... 11 1.2.1. Definicja automatu skończonego.............. 12 1.2.2. Języki rozpoznawane przez automaty skończone...... 14 1.2.3. Równoważność automatów deterministycznych i niedeterministycznych......................... 15 2. Automat Büchi ego jako przykład ω-automatu 20 2.1. Pojęcia wstępne............................ 20 2.2. Definicja Automatu Büchi ego.................... 24 2.3. Języki akceptowane przez AB.................... 26 3. Inne typy ω-automatów 30 3.1. Automaty Müllera.......................... 30 3.2. Automaty Rabina.......................... 32 3.3. Automaty Streeta........................... 36 4. Równoważność NAB, NAM, NAR i NAS 39 4.1. Twierdzenie o równoważności NAB, NAM, NAR, NAS...... 40 Podsumowanie 47 Spis literatury 48 1

Wstęp Niniejsza praca magisterska poświęcona jest pojęciu automatu Büchi ego, wprowadzonemu przez szwajcarskiego matematyka Juliusa Richarda Büchi ego w 1962 r. Teoria automatów Büchi ego wyrosła z teorii automatów skończonych. Automat skończony to matematyczny model maszyny liczącej, która na zadanym skończonym ciągu symboli ma wykonać konkretne zadanie i zwrócić odpowiedni wynik. Automaty skończone dobrze nadają się do modelowania komputerów o bardzo małej pamięci. Tego typu komputery stanowią serce wielu urządzeń elektromechanicznych takich, jak kalkulatory, zegarki elektroniczne, czy automaty spotykane na co dzień, np. te do sprzedawania napojów. Są jednak procesy komputerowe, do modelowania których teoria automatów skończonych się nie nadaje. Np. systemy operacyjne dla komputerów, systemy bankowe, systemy ruchu lotniczego zostały tak zaprojektowane, aby działać bezustannie, niezależnie od tego co robi użytkownik. Przekładając na język matematyczny, obliczenie wykonywane przez taki system jest ciągiem nieskończonym, w odróżnieniu od skończonych obliczeń na skończonych ciągach symboli wykonywanych przez automaty skończone. J. R. Büchi był zainteresowany rozstrzygalnością pewnych teorii w logice. Zauważył przy tym, że istnieje związek między automatami prowadzącymi obliczenia na nieskończonych słowach, a rozstrzygalnością takich teorii. Z tego powodu opracował pierwszą definicję automatu nowego typu i tym samym stał się inicjatorem badań nad skończonymi maszynami wykonującymi nieskończone obliczenia. Wymagało to zdefiniowania pojęcia akceptowania słowa nieskończonego. W niedługim czasie po odkryciu Büchi ego także inni badacze podali nowe propozycje modeli nieskończonych. Różnią się one od definicji Büchi ego i między sobą tzw. czynnikami akceptującymi oraz definicją udanego obliczenia. Celem tej pracy jest przedstawienie pojęcia i teorii automatów Büchi ego oraz pewnych alternatywnych podejść do tematu obliczeń nieskończonych, a następnie porównanie ich między sobą. Praca składa się z czterech rozdziałów. Rozdział pierwszy poświęcono pojęciu 2

automatu skończonego. Na początku wprowadzono definicję skończenie stanowej maszyny i wyjaśniono, w jaki sposób wykonuje ona obliczenia na skończonych słowach. Następnie pojęcie skończenie stanowej maszyny rozszerzono do pojęcia automatu skończonego. Sformułowano definicje słowa akceptowanego oraz języka rozpoznawanego przez automat skończony, po czym zaprezentowano przykłady automatów skończonych i języków przez nie rozpoznawanych, opracowane przez autorkę samodzielnie. W ostatnim podrozdziale wykazano, że dla dowolnego niedeterministycznego automatu skończonego istnieje deterministyczny automat skończony, który rozpoznaje ten sam język (Twierdzenie 1.18). Twierdzenie odwrotne jest oczywiste. Rozdział drugi, poświęcony automatom Büchi ego, stanowi wstęp do rozważań nad skończonymi maszynami wykonującymi nieskończone obliczenia. W początkowym paragrafie wyjaśniono, w jaki sposób skończenie stanowa maszyna przeprowadza obliczenia na nieskończonych słowach. Następnie wprowadzono pojęcia deterministycznego i niedeterministycznego automatu Büchi ego oraz słowa akceptowanego i języka rozpoznawanego przez ten automat. Głównym rezultatem tego rozdziału jest Twierdzenie 2.21 mówiące o tym, że istnieją języki, które są akceptowane przez niedeterministyczne automaty Buchiego, ale których nie zaakceptuje żaden deterministyczny automat Büchi ego. Tak więc jest istotna różnica miedzy tymi dwoma pojęciami. W rozdziale trzecim przedstawiono propozycje Müllera, Rabina i Streeta alternatywnych definicji maszyny skończenie stanowej wykonującej nieskończone obliczenia. Podobnie jak automaty skończone i automaty Büchi ego, każdy z nich występuje w wersjach: deterministycznej i niedeterministycznej. Okazuje się, że w przeciwieństwie do automatów Büchi ego dla każdego z tych alternatywnych typów obie wersje są równoważne [...]. W rozdziale trzecim przedstawiono też pewne przekształcenia między różnymi typami automatów, wykorzystywane później w rozdziale czwartym w dowodzie głównego twierdzenia. Główny rezultat rozdziału czwartego, Twierdzenie 4.3, głosi, że dla dowolnych dwóch z podanych w tej pracy definicji automatów niedeterministycznych realizujących nieskończone obliczenia, automat pierwszego typu można przekształcić w automat drugiego typu rozpoznający ten sam język. Tak więc niedeterministyczne automaty Büchi ego, Müllera, Rabina i Streeta są wzajemnie równoważne pod względem mocy obliczeniowej. Przygotowując pracę magisterską korzystano przede wszystkim z [3, 1] pomocniczo używając pozostałych pozycji z literatury. Układ pracy oraz komentarze zostały opracowane przez autorkę w dyskusji z promotorem. Dowody twierdzeń zaczerpnięte z literatury znacząco dopracowano. Wymagało to przełożenia poglądowych opisów działania danych maszyn na twarde, logiczne rozumowanie matematyczne, oparte na znanych definicjach. 3

Wszystkie przykłady, za wyjątkiem maszyny A 1 z Przykładu 1.3, automatu Büchi ego B L1 (Przykład 2.18) oraz automatu Streeta S (Przykład 3.17), zostały opracowane samodzielnie. Pomocniczo, wprowadzono definicję maszyny skończenie stanowej (Definicja 1.1), ktora nie pochodzi z literatury. 4

Podstawowe definicje Poniższe definicje są ogólnie znane. Definicja 1. Alfabetem nazywamy dowolny, skończony zbiór symboli. Definicja 2. Niech Σ będzie alfabetem. Słowem nad alfabetem Σ nazywamy skończony ciąg symboli z tego alfabetu. Definicja 3. Niech Σ będzie alfabetem. Zbiór Σ = {σ 1 σ 2... σ m σ 1, σ 2,..., σ m Σ, m N {0}} jest zbiorem wszystkich możliwych słów nad alfabetem Σ. Definicja 4. Σ-językiem, bądź językiem nazywamy każdy podzbiór zbioru Σ wszystkich słów nad alfabetem Σ. Wprowadźmy następujące oznaczenia: ω - zbiór liczb naturalnych, ω + - zbiór liczb naturalnych bez zera. Definicja 5. Niech Σ będzie alfabetem. Zbiór Σ ω jest zbiorem wszystkich możliwych nieskończonych ciągów symboli z alfabetu Σ. Elementy tego zbioru nazywamy ω-słowami. Definicja 6. ω-językiem nazywamy każdy podzbiór zbioru Σ ω. Niech S będzie dowolnym zbiorem. Dla dowolnych dwóch ciągów r S i s S S ω piszemy r s, gdy r jest podciągiem s, tzn. ciąg s jest nie krótszy niż ciąg r oraz i {1,..., n} r i = s i. 5

Rozdział 1 Automaty skończone Głównym celem tego rozdziału jest zapoznanie czytelnika z pojęciem skończenie stanowej maszyny oraz wyjaśnienie idei determinizmu i niedeterminizmu. Automat skończony, jako maszyna o skończonej liczbie stanów, wykonująca obliczenia na skończonych słowach, jest najprostszym modelem obliczeń. Teoria automatów skończonych stanowi punkt wyjścia do rozważań teorii automatów Büchi ego. W ostatnim paragrafie tego rozdziału pokażemy, że klasy niedeterministycznych i deterministycznych automatów skończonych są sobie równoważne, tzn. że dla dowolnego deterministycznego automatu skończonego istnieje niedeterministyczny automat skończony, który rozpoznaje ten sam język i na odwrót. Ponadto przedstawimy proces determinizacji niedeterministycznego automatu skończonego. Jak zobaczymy w rozdziale drugim, analogiczny proces w przypadku automatów Büchi ego musi skończyć się porażką. W niniejszym rozdziale niektóre z podanych pojęć (Definicje 1.1, 1.2) zostały sformułowane na potrzeby tej pracy samodzielnie przez autorkę, w oparciu o literaturę. Pojęcie obliczenia maszyny skończenie stanowej na skończonym słowie (Definicja 1.5) nie występuje w literaturze lub pojawia się pod inną nazwą ([4]). Inne (1.10,1.11,1.12,1.13) można znaleźć w literaturze [3, 6, 2], a definicje tu podane są im równoważne. W rozdziałach późniejszych, formułując definicje pojęć wzorowanych na literaturze, wykorzystano te definicje z obecnego rozdziału. 1.1. Skończenie stanowe maszyny wykonujące obliczenia na skończonych słowach W tym podrozdziale przedstawimy pojęcie skończenie stanowej maszyny oraz zilustrujemy je na kilku przykładach. Następnie wyjaśnimy, jak skończenie stanowe maszyny wykonują obliczenia na skończonych słowach. 6

1.1.1. Pojęcie skończenie stanowej maszyny Niech Σ będzie alfabetem. Definicja 1.1. Niedeterministyczną skończenie stanową maszyną nad alfabetem Σ nazywamy trójkę uporządkowaną A = (S, I, T ), gdzie 1. S jest niepustym, skończonym zbiorem, 2. I S, 3. T : S Σ P(S). W dalszym ciągu niniejszej pracy magisterskiej niedeterministyczną skończenie stanową maszynę będziemy nazywać krótko maszyną. Zgodnie z definicją, maszyna jest układem złożonym z trzech elementów: skończonego zbioru S - zwanego zbiorem stanów maszyny, jego podzbioru I tzw. zbioru stanów początkowych - tzn. takich stanów, od których maszyna rozpoczyna działanie. Ostatnim elementem układu jest funkcja przejścia T. Można ją traktować jako zbiór reguł przechodzenia od stanu do stanu. Przejścia te zachodzą w warunkach, gdy maszyna znajduje się w konkretnym stanie s S i czyta konkretny symbol σ Σ. Istotą niedeterminizmu jest to, że dla dowolnego symbolu wejściowego σ czytanego w danym stanie s, może być wiele albo i żaden dopuszczalnych stanów, do których maszyna czytając ten symbol może przejść. Stanowią one zbiór T (s, σ). Tak więc informację T (s, σ) = S, gdzie s S, σ Σ, S P(S) interpretuje się następująco: jeśli maszyna A znajduje się w stanie s i czyta symbol σ, to może ona przejść do jednego ze stanów należących do S. Szczególnym przypadkiem niedeterministycznej skończenie stanowej maszyny jest tzw. deterministyczna skończenie stanowa maszyna. Definicja 1.2. Deterministyczną skończenie stanową maszyną nazywamy trójkę uporządkowaną à = (S, {s 0}, T ) taką, że 1. S jest skończonym, niepustym zbiorem, 2. s 0 S, 3. T : S Σ S. Maszyna deterministyczna składa się ze skończonego, niepustego zbioru stanów S, jednego stanu początkowego s 0 oraz funkcji przejścia T. Tym razem dla dowolnego symbolu wejściowego istnieje dokładnie jedno przejście z każdego stanu odpowiadające temu symbolowi. Zatem T (s, σ) = s, gdzie s, s S, σ Σ, interpretujemy następująco: jeśli maszyna deterministyczna à znajduje się w stanie s i czyta symbol σ to wchodzi w stan s. Z każdą maszyną wiążemy diagram przejść. Diagram przejść to graf skierowany zdefiniowany w następujący sposób: wierzchołki grafu odpowiadają stanom 7

maszyny; jeśli w maszynie istnieje przejście ze stanu s do stanu s przy wejściu a, to diagram przejść zawiera łuk prowadzący ze stanu s do s opatrzony etykietą a. Przy rysowaniu diagramu używa się następujących oznaczeń: 1. Stany maszyny oznaczamy okręgiem. 2. Przejścia są reprezentowane przez zaetykietowane krawędzie skierowane pomiędzy wierzchołkami (stanami). Jedna krawędź może mieć kilka etykiet, np. jeśli t T (s, a) i t T (s, b), to krawędź z s do t ma dwa podpisy: a i b. 3. Dołączając strzałkę po lewej stronie okręgu symbolizującego stan wskazujemy, że dany stan jest stanem początkowym. Przykład 1.3. Niech Σ = {a, b} będzie alfabetem. Oto przykłady maszyn niedeterministycznych oraz ich diagramów przejść. 1. [3, zmodyfikowany przez autorkę] A 1 = (S 1, I 1, T 1 ), gdzie S 1 = {s 0, s 1, s 2, s 3, s 4, s 5 }; I 1 = {s 0 }; przejścia maszyny A 1 opisuje diagram przedstawiony na poniższym rysunku. Niedeterminizm maszyny A 1 objawia się tym, że nie dla wszystkich stanów oraz symboli alfabetu istnieją przejścia tej maszyny. 8

2. A 2 = (S 2, I 2, T 2 ) gdzie S 2 = {s 0, s 1, s 2, s 3, s 4 }; I 2 = {s 0 }; funkcję przejścia T 2 opisuje diagram zilustrowany na poniższym rysunku. W tym przypadku niedeterminizm objawia się tym, że dla pewnych stanów oraz symboli alfabetu istnieje więcej niż jeden stan w który maszyna A 2 może wejść. Przykład 1.4. Niech teraz Σ = {0, 1}. Rozważmy maszynę Ã3 = (S, {s 0 }, T ), gdzie: S = {s 0, s 1 }; funkcję T zilustrowano przy pomocy diagramu przedstawionego na rysunku: Maszyna A 3 jest przykładem maszyny deterministycznej. 1.1.2. Obliczenia skończenie stanowej maszyny na skończonych słowach Niech A = (S, I, T ) będzie niedeterministyczną skończenie stanową maszyną nad alfabetem Σ oraz niech u = σ 0 σ 1... σ m Σ będzie skończonym słowem. Takie słowo, gdy poddane zostaje maszynie A do odczytania, nazywamy też wejściem (ang. input). 9

Definicja 1.5. Obliczeniem maszyny A na słowie u = σ 0 σ 1... σ m Σ nazywamy dowolny ciąg stanów s 0 s 1... s m+1 taki, że s 0 I oraz dla wszystkich i m, s i+1 T (s i, σ i ). Zastanówmy się nad intuicyjnym sensem Definicji 1.5. Otóż przebieg obliczenia maszyny można oddać w następujący sposób. Etap 0. Maszyna A wybiera dowolny element s 0 I. Etap 1. Jeśli nie istnieje s 1 S taki, że s 1 T (s 0, σ 0 ), to wówczas maszyna zatrzymuje się. W przeciwnym wypadku A wybiera w sposób losowy stan s 1 T (s 0, σ 0 ). Maszyna A dopisuje s 1 do ciągu odwiedzonych stanów - - na tym etapie obliczenie składa się z dwóch stanów: s 0 s 1. Etap k., gdzie k m. Przypuśćmy, że maszyna A utworzyła już ciąg s 0 s 1... s k 1. Jeśli nie istnieje stan s k S taki, że s k T (s k 1, σ k 1 ), to maszyna nie zdoła przeczytać słowa u. W przeciwnym przypadku A wybiera w sposób losowy stan s k T (s k 1, σ k 1 ). Jeśli na pewnym etapie k maszyna zatrzyma się, to A nie przeczyta całego słowa tworząc ciąg s 0 s 1 s 2... s k 1. W przeciwnym razie maszyna odczyta całe wejście i utworzy ciąg s 0 s 1... s m s m+1 który jest obliczeniem maszyny A na wejściu u. Przykład 1.6. Rozważmy ponownie maszynę A 1 z Przykładu 1.3. Niech słowo u 1 = aaabbb Σ będzie słowem wejściowym tej maszyny. Obliczeniem A 1 na u 1 jest ciąg stanów s 0 s 1 s 2 s 2 s 3 s 4 s 5. To obliczenie jest jedynym obliczeniem A 1 na u 1. Niedeterminizm maszyny oznacza, że podczas wykonywania obliczeń musi ona dokonać wyboru spośród wielu możliwych przejść z danego stanu, gdy czyta konkretny symbol wejściowy. Wybory te są losowe. Stąd maszyna A może mieć kilka obliczeń na tym samym słowie. Zauważmy również, że nie każde słowo zostanie przeczytane przez maszynę. Stanie się tak, gdy dla pewnego symbolu ze 10

słowa wejściowego nie będzie istnieć przejście maszyny ze stanu, w którym będzie się ona akurat znajdowała czytając ten symbol. Przykład 1.7. Rozważmy znowu maszynę A 1 z Przykładu 1.3. Niech u 2 = abbbbba będzie słowem wejściowym tej maszyny. A 1 nie ma obliczenia na słowie u 2. Istotnie, działanie maszyny zakończy się już po przeczytaniu pierwszego symbolu b, bowiem nie istnieje przejście maszyny A 1 ze stanu s 1 poprzez symbol b. Przykład 1.8. Niech teraz u 3 = aaabbbbaba będzie słowem wejściowym automatu A 2 z Przykładu 1.3. Ciągi stanów s 0 s 1 s 1 s 1 s 2 s 3 s 3 s 3 s 4 s 2 oraz s 0 s 1 s 2 s 0 s 0 s 0 s 0 s 0 s 1 s 2 są przykładowymi obliczeniami A 2 na słowie u 3. Maszyna deterministyczna wykonuje obliczenia bardzo podobnie jak jej niedeterministyczny odpowiednik, z tą różnicą, że obliczenie maszyny deterministycznej na danym słowie zawsze istnieje i jest jedyne. Przykład 1.9. Rozważmy deterministyczną skończenie stanową maszynę Ã3 z Przykładu 1.4. Niech u 4 = 01011101 będzie słowem wejściowym tej maszyny. Ciąg stanów s 0 s 1 s 1 s 0 s 1 s 0 s 0 s 1 jest jedynym obliczeniem Ã3 na słowie u 4. 1.2. Pojęcie automatu skończonego W tym podrozdziale przedstawimy definicje niedeterministycznego i deterministycznego automatu skończonego, wprowadzimy pojęcia akceptacji oraz języka rozpoznawanego przez automat skończony. Pokażemy też, że klasa języków rozpoznawanych przez skończone automaty deterministyczne i klasa języków rozpoznawanych przez skończone automaty niedeterministyczne pokrywają się. 11

1.2.1. Definicja automatu skończonego Niech Σ będzie alfabetem. Definicja 1.10. Niedeterministycznym automatem skończonym (w skrócie NFA, od słów Nondeterministic Finite Automaton ) nad alfabetem Σ nazywamy parę K = (A, F ), gdzie: 1. A jest niedeterministyczną skończenie stanową maszyną, 2. F S. Zgodnie z powyższą definicją niedeterministyczny automat skończony jest układem złożonym z maszyny A oraz zbioru F. Zbiór F jest tzw. zbiorem stanów końcowych (akceptujących). Od tej pory zamiast niedeterministyczny automat skończony będziemy mówić automat skończony. Definicja 1.11. Deterministycznym automatem skończonym (w skrócie DFA, od słów Deterministic Finite Automaton ) nazywamy parę K = (Ã, F ), gdzie 1. à jest deterministyczną skończenie stanową maszyną, 2. F S. Używając oznaczeń z paragrafu 1.1.1, możemy przedstawić automaty skończone na diagramie. Aby wskazać, że dany stan jest stanem końcowym, oznaczamy go podwójnym okręgiem: Definicja 1.12. Niech K = (A, F ) będzie automatem skończonym nad alfabetem Σ. Obliczeniem automatu K na słowie u Σ nazywamy obliczenie maszyny A na u. Podobnie obliczeniem deterministycznego automatu skończonego K = (Ã, F ) na u nazywamy obliczenie maszyny deterministycznej à na u. Przedmiotem naszych rozważań będą szczególne rodzaje słów słowa akceptowane przez automat skończony, tzn. takie, na których przeprowadza on udane obliczenie. Udane, czyli rozpoczynające się w stanie początkowym i kończące w stanie akceptującym. Formalna definicja słowa akceptowanego przez K (odpowiednio K) jest następująca. Definicja 1.13. Mówimy, że automat skończony K = (A, F ) nad alfabetem Σ akceptuje słowo u = σ 0 σ 1... σ m Σ 12

jeśli istnieje obliczenie s 0 s 1... s m+1 maszyny A na słowie u takie, że s m+1 F. Oto przykłady automatów skończonych i słów przez nie akceptowanych. Przykład 1.14. Niech Σ = {a, b}. Rozważmy automat skończony K = (A, F ), gdzie 1. A = ({s 0, s 1, s 2 }, {s 0 }, T ). 2. Funkcja przejścia T jest zilustrowana na diagramie 1.1. 3. F = {s 1, s 2 } Rysunek 1.1: Diagram przejść automatu K. Niech u = ababaa Σ będzie słowem wejściowym automatu skończonego K. Ciąg stanów s 0 s 1 s 0 s 1 s 0 s 1 s 2 jest obliczeniem K na u takim, że s 2 F. Zatem słowo u jest akceptowane przez automat skończony K. Przykład 1.15. że Rozważmy automat skończony K = (A, F ) nad alfabetem Σ = {a, b} taki, 1. A = {s 0, s 1, s 2, s 3, s 4, s 5 }, {s 0 }, T ). 2. Funkcję przejścia T opisuje diagram na rysunku 1.2. 3. F = {s 0, s 2 }. Rysunek 1.2: Diagram przejść automatu K. Niech u = aaaaaabb Σ będzie słowem wejściowym automatu skończonego K. Obliczeniem, poprzez które K akceptuje słowo u jest: s 0 s 1 s 2 s 0 s 1 s 2 s 3 s 5 s 0. 13

1.2.2. Języki rozpoznawane przez automaty skończone Niech K = (A, F ) będzie automatem skończonym. Rozważmy zbiór wszystkich skończonych słów akceptowanych przez K. Niech L(K) := {u Σ K akceptuje u}. Definicja 1.16. Mówimy, że język L jest rozpoznawany przez automat skończony, jeśli istnieje automat skończony K taki, że L = L(K). Przykład 1.17. Oto przykłady automatów skończonych nad alfabetem Σ = {a, b} oraz języków przez nie rozpoznawanych. 1. K 1 = (({s 0, s 1 }, {s 0 }, T 1 ), {s 1 }). Funkcję przejścia T 1 opisuje poniższy diagram. Wtedy L(K 1 ) = Σ. 2. K 2 = (({s 0, s 1, s 2 }, {s 0 }, T 2 ), {s 2 }). Funkcję przejścia T 2 opisuje poniższy diagram. Wówczas L(K 2 ) = {u Σ u zaczyna się symbolem a i kończy symbolem b}. 3. K 3 = (({s 0, s 1, s 2 }, {s 0 }, T 3 ), {s 1 }). Funkcję przejścia T 3 opisuje poniższy diagram : Wtedy L(K 3 ) = {u Σ u kończy się symbolem a}. 14

4. K 4 = (({s 0, s 1, s 2, s 3, s 4 }, {s 0 }, T 4 ), {s 4 }). Funkcję przejścia T 4 opisuje poniższy diagram. Wówczas L(K 4 ) = {u Σ u zawiera ciąg aabb}. 5. K 5 = (({s 0, s 1, s 2, s 3, s 4, s 5 }, {s 0 }, T 5 ), {s 5 }). Funkcję przejścia T 5 opisuje poniższy diagram. Wtedy L(K 5 ) = {u Σ długość u jest wielokrotnością liczby 5}. 1.2.3. Równoważność automatów deterministycznych i niedeterministycznych Na każdy automat deterministyczny można spojrzeć jak na automat niedeterministyczny. W związku z tym klasa języków rozpoznawanych przez DFA zawiera się w klasie języków rozpoznawanych przez NFA. Okazuje się, że zachodzi również zawieranie w drugą stronę. Dowód tego faktu sprowadza się do pokazania, że każdy niedeterministyczny automat skończony może byś symulowany przez pewien deterministyczny automat skończony, tzn. że dla dowolnego NFA możemy zbudować DFA rozpoznający ten sam język. Oba modele obliczeń są więc równoważne w tym sensie, że klasy języków przez nie rozpoznawanych są takie same. Ta własność jest bardzo użyteczna, bowiem czasem o wiele łatwiej jest opisać NFA akceptujący dany język niż DFA. Twierdzenie 1.18 ([3]). Dla dowolnego niedeterministycznego automatu skończonego K = (A, F ) istnieje deterministyczny automat skończony K taki, że L(K) = L( K). Dowód. ([3]) Niech K = (A, F ) będzie niedeterministycznym automatem skończonym, A = (S, I, T ). Definiujemy: K = (Ã, F ), Ã = (S, {I}, T ) gdzie : 15

1. S = P(S); 2. T : S Σ S jest taka, że dla dowolnego X S, σ Σ, kładziemy T (X, σ) := s X T (s, σ); 3. F = {X S X F }. Dla wszystkich X i σ, T (X, σ) istnieje i jest jedyne, więc T jest rzeczywiście funkcją: T : S Σ S. Ponadto, ponieważ zbór stanów początkowych ma jeden element, to zdefiniowany przez nas automat jest DFA. Pokażemy, że L(K) = L( K). ( ) Niech u = σ 0 σ 1... σ m Σ będzie słowem akceptowanym przez K. Istnieje zatem obliczenie r = s 0 s 1 s 2... s m+1 niedeterministycznego automatu skończonego K na u takie, że s m+1 F (1.1) oraz i {0,..., m} s i+1 T (s i, σ i ). (1.2) Definiujemy indukcyjnie zbiory S i, i = 0,..., m + 1: S 0 := I S i+1 := T (S i, σ i ) = s S i T (s, σ i ) dla i m (1.3) Indukcyjnie pokażemy, że i = 0,..., m + 1 s i S i. Ponieważ r jest obliczeniem, to s 0 I = S 0. Załóżmy, że dla pewnego i < m s i S i. Wtedy 1) s i+1 T (s i, σ i ), na mocy (1.2); 2) T (s i, σ i ) T (s, σ i ) (1.3) = S i+1. s S i Stąd s i+1 S i+1. Na mocy zasady indukcji matematycznej i m s i S i, a zatem s m+1 S m+1. Ponieważ s m+1 F, to S m+1 F. Stąd S m+1 F. Ciąg S 0... S m+1 spełnia definicję obliczenia akceptującego automatu K na słowie u, a zatem u L( K). ( ) Niech teraz słowo u = σ 0 σ 1... σ m L( K) oraz niech ciąg stanów z S S 0 S 1... S m+1 16

będzie obliczeniem K na u takim, że S m+1 F. (1.4) Z definicji obliczenia, i {0,..., m} T (S i, σ i ) = S i+1. Indukcyjnie, indukcją na i {0,..., m + 1} zdefiniujemy ciąg stanów z S s k s k+1... s m+1, gdzie k = m + 1 i taki, że: 1) s m+1 F oraz 2) s j+1 T (s j, σ j ) dla dowolnego j {k, k + 1,..., m} i 3) s j S j, dla dowolego j {k,..., m + 1}. Gdy taki ciąg zostanie zdefiniowany dla każdego i {0,..., m + 1}, to dla i = m + 1, otrzymamy: k = 0 i ciąg s 0... s m+1 spełnia warunki 1) 2), mianowicie: s m+1 F, j {0,..., m} s j+1 T (s j, σ j ). Będzie więc to obliczenie akceptujące słowo u przez K, co zakończy dowód, że u L(K). Aby uzupełnić dowód wystarczy więc teraz podać indukcyjną definicję ciągu s k... s m+1, dla k = m + 1 i, spełniającego warunki 1) 3). Zauważmy najpierw, że skoro na mocy (1.4) S m+1 F, to z definicji F, S m+1 F. Niech więc, dla i = 0, s m+1 będzie dowolnym elementem niepustego zbioru S m+1 F. Wtedy warunek 1) jest oczywisty, jak również warunek 3) dla j = m + 1. Ponieważ k = m + 1, to warunek 2) jest pusto spełniony. Przypuśćmy teraz, że dla pewnego i {0,..., m} i dla k = m + 1 i ciąg s k... s m+1 spełniający 1) 3) został już zdefiniowany. Zdefiniujemy stan s k 1. Zauważmy, że k 1 = m + 1 i 1 = m i m. Z 3), s k S k. Ale, ponieważ k 1 m, to z definicji K, S k = T (s, σ k 1 ). s S k 1 Stąd s k T (s, σ k 1 ), więc s S k 1 taki, że s k T (s, σ k 1 ). s S k 1 Niech s k 1 będzie takim s. Wtedy s k T (s k 1, σ k 1 ) oraz s k 1 S k 1. Zatem ciąg s k 1... s m+1 spełnia warunki 1) i 2). Warunek 3) pozostaje spełniony, z założenia indukcyjnego. Przykład 1.19. 17

Prześledźmy działanie procedury z dowodu twierdzenia 1.18 przekształcającej niedeterministyczny automat skończony w deterministyczny automat skończony na przykładzie automatu K 2 z przykładu 1.17. Przypomnijmy, że K 2 ma następujący diagram przejść: Zgodnie z konstrukcją przedstawioną w dowodzie twierdzenia 1.18, deterministyczny automat skończony równoważny niedeterministycznemu automatowi skończonemu K 2 jest następujący: K = (Ã, F ), gdzie: 1. Ã = (S, {I}, T ). 2. S = {, {s 0 }, {s 1 }, {s 2 }, {s 0, s 1 }, {s 0, s 2 }, {s 1, s 2 }, {s 0, s 1, s 2 }}. 3. I S jest stanem początkowym. 4. Funkcja przejścia T jest opisana za pomocą diagramu 1.3. Rysunek 1.3: Proces tworzenia diagramu 1.3 zilustrujemy na kilku przykładach. Ze stanu {s 0 } poprzez symbol a automat K 2 przechodzi do stanu {s 1 }, ponieważ w K 2 strzałki z etykietą a od stanu s 0 prowadzą tylko do stanu s 1. Dla automatu K 2 nie istnieje przejście poprzez symbol b od stanu s 0 zatem w 18

K 2 będąc w stanie {s 0 } i czytając b następuje przejście do stanu. Ze stanu {s 1 } automat K 2 przechodzi do stanu {s 1, s 2 }, czytając symbol wejściowy b, gdyż K 2 będąc w stanie s 1 i czytając b może wejść w stan s 2, bądź pozostać w s 1. Ponieważ automat K 2 będąc w stanie s 1 i czytając symbol a może tylko pozostać w s 1 oraz nie istnieje przejście tego automatu ze stanu s 2 poprzez a, automat deterministyczny K 2 znajdujący się aktualnie w {s 1 }, po przeczytaniu a pozostanie w {s 1 }. Będąc w stanie {s 1, s 2 } po przeczytaniu b, K 2 nie zmieni stanu, bowiem w automacie K 2 nie istnieje przejście od stanu s 2 poprzez b oraz będąc w stanie s 1 automat K 2 może pozostać w s 1 lub wejść w s 2. Z kolei będąc w stanie {s 1, s 2 } i czytając symbol a nastąpi przejście K 2 do {s 1 }, ponieważ w K 2 nie istnieje przejście od stanu s 2 poprzez a oraz będąc w s 1 i czytając a, automat K 2 może tylko pozostać w s 1. Postępując dalej w podobny sposób, dostaniemy kompletny diagram 1.3 dla K 2. Otrzymany automat deterministyczny możemy uprościć, zauważając, że nie ma krawędzi prowadzących do stanów {s 2 }, {s 0, s 1 }, {s 0, s 2 } i {s 0, s 1, s 2 }. Po usunięciu wspomnianych stanów otrzymamy nowy automat (Rysunek 1.4.), ale będzie on nadal rozpoznawał ten sam język co automat K 2. Rysunek 1.4: 19

Rozdział 2 Automat Büchi ego jako przykład ω-automatu W poprzednim rozdziale zajmowaliśmy się skończonymi obliczeniami maszyn skończenie stanowych na słowach dowolnej skończonej długości. Na wejściu skończenie stanowej maszyny może się jednak znaleźć słowo nieskończone. Wtedy maszyna wykonuje na nim obliczenie tak samo, jak na słowie skończonej nieznanej długości; tyle, że takie obliczenie, jeśli się udaje je przeprowadzić, nigdy się nie kończy. Skończony automat nigdy nie zaakceptuje więc takiego słowa chyba, że inaczej zdefiniujemy kryterium akceptacji. Najogólniej, modelem obliczeń nieskończonych nazywać będziemy parę (A, Acc), gdzie Acc częściowo koduje pewne kryterium akceptacji i nazywane jest czynnikiem akceptującym. Pierwszy historycznie czynnik akceptujący został zaproponowany przez R. J. Büchi ego i z tej racji automat wyposażony w ten czynnik, nazywa się automatem Büchi ego. W tym rozdziale wprowadzimy definicję automatu Büchi ego oraz pojęcia słowa i języka akceptowanego przez ten automat. W ostatnim paragrafie zbadamy, czy podobnie jak dla automatów skończonych, deterministyczne oraz niedeterministyczne automaty Büchi ego są sobie równoważne. Odpowiedź okaże się negatywna. W rozdziale kolejnym omówimy inne przykłady czynników akceptujących. 2.1. Pojęcia wstępne Niech Σ będzie alfabetem. Definicja 2.1 ([3]). ω-ciągiem nad alfabetem Σ nazywamy funkcję σ prowadzącą ze zbioru ω liczb naturalnych w alfabet Σ. Niech α : ω Σ będzie ω-ciągiem. Wtedy dla każdego i ω α(i) Σ. Niech 20

σ i := α(i). Wówczas piszemy α = σ 0 σ 1... σ m σ m+1... na oznaczenie ω-ciągu α. 21

Przykład 2.2. Niech Σ będzie jednoznakowym alfabetem, powiedzmy Σ = {a}. Wówczas istnieje tylko jeden ω-ciąg nad Σ: aaaaaaaaaaaaaaaaaaaaaa.... Powyższy ω-ciąg, w którym występuje tylko znak a oznacza się krótko symbolem a ω. Przykład 2.3. Niech Σ = {a, b}. Wtedy babababababababababababababa... oraz bbabbabbabbabbabbabbabbabbabba... są ω-ciągami. Taki ω-ciąg, w którym jedna po drugiej, nieskończenie wiele razy, powtarza się sekwencja u, gdzie u jest skończonym słowem oznaczamy u ω. Wtedy ω-ciągi z przykładu 2.3 to odpowiednio (ba) ω i (bba) ω. Rozważmy zbiór wszystkich ω-ciągów α nad alfabetem Σ, tzn. zbiór Σ ω = {α α : ω Σ}. Elementy zbioru Σ ω będziemy nazywać ω-słowami, bądź krótko słowami. Od tej pory przyjmujemy małe litery greckie σ, α, β, γ na oznaczenie ω-słow. Definicja 2.4 ([3]). ω-językiem nazywamy dowolny podzbiór zbioru Σ ω. Teraz zdefiniujemy pojęcie obliczenia skończenie stanowej maszyny na ω- słowie. Niech A będzie maszyną niedeterministyczną. Definicja 2.5 ([1]). Obliczeniem maszyny A na ω-słowie α = σ 0 σ 1 σ 2... jest ω-ciąg stanów ρ(0)ρ(1)ρ(2)ρ(3)... taki, że 1. ρ : ω S 2. ρ(0) I 3. ρ(i) T (ρ(i 1), σ i 1 ) dla i 1. 22

Zastanówmy się nad intuicyjnym sensem definicji 2.5. Otóż działanie maszyny jest procesem wieloetapowym. Jego przebieg można oddać w następujący sposób. Etap 0. Maszyna A wybiera dowolny element s 0 I. Etap 1. Jeśli nie istnieje s 1 S taki, że s 1 T (s 0, σ 0 ), wówczas maszyna zatrzymuje się. W przeciwnym wypadku A wybiera w sposób losowy stan s 1 T (s 0, σ 0 ). Maszyna A dopisuje s 1 do ciągu odwiedzonych stanów na tym etapie mamy: s 0 s 1. Etap k. Przypuśćmy, że maszyna A utworzyła już ciąg s 0 s 1... s k 1. Jeśli nie istnieje stan s k S taki, że s k T (s k 1, σ k 1 ), to maszyna nie zdoła przeczytać słowa α. W przeciwnym przypadku A wybiera w sposób losowy stan s k T (s k 1, σ k 1 ). Jeśli na każdym etapie k został wybrany stan s k, to maszyna zwróci nam ciąg stanów s 0 s 1 s 2..., który jest obliczeniem maszyny A na wejściu α. W przypadku maszyny deterministycznej obliczenie na danym ω-słowie zawsze istnieje i jest jedyne. Definicja 2.6 ([1]). Obliczeniem maszyny deterministycznej à = (S, {s 0}, T ) na ω-słowie α = σ 0 σ 1 σ 2... jest ω-ciąg stanów ρ(0)ρ(1)ρ(2)ρ(3)... taki, że 1. ρ : ω S 2. ρ(0) = s 0 3. ρ(i) = T (ρ(i 1), σ i 1 ) dla i 1. Przykład 2.7. Rozważmy maszynę A 1 z przykładu 1.3. Przypuśćmy, że słowem wejściowym tej maszyny jest słowo α = (aaabbb) ω Wówczas obliczeniem maszyny A 1 na α będzie ciąg stanów ρ = s 0 s 1 s 2 s 2 s 3 s 4 s 5 (s 0 s 1 s 2 s 3 s 4 s 5 ) ω 23

Przykładem słowa, na którym A 1 nie ma obliczenia jest β = b ω Istotnie, maszyna zatrzyma się już po przeczytaniu pierwszego znaku b. Zgodnie z diagramem przejść, nie istnieje przejście maszyny A 1, gdy znajduje się ona w stanie s 0 i czyta symbol b. Przykład 2.8. Rozważmy maszynę A 2 z przykładu 1.3. Niech γ = aaabbbbaba(b) ω. będzie słowem wejściowym maszyny A 2. Maszyna ta ma więcej niż jedno obliczenie na słowie γ. Przykładowo ρ 1 = s 0 s 1 s 1 s 1 s 2 s 3 s 3 s 3 s 4 s 2 (s 0 ) ω oraz ρ 2 = s 0 s 1 s 2 s 0 s 0 s 0 s 0 s 0 s 1 s 2 (s 0 ) ω są obliczeniami A 2 na γ. Powiemy, że stan s występuje nieskończenie wiele razy w obliczeniu ρ wtedy i tylko wtedy, gdy zbiór {i : s = ρ(i)} jest nieskończony. Definicja 2.9 ([3]). Niech ρ będzie obliczeniem maszyny A. Symbolem In(ρ) oznaczmy zbiór tych wszystkich stanów, które wystąpiły w ρ nieskończenie wiele razy. Zbiór In(ρ) nazywamy nieskończonym zbiorem obliczenia ρ. Przykład 2.10. Przyjrzyjmy się ponownie maszynom A 1, A 2 i ich obliczeniom, odpowiednio ρ oraz ρ 1, ρ 2. Dla tych obliczeń In(ρ) = {s 0, s 1, s 2, s 3, s 4, s 5 }, In(ρ 1 ) = {s 0 }, In(ρ 2 ) = {s 0 }. Wprowadźmy teraz definicję automatu Büchi ego. 2.2. Definicja Automatu Büchi ego Niech Σ będzie alfabetem. Definicja 2.11. Niedeterministycznym automatem Büchi ego (w skrócie NAB) nad alfabetem Σ nazywamy parę B = (A, F ) taką, że: 24

1. A = (S, I, T ) jest skończenie stanową niedeterministyczną maszyną. 2. F S. Zgodnie z powyższą definicją automat Büchi ego jest układem złożonym z maszyny A oraz zbioru F. Zbiór F, podobnie jak dla automatów skończonych, jest zbiorem stanów końcowych. Od tej pory zamiast niedeterministyczny automat Büchi ego będziemy mówić automat Büchi ego w skrócie AB. Definicja 2.12. Deterministycznym automatem Büchi ego (w skrócie DAB) nad alfabetem Σ nazywamy parę B = (Ã, F ) taką, że 1. Ã jest skończenie stanową deterministyczną maszyną. 2. F S. W podobny sposób jak automaty skończone, automaty Büchi ego można przedstawić za pomocą diagramu. Definicja 2.13. Niech B = (A, F ) będzie automatem Büchi ego nad alfabetem Σ. Obliczeniem automatu B na ω-słowie α Σ ω nazywamy obliczenie maszyny A na α. Przedmiotem naszych dalszych rozważań będą słowa akceptowane przez automat Büchi ego. Definicja 2.14 ([3]). Niech B = (A, F ) będzie automatem Büchi ego nad alfabetem Σ, α Σ ω. Niech R będzie zbiorem wszystkich obliczeń automatu B na α. Mówimy, że α jest akceptowane przez B, jeżeli ρ R In(ρ) F. Intuicyjny sens powyższej definicji jest następujący: dane ω-słowo α jest akceptowane przez automat Büchi ego B jeśli istnieje obliczenie tego automatu na α w którym pewien stan końcowy występuje nieskończenie wiele razy. Oto przykłady automatów Büchi ego oraz słów przez nie akceptowanych. Przykład 2.15. Rozważmy automat Büchi ego B = (A 4, F ), F = {s 2 }. Diagram przejść automatu B wygląda następująco: 25

Niech α = aaabbb(a) ω będzie słowem wejściowym dla B. Wówczas obliczeniem AB na tym słowie jest ciąg ρ 4 = s 0 s 0 s 0 s 0 s 1 s 0 s 1 (s 2 ) ω Automat Büchiego B akceptuje słowo α, ponieważ stan końcowy s 2 występuje w obliczeniu ρ 4 nieskończenie wiele razy. Przykład 2.16. Rozważmy automat Büchi ego B = (A 2, F ), gdzie A 2 jest automatem z przykładu 1.3, F = {s 0 }. Ponieważ funkcja przejścia dla B i A 2 są takie same, to diagram przejść dla B (rysunek 2.1) różni się od diagramu przejść dla A 2 zaznaczeniem stanów końcowych. Rysunek 2.1: Diagram przejść automatu Büchi ego B Automat B akceptuje słowo β = aaabbbbaba(b) ω Weźmy obliczenie ρ 1 automatu A 2 na tym słowie. Stan akceptujący s 0 występuje tu nieskończenie wiele razy. 2.3. Języki akceptowane przez AB Niech B będzie AB. Rozważmy zbiór L(B) wszystkich ω-słów akceptowanych przez automat B: L(B) = {α Σ ω B akceptuje α}. 26

Definicja 2.17 ([3]). Powiemy, że ω-język L jest rozpoznawany przez AB, jeśli istnieje automat Büchi ego B taki, że L = L(B). W tym wypadku mówimy, że automat B akceptuje język L. Przykład 2.18 ([5]). Niech teraz Σ = {a, b}. Rozważmy język L 1 = {α Σ ω : {n : α(n) = b} jest zbiorem skończonym}. Przykładem AB akceptującego język L 1 jest AB postaci: B L1 = (({s 0, f}, {s 0 }, T, {f}} Funkcję przejścia T automatu B L1 opisuje poniższy diagram. Wszystkie słowa należące do L 1 są postaci α = u(a) ω, u Σ. Załóżmy, że słowo u jest długości k, k ω. Wówczas przykładowymi obliczeniami automatu B L1 na α, poprzez które α zostanie zaakceptowane są: ρ = (s 0 ) k f ω (gdy ostatnim symbolem w u jest a ), ρ = (s 0 ) k+1 f ω (gdy ostatnim symbolem w u jest b ). ρ = f ω, gdy u jest słowem pustym. Definicja 2.19. Niech à = (S, {s 0}, T } będzie maszyną deterministyczną oraz niech u = σ 1 σ 2... σ m Σ będzie słowem skończonym nad alfabetem Σ. Powiemy, że słowo skończone u przekształca stan s S na stan s S, jeśli istnieje ciąg stanów s 1 s 2... s m+1 taki, że s 1 = s, s m+1 = s oraz T (s i, σ i ) = s i+1 dla i m. Będziemy wtedy mówić, że stan s jest osiągalny od stanu s poprzez słowo u. Zbiór wszystkich stanów osiągalnych od stanu s oznaczmy symbolem O(s). Wprowadźmy funkcję T : S Σ S; T (s, u) = s dla s, s S, u Σ wtedy i tylko wtedy gdy stan s jest osiągalny od s poprzez słowo u. Udowodnimy teraz następujący lemat. 27

Lemat 2.20 ([5]). Nie istnieje deterministyczny automat Büchi ego, który rozpoznaje L 1 = {α Σ ω : {n : α(n) = b} jest zbiorem skończonym}. Dowód. ([5]) Dla dowodu nie wprost przypuśćmy, że B jest deterministycznym automatem Büchi ego takim, że L( B) = L 1. Z definicji L 1 α Σ ω α L( B) u Σ α = ua ω. (2.1) Pokażemy, że s O(s 0 ) m = m s T (s, a m ) F. (2.2) Istotnie, niech s będzie osiągalny z s 0. Wtedy u Σ : s = T (s 0, u). Dla tego słowa u zdefiniujmy α := ua ω. Wtedy z (2.1), α L( B). Zatem m ω T (s 0, ua m ) F. Stąd T (s, a m ) F. Niech m s będzie najmniejszą taką liczbą m ω, że T (s, a m ) F. Wykazaliśmy: s O(s 0 ) T (s, a ms ) F. (2.3) Niech m := max{m s : s O(s 0 )}. Takie m istnieje, bo zbiór O(s 0 ) S jest skończony. Wtedy dla dowolnego u Σ, T (s 0, ua ms ) F (na mocy (2.3)). Ponieważ m s < m, to obliczenie r automatu B na słowie ua m zawiera stan T (s 0, ua ms ), a więc zawiera pewien stan końcowy. Mamy więc: u Σ f F : obliczenie automatu à na słowie ua m przechodzi przez f. (2.4) Niech r (1) będzie obliczeniem à na słowie a(bam ). Wtedy na mocy (2.4), r (1) zawiera pewien stan końcowy. (2.5) Niech dla k 1, r (k) oznacza obliczenie à na słowie skończonym a(bam ) k. Rozważmy ciąg r (k+1) \r (k). Jest on obliczeniem na słowie skończonym (ba m ), które zaczyna się od stanu osiągniętego przez r (k). Na mocy (2.4) ciąg stanów r ( k + 1) \ r ( k) zawiera pewien stan końcowy, a więc k f F : f występuje w r (k+1) \ r (k). (2.6) Stąd i z (2.5), r (k) zawiera co najmniej k stanów końcowych. Niech ρ będzie obliczeniem automatu à na nieskończonym słowie a(bam ) ω. Wtedy dla każdego k, ρ... r k+1 r (k) r (1). (2.7) 28

Zatem z (2.7) i (2.6), zbiór {i : ρ(i) F } jest nieskończony. (2.8) Chcemy uzasadnić, że f In F. Niech dla f F R f = {i : ρ(i) = f}. Wtedy R f = {i : ρ(i) F }. f F Ponieważ F jest zbiorem skończonym, to powyższa suma ma skończoną ilość składników. Na mocy (2.8), musi istnieć więc f F taki, że R f jest nieskończony. Zatem f F {i : ρ(i) = f} jest nieskończony. Niech f będzie takim właśnie stanem. Wtedy f In(ρ) F. Stąd In(ρ) F. ω-słowo a(ba m ) ω jest więc akceptowane przez B, a więc a(ba m ) ω L( B). Nie jest ono jednak postaci ua ω, dla żadnego u Σ. Tak więc otrzymaliśmy sprzeczność z (2.1). Ta sprzeczność kończy dowód lematu. Jako wniosek z Lematu 2.20 i Przykładu 2.18 otrzymujemy natychmiast: Twierdzenie 2.21. Istnieją języki, które są akceptowane przez pewne niedeterministyczne automaty Büchi ego, a przez deterministyczne automaty Büchi ego nie. Widzimy zatem, że niedeterministyczne automaty Büchi ego są silniejsze od ich deterministycznej wersji, tzn. że klasa języków rozpoznawanych przez DAB zawiera się w sposób właściwy w klasie języków rozpoznawanych przez NAB. 29

Rozdział 3 Inne typy ω-automatów Celem tego rozdziału jest przedstawienie kolejnych typów ω-automatów. Prezentowane tu modele obliczeń nieskończonych zaproponowane przez Müllera, Rabina oraz Streeta stanowią pewną modyfikację automatu Büchi ego. Różnica dotyczy postaci czynnika akceptującego, który w przypadku automatów Müllera będzie zadany jako zbiór podzbiorów stanów G P(S), natomiast dla automatów Rabina i Streeta jako zbiór skończonych par podzbiorów Ω = {(N i, P i ) S S : i = 1, 2,..., n}. Wprowadzenie nowych czynników akceptujących wymagało zmiany definicji słowa akceptującego przez odpowiednie automaty. 3.1. Automaty Müllera Niech Σ będzie alfabetem. Definicja 3.1. Niedeterministycznym automatem Müllera (w skrócie NAM) nad alfabetem Σ nazywamy parę M = (A, G), gdzie 1. A = (S, I, T ) jest skończenie stanową niedeterministyczną maszyną, 2. G P(S). W dalszym ciągu niedeterministyczne automaty Müllera będziemy nazywać automatami Müllera. Według powyższej definicji automat Müllera jest układem złożonym z dwóch elementów maszyny A oraz tzw. rodziny zbiorów końcowych G. Elementami G będą pewne podzbiory zbioru S. Używając takich samych oznaczeń jak w przypadku skończenie stanowych maszyn, AM możemy zilustrować za pomocą diagramu. Pojęcie automatu Müllera ma też swoją deterministyczną wersję. 30

Definicja 3.2. Deterministycznym automatem Müllera (w skrócie DAM) nad alfabetem Σ nazywamy parę M = (Ã, G) taką, że: 1. Ã jest skończenie stanową deterministyczną maszyną, 2. G P(S). W jaki sposób automaty Müllera wykonują obliczenia i akceptują słowa? Definicja 3.3. Obliczeniem automatu Müllera M na ω słowie α Σ ω nazywamy obliczenie maszyny A na α. Definicja 3.4 ([3]). Niech ρ będzie obliczeniem automatu Müllera M na pewnym ω-słowie α. Mówimy, że ω-słowo α jest akceptowane przez automat M jeśli In(ρ) G. Niech L(M) będzie zbiorem wszystkich ω-słów akceptowanych przez automat Müllera M. Definicja 3.5 ([3]). Powiemy, że ω-język L Σ ω jest rozpoznawany (akceptowany) przez AM, jeśli istnieje automat Müllera M taki, że L = L(M). Przykład 3.6. Rozważmy automat Müllera M = (Ã, G) nad alfabetem Σ = {a, b}. Poniższy rysunek pokazuje diagram przejść maszyny Ã. W zależności od tego jak zdefiniujemy zbiór G, zmieni się język rozpoznawany przez M. I tak, jeśli G 1 = {s 0 }, to wówczas automat M 1 = (Ã, G 1) akceptuje wszystkie słowa, w których symbol b występuje skończenie wiele razy; G 2 = {f}, to wtedy M 2 = (Ã, G 2) rozpoznaje język złożony ze wszystkich słów, w których a występuje skończenie wiele razy; G 3 = {{s 0 }, {s 0, f}} - w tym wypadku M 3 = (Ã, G 3) akceptuje wszystkie słowa w których albo a i b występują nieskończenie wiele razy, albo b - skończenie wiele razy; G 4 = {{f}, {s 0, f}}, to wówczas M 4 = (Ã, G 4) akceptuje wszystkie słowa w których albo a i b występują nieskończenie wiele razy, albo a - skończenie wiele razy. 31

G 5 = {s 0, f}, to M 5 = (Ã, G 5) akceptuje wszystkie słowa w których a i b występują nieskończenie wiele razy. Powyższy przykład automatu M 1 pokazuje, że deterministyczne automaty Müllera mogą rozpoznawać języki, których nie rozpozna żaden deterministyczny automat Büchi ego. Mianowicie język rozpoznawany przez M 1 z Przykładu 3.6 to dokładnie ten sam język L 1 = {α Σ ω : {n : α(n) = b} jest zbiorem skończonym}, o którym w Lemacie 2.20 wykazano, że nie jest on rozpoznawany przez żaden DAB. Jaka jest więc relacja pomiędzy DAM i DAB? Otóż klasa języków rozpoznawanych przez DAM zawiera klasę języków rozpoznawanych przez DAB. Mówi o tym następujące twierdzenie. Twierdzenie 3.7 ([1]). Niech B = (Ã, F ) będzie deterministycznym automatem Büchi ego. Wówczas istnieje deterministyczny automat Müllera M taki, że L( B) = L( M). Dowód. ([1]) Niech B = (Ã, F ) będzie DAB. Konstrukcja żądanego automatu Müllera jest następująca: Wykażemy, że L( B) = L( M). ( ) Niech α L( B) oraz M = (Ã, G), gdzie G = {G P(S) G F }. r = s 0 s 1 s 2..., będzie obliczeniem automatu B na α takim, że In(r) F. Z konstrukcji automatu M, wynika, że r jest również obliczeniem automatu M na α. Ponadto z definicji G, In(r) G. Zatem r jest obliczeniem automatu M na α, poprzez które słowo α jest akceptowane przez M. Stąd α L( M). ( ) Niech teraz α L( M). Każde obliczenie automatu M na α,jest również obliczeniem DAB na tym samym słowie. Niech r 1 będzie obliczeniem automatu M, poprzez które α jest akceptowane, tzn. takim, że In(r 1 ) G. Skoro In(r 1 ) G to In(r 1 ) F. Zatem α L( B). Znamy już związek pomiędzy DAM i DAB. Pójdźmy o krok dalej i zastanówmy się nad relacją między NAB i NAM. Okazuje się, że te dwa pojęcia są sobie równoważne. Fakt ten udowonimy w rozdziale czwartym. 3.2. Automaty Rabina Niech Σ będzie alfabetem. 32

Definicja 3.8. Niedeterministycznym automatem Rabina nad alfabetem Σ (w skrócie NAR), nazywamy parę R = (A, Ω), gdzie 1. A jest skończenie stanową niedeterministyczną maszyną, 2. t ω + Ω = {(N 1, P 1 ),..., (N t, P t )}; i {1,..., t} N i S, P i S. (3.1) Podobnie jak w przypadku automatów Müllera, automat Rabina jest układem, w którym pierwszym elementem jest pewna maszyna niedeterministyczna. Nowym komponentem jest zbiór Ω złożony z par podzbiorów zbioru stanów S. Każda para (N i, P i ) Ω zawiera w sobie informację o stanach, których pojawienie się podczas obliczeń automatu jest uznawane za rzecz negatywną (elementy N i ), bądź pozytywną (elementy P i ). Tzn. stany wchodzące w skład zbioru N i symbolizują możliwość wystąpienia niepożądanych zjawisk, np. zawieszenie maszyny; natomiast stany należące do P i zdarzenia, które uważamy za sprzyjające. Definicja 3.9. Deterministycznym automatem Rabina (w skrócie DAR) nad alfabetem Σ nazywamy parę R = (Ã, Ω) taką, że 1. Ã jest skończenie stanową deterministyczną maszyną, 2. Ω = {(N 1, P 1 ),..., (N t, P t )}; N i S, P i S, i {1,..., t}. Analogicznie jak w przypadku automatów Müllera definiuje się pojęcie obliczenia dla automatów Rabina. Tymczasem definicja słowa akceptowanego przez AR brzmi następująco. Definicja 3.10 ([1]). Niech R = (A, Ω), gdzie Ω jest postaci (3.1), będzie automatem Rabina oraz niech ρ będzie obliczeniem tego automatu na pewnym ω-słowie α. Mówimy, że R akceptuje słowo α jeżeli 1 i t ( In(ρ) N i = In(ρ) P i ). Intuicyjnie, NAR R akceptuje ω-słowo α, jeśli podczas obliczenia R na α pewne sprzyjające zdarzenia występują nieskończenie wiele razy, podczas gdy pewne związane z nimi zdarzenia niepożądane po jakimś czasie przestają występować. Niech L(R) będzie zbiorem wszystkich ω słów akceptowanych przez automat Rabina R. Definicja 3.11 ([3]). Powiemy, że ω-język L Σ ω jest rozpoznawany (akceptowany) przez AR, jeśli istnieje automat Rabina R taki, że L = L(R). Przykład 3.12. 33

Rozważmy automat Rabina R = (Ã, Ω) nad alfabetem Σ = {a, b}; à maszyną deterministyczną z przykładu 3.6. Jeśli jest Ω 1 = {({s 0 }, {f})}, to R 1 = (Ã, Ω 1) akceptuje wszystkie słowa, które zawierają skończenie wiele symboli a i nieskończenie wiele symboli b, przyjmując Ω 2 = {, {f}} otrzymamy automat R 2 = (Ã, Ω 2) rozpoznający język L = {α Σ ω α zawiera nieskończenie wiele znaków b}. Okazuje się, że moc obliczeniowa DAR i DAM jest taka sama, tzn. oba automaty rozpoznają te same ω-języki. Świadczą o tym kolejne dwa twierdzenia. Twierdzenie 3.13 ([1]). Dla dowolnego deterministycznego automatu Rabina R = (Ã, Ω) istnieje deterministyczny automat Müllera M taki, że L( R) = L( M). Dowód. ([1]) Niech R = (Ã, Ω) będzie automatem Rabina, gdzie à = (S, {s 0}, T ), Ω jak w (3.1). Konstrukcja szukanego automatu Müllera jest następująca. M = (Ã, G), gdzie G = {G P(S) (N, P ) Ω (G N = G P )} Pokażemy, że L( R) = L( M). ( ) Niech α L( R) oraz niech ρ będzie obliczeniem R na α poprzez które α jest akceptowane. Zatem 1 i t ( In(ρ) N i = In(ρ) P i. (3.2) Z konstrukcji automatu M, ρ jest również obliczeniem M na α. Z (3.2) i definicji G mamy, że In(ρ) G. Stąd α L( M). ( ) Niech teraz α L( M). Każde obliczenie M na α jest obliczeniem DAR R na tym słowie. Niech ρ 1 będzie obliczeniem M, poprzez które α jest akceptowane. Stąd In(ρ 1 ) G. Skoro In(ρ 1 ) G, to Zatem α L( R). (N, P ) Ω ( In(ρ 1 ) N = In(ρ 1 ) P ). Twierdzenie 3.14 ([3]). Dla dowolnego deterministycznego automatu Müllera M = (Ã, G) istnieje deterministyczny automat Rabina R taki, że L( M) = L( R). Dowód. ([3]) Niech M = (Ã, G), gdzie 34

1. Ã = (S, {s 0}, T ), s 0 S, 2. G P(S); t ω + G = {Q 1,..., Q t }, i {1,..., t} Q i S. będzie automatem Müllera akceptującym język L. Konstrukcja żądanego automatu Rabina R = (Ã, Ω) jest następująca. 1. Ã = (S, s 0, T ) 2. S = P(Q 1 ) P(Q 2 )... P(Q t ) S. 3. s 0 = (,,...,, s } {{ } 0 ) t 4. T : S Σ S ; ((S 1, S 2,..., S t, s), σ, (S 1, S 2,..., S t, s )) T wtedy i tylko wtedy, gdy: a) T (s, σ) = s b) jeśli S i = Q i, wówczas S i = ; c) jeśli S i Q i, to S i = (S i {s }) Q i, i = 1,..., t. 5. P i = {(S 1,..., S i,..., S t, s) S i = Q i }, i = 1,..., t. 6. N i = {(S 1,..., S i,..., S t, s) s / Q i }, i = 1,..., t. Pokażemy, że L( M) = L( R) ( ) Niech α Σ ω oraz niech ρ będzie obliczeniem deterministycznego automatu Müllera M na α. Natomiast niech ρ będzie obliczeniem automatu Rabina R na α. Twierdzimy, że ρ i ρ wzajemnie się wyznaczają. Istotnie, zauważmy, że ciąg ostatnich współrzędnych obliczenia ρ wyznacza ciąg ρ. Twierdzimy, że ρ jest obliczeniem akceptującym wtedy i tylko wtedy, gdy ρ jest obliczeniem akceptującym. Przypuśćmy, że ρ jest obliczeniem akceptującym słowo α. Wówczas i 0 Q i0 = In(ρ). Wtedy od pewnego miejsca j 0 jako ρ(j) pojawiają się tylko elementy z Q i0 i wszystkie te elementy pojawiają się cyklicznie. Niech (S 1,..., S t, s) = ρ (j 0 ). Wtedy po pewnej ilości kroków, n, obliczenie ρ zawiera wszystkie elementy z Q i0 : S i0 {ρ(j 0 ), ρ(j 0 + 1),..., ρ(j 0 + n)} = Q i0. Wtedy ρ (j 0 + n) = (S 1,..., S i0 1, Q i0,..., S t, ρ(j 0 + n)) powtarza się cyklicznie. Stan ten należy do P i0. A zatem In(ρ ) P i0. Ponieważ dla j j 0 na ostatniej współrzędnej ρ (j 0 ) pojawiają się tylko elementy z Q i0, to s In(ρ) s Q i0. Stąd (S 1,..., S t, s) In(ρ ) s In(ρ) s Q i0 (S 1,..., S t, s) / N i0. Stąd N i0 In(ρ ) =. 35

Zatem ρ jest obliczeniem deterministycznego automatu Rabina R akceptującym ω-słowo α. ( ) Niech α L( R) oraz niech r 1 będzie obliczeniem automatu R na α, poprzez które α jest akceptowane. Zatem i 0 In(ρ 1) P i0 In(ρ 1) N i0 =. Oznaczmy przez ρ 1 obliczenie deterministycznego automatu Müllera M na słowie α. Skoro (S 1,..., S i0 1, Q i0, S i0 +1,..., S t, s) In(rho 1), to wtedy Q i0 = In(ρ 1 ). Zatem ρ 1 jest obliczeniem deterministycznego automatu Müllera M na ω-słowie α. Wiemy już że DAR i DAM są sobie równoważne. Co więcej w rozdziale czwartym udowodnimy równoważność NAM, NAR i NAB. 3.3. Automaty Streeta Kolejnym rodzajem ω-automatu, który przedstawimy, jest tzw. automat Streeta. Niedeterministyczny automat Streeta (w skrócie NAS) jest parą S = (A, Ω), gdzie A oraz Ω są zdefiniowane w ten sam sposób jak dla automatów Rabina. Podobnie definicja deterministycznego automatu Streeta pokrywa się z definicją deterministycznego automatu Rabina. Warunek określający kiedy dane słowo zostanie zaakceptowane przez automat Streeta, jest dualny do warunku przyjętego dla automatów Rabina. Brzmi on następująco. Definicja 3.15 ([1]). Niech S = (A, Ω) będzie automatem Streeta oraz niech ρ będzie obliczeniem maszyny A na pewnym ω-słowie α. Mówimy, że S akceptuje słowo α jeżeli i ( In(ρ) N i In(ρ) P i = ) ( równoważnie: i jeśli In(ρ) P i to In(ρ) N i ). Niech L s (S) będzie zbiorem wszystkich ω-słów akceptowanych przez automat Streeta S. Indeks,, s został wprowadzony dla odróżnienia języka akceptowanego przez automat Streeta, od języka akceptowanego przez automat Rabina o tych samych składowych. Definicja 3.16. Powiemy, że ω-język L Σ ω jest rozpoznawany (akceptowany) przez automat Streeta, jeśli istnieje automat Streeta S taki, że L = L s (S). 36