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

Podobne dokumenty
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, automaty i obliczenia

1 Automaty niedeterministyczne

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)

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

Języki formalne i automaty Ćwiczenia 7

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

Jaki język zrozumie automat?

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

Imię, nazwisko, nr indeksu

Maszyna Turinga języki

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

Języki formalne i automaty Ćwiczenia 9

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

10110 =

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

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

Wyrażenia regularne.

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:

Języki, automaty i obliczenia

Języki, automaty i obliczenia

Obliczenia inspirowane Naturą

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

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

Hierarchia Chomsky ego Maszyna Turinga

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

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

Teoretyczne podstawy informatyki

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

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

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

Efektywność Procedur Obliczeniowych. wykład 5

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

Języki, automaty i obliczenia

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

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

1 Określenie pierścienia

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

TEORETYCZNE PODSTAWY INFORMATYKI

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Języki, automaty i obliczenia

Hierarchia Chomsky ego

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

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

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

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

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

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

1 Działania na zbiorach

Wykład 10. Stwierdzenie 1. X spełnia warunek Borela wtedy i tylko wtedy, gdy każda scentrowana rodzina zbiorów domkniętych ma niepusty przekrój.

Działanie grupy na zbiorze

Obliczenia inspirowane Naturą

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Matematyczne Podstawy Informatyki

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

O pewnych związkach teorii modeli z teorią reprezentacji

zbiorów domkniętych i tak otrzymane zbiory domknięte ustawiamy w ciąg. Oznaczamy

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

Definicja 2. Twierdzenie 1. Definicja 3

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

Podstawowe struktury algebraiczne

Prawa wielkich liczb, centralne twierdzenia graniczne

Rachunek prawdopodobieństwa Rozdział 2. Aksjomatyczne ujęcie prawdopodobieństwa

Złożoność obliczeniowa

Matematyka dyskretna. 1. Relacje

3.Funkcje elementarne - przypomnienie

Rozważmy funkcję f : X Y. Dla dowolnego zbioru A X określamy. Dla dowolnego zbioru B Y określamy jego przeciwobraz:

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

Kombinowanie o nieskończoności. 3. Jak policzyć nieskończone materiały do ćwiczeń

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

Teoretyczne podstawy informatyki

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

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

Poprawność semantyczna

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Lista zadań - Relacje

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Teoria automatów i języków formalnych. Określenie relacji

Relacje binarne. Def. Relację ϱ w zbiorze X nazywamy. antysymetryczną, gdy x, y X (xϱy yϱx x = y) spójną, gdy x, y X (xϱy yϱx x = y)

Teoretyczne Podstawy Informatyki

Symbol, alfabet, łańcuch

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

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

Grupy, pierścienie i ciała

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

Teoretyczne podstawy informatyki

Odwrócimy macierz o wymiarach 4x4, znajdującą się po lewej stronie kreski:

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

Działanie grupy na zbiorze

Problemy Decyzyjne dla Systemów Nieskończonych

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

(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

IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I

Indukcja matematyczna. Zasada minimum. Zastosowania.

Zastosowania wyznaczników

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Transkrypt:

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 liczbie ilorazów] Jeśli L regularny to liczba ilorazów L jest skończona, liczba stanów automatu jest nie mniejsza niż liczba ilorazów, gdzie ilorazy zdefiniowane są następująco: L/u = { w : uw L } [ogłupianie automatu] Po wczytaniu danego słowa automat nie może rozróżnić więcej następnych słów niż liczba stanów.

Typowe zastosowania kryteriów na nieregularność Lemat o pompowaniu stosuje sie zazwyczaj w stowarzyszeniu z następującymi faktami (dowodzonymi potem): Lemat Język jest akceptowany przez automat skończony wtw gdy jest regularny. Przecięcie i dopełnienie teoriomongościowe języków regularnych jest językiem regularnym. Przykłady. Następujące języki nie są regularne: {a n b n : n 1}, {a n : n jest liczbą pierwszą} L = zbiór binarnych zapisów liczb pierwszych L = zbiór binarnych zapisów kwadratów liczb naturalnych Lemat Niech 0 < r < 1. L = {x (0 1) + wtw gdy r jest wymierne. : [0.x] 2 > r } jest regularny

Automat ilorazowy Lemat Niech L będzie językiem akceptowanym przez det. automat skończony. Minimalna liczba stanów det. automatu skończnego akceptującego L jest równa liczbie różnych ilorazów L Uzasadnienie. Wiemy, że L jest akceptowany przez aut. skończony, zatem liczba jego ilorazów jest skończona. Konstruujemy tzw. automat ilorazowy: A = (Σ, Q, δ, q 0, F ), gdzie : Q - zbiór ilorazów L; q 0 = L/ε = L; F = { X : ε X }; δ(x, a) = X /a dla a Σ.

Przykład Niech Σ = {a, b} oraz L = Σ a Σ n. Wtedy wszystkie ilorazy { L/w : w Σ n+1 } są parami różne. Rozmiar zbioru Σ n+1 wynosi 2 n+1. Zatem deterministyczny automat akceptujący ten język musi mieć co najmniej 2 n+1 różnych stanów. Taki automat istnieje.

Algebra ilorazów Mając wyrażenie regularne możemy je dzielić przez kolejne litery słowa, sprowadzając dzielenie do coraz prostszych wyrażen. (X Y )/a = X /a Y /a (X Y )/a = X (Y /a) X /a ε(y ), gdzie ε(y ) = ε if ε Y, wpp. ε(y ) = X /a = X (X /a) Dla małych wyrażeń możemy policzyć ręcznie wszystkie ilorazy (jako wyrażenia regularne), wąskim gardłem jest sprawdzanie, które z tych wyrażeń są parami równe. W ten sposób mamy pewną bardziej konstruktywną metodę liczenia automatu ilorazowego. Potem podamy algorytm efektywniejszy, działający w czasie wielomianowym ze względu na łączny rozmiar wejścia i wyjścia.

Przykłady operacji na automatach Dla języka L = L(A) rozważmy jezyki: 1 L = {w : ww L} 2 L = {w : k 1 w k L} 3 L = {w : w L} Dowodzimy regularności tych języków konstruując automat transformacyjny T (A). Zbiorem stanów T (A) sa wszystkie funkcje (transformacje) f : Q Q Dla a Σ oznaczmy δ a = δ(, a). W automacie funkcyjnym stan początkowy to identyczność. Funkcja przejść δ to: δ (f, a) = f δ a.

Operacje na automacie c.d. Niech F będzie zbiorem stanów akceptujących automatu A, a q 0 jego stanem początkowym. Biorąc odpowiedni zbiór F stanów akceptujących pokazać można, że każdy z języków (1-3) jest regularny. Zbiorem stanów akceptujących F w T (A) jest, zależnie od przypadku: F = { f : f 2 (q 0 ) F } F = { f : f k (q 0 ) F dla pewnego k 1 } F = { f : f 2 (q 0 ) F dla każdego k 1 }

Niedeterministyczne automaty skończone Niedeterministyczny automat skończony jest formalnie również opisany piątką obiektów: A = (Σ, Q, δ, Q 0, F ), gdzie δ jest funkcją niedeterministyczną (relacją): δ Q Σ podzbiory Q a zamiast jednego stanu początkowego mamy zbiór Q 0 stanów początkowych. Automat może niedeterministycznie rozpocząć działanie w jednym z nich. Piszemy q a q gdy q δ(q, a). Niech będzie domknięciem tej relacji ze względu na wszystkie słowa. Podobnie jak poprzednio: L(A) = { w Σ : ( q Q 0, q F ) q w q }

Konstrukcja automatu potęgowego Twierdzenie Dla każdego automatu niedeterministycznego A = (Σ, Q, Q 0, δ, F ) istnieje równoważny automat deterministyczny (taki, że L(A) = L(P(A))). Konstrukcja automatu potęgowego. Skonstruujemy automat P(A), równoważny A, nazywany automatem potęgowym dla A. Automat P(A) jest reprezentowany przez piątkę P(A) = (Σ, Q, q 0, δ, F ), gdzie, q 0 = Q 0, F = {X : X F }, δ (X, a) = {q Q : q X q a q } Q jest rodziną zbiorów stanów osiągalnych z Q 0 za pomocą operacji δ. Elementy Q nazywamy warstwami.

Jeśli A, = (Σ, Q, Q 0, δ, F ) jest automatem (deterministycznym lub nie) to przez A R oznaczmy automat który ma taki sam zbiór stanów i alfabet wejściwy Σ i spełnia A R różni sie od A następująco: (L(A) R = L(A R ). Zbiór stanów początkowych A R jest równy F ; Zbiór stanów akceptujących A R jest równy Q 0 ; a ( a Σ) q A R q q w A q Dla dowolnego słowa w Σ zachodzi: q w A R q q w A q.

Przykład automatu niedeterministycznego Niech Σ = { a, b }. Poniższy automat A, dla k = 6, akceptuje język L = Σ a Σ k 1. Automat sprawdza czy k-ta pozycja od końca jest jedynką. Po odwróceniu strzałek i zamiany stan akceptujący początkowy otrzymujemy automat deterministyczny A akceptujący L R = Σ k 1 a Σ mający tylko k + 1 stanów. k = 6: automat niedeterministyczny mający n = k + 1 stanów dla którego minimalny automat det. ma 2 n 1 = 64 stany.

Przykład automatu niedeterministycznego c.d. Najmniejszy automat deterministyczny akceptujący L(A) ma 2 k stanów, co wynika z konstrukcji potęgowej (podzbiorowej), gdyż mamy 2 k warstw osiągalnych z {q 0 }. Każda warstawa jest podzbiorem [0..k] zawierającym 0. Zamiast konstrukcji potęgowej możemy skonstruować automat deterministyczny pamiętający ostatnie k wczytanych symboli: Q = Σ k ; q 0 = 0 k ; δ(a 1 a 2... a k, s) = (a 2 a 3... a k s); F = { a 1 a 2... a k : a 1 = 1 }. Jeśli alfabet jest binarny to graf automatu jest grafem DeBruijna.

Graf de Bruijna jako automat deterministyczny akceptujący {0, 1} 1 {0, 1} 2. Stany akceptujące zaczynaja się jedynką.

Przykład automatu niedeterministycznego o trudnej determinizacji Niech Σ = { a, b }. Poniższy niedeterministyczny automat A akceptuje język trudny dla automatu deterministycznego. Stan akceptujący jest jednocześnie jedynym stanem początkowym.. Jeśli A ma n stanów to najmniejszy automat deterministyczny akceptujący L(A) ma dokładnie 2 n stanów (ekstremalny przypadek).

Kontynuacja Zbiór stanów A to Q = {1, 2,... n}. Pokażemy, że ze zbioru {1} można osiągnąć w P(A) każdy podzbiór Q. Przykład. n = 6, generacja {1, 3, 5} : {1} a4 {1, 2, 3, 4, 5} ab {2, 3, 4, 5, 6} aa {1, 2, 4, 5, 6} b {2, 4, 5, 6} aa {1, 2, 4, 6} b {2, 4, 6} a {1, 3, 5}. Podzbiory Q utożsamiamy z ciągami binarnymi je reprezentującymi. Mamy operację cyklicznego przestawiania ciągu (ostatni element na początek) za pomoca przejścia a lub ab. Poza tym możemy zamieniać pierwszy bit na zero poprzez przejście b. Teraz wystarczy jedynie początkowo wygenerować zbiór Q za pomocą a n, otrzymując 1 n. Potem przesuwając cyklicznie i zerując pierwszy bit otrzymamy dowolną konfigurację.

Inny przykład automatu niedeterministycznego Niech Σ = { a, b }. Inny przykład niedeterministycznego automatu akceptującego język trudny dla automatu deterministycznego. Stan akceptujący jest jednocześnie jedynym stanem początkowym.. Jeśli A ma n stanów to najmniejszy automat deterministyczny akceptujący L(A) ma dokładnie 2 n stanów

Automatu deterministyczny o trudnej odwrotności Poniższy automat deterministyczny A ma n stanów. Stan akceptujący jest jednocześnie jedynym stanem początkowym.. Dla tego automatu niedeterministyczny automat odwrócony A R ma też n stanów, ale deterministyczny automat równoważny A R musi mieć co najmniej 2 n stanów. Jest to przypadek ekstremalny dla operacji odwracania automatu deterministycznego.

Pseudo-zastosowanie automatów niedeterministycznych Zamek w sejfie jest okręgiem na którym są cyklicznie ułożone przyciski binarne: 1 (otwarty przycisk), 0 (zamknięty). Przed wykonaniem każdej operacji zamek losowo rotuje (przesuwa się cyklicznie). Przyciski są nieodróżnialne a ich stan nie jest znany (poza momentem otwarcia zamka). Pojedyncza operacja to ciąg n-bitowy (i-ty bit jest równy jeden, Ā i (n) = 1, gdy wciskamy przycisk i). Wciśnięcie przycisku zmienia jego stan zerojednkowe na przeciwny. Stan zamka to klasa rówoważności cyklicznej słów binarnych długości n. Zamek się otwiera automatycznie, gdy wszystkie przyciski mają tę samą wartość 1 (są otwarte) lub 0 (są zamknięte). Problem: podać sztywny ciąg operacji Ā(n) który zawsze otwiera zamek. Niezależnie od losowych rotacji i losowej konfiguracji początkowej w pewnym momencie wszystkie przyciski są w tym samym stanie.

Rozważymy na razie tylko przypadek n = 4, konfiguracje, w których nie wszystkie przyciski są w tym samym stanie Możliwe konfiguracje (jako reprezentanci klas cyklicznej równoważości to 1 :, 2 :, 3 :. Na przykład konfiguracja 1 oznacza sytuację gdy jeden przycisk jest inny od wszystkich pozostałych, chociaż nie wiemy jaki ma on status. Możemy wykonać 3 sensowne ruchy: a: zmienić stan jednego przycisku (równoważne zmianie trzech) b: zmienić stan 2 sąsiednich przycisków c: zmienić stan 2 niesąsiednich przycisków

Po zdeterminizowaniu poniższego automatu znajdujemy, że najkrótszy ciąg otwierający zawsze sejf dla n = 4 to 7-elementowy ciąg cbcacbc, prowadzi on do stanu w zdeterminizowanym automacie. Automat niedeterministyczny dla n = 4, wszystkie stany są akceptujące i początkowe. Ciąg otwierający sejf to słowo nieakceptowane przez ten automat.

Rozważmy problem dla dowolnego n, tym razem żądamy by wszystkie przyciski znalazły sie jednocześnie w stanie 1 (otwarte). Problem: podać sztywny ciąg operacji Ā(n) który zawsze otwiera zamek. Niezależnie od losowych rotacji i losowej konfiguracji początkowej w pewnym momencie wszystkie przyciski są w stanie 1. Rozważamy ciągi typu X (n), które mają tutaj długość 2 n 1. X last (n) oznacza ostatni element ciągu.

Zdefiniujmy operację X (n) X (n) = ( X 1 (n) X 1(n), X 2 (n) X 2(n),... X last (n) X last (n) ). Przykład: (01, 11, 10) (10, 11, 00) = (0110, 1111, 1000).

Wzory rekurencyjne. Niech Z(n) będzie ciągiem, którego wszystkie elementy są równe 0 n. Ā(n) będzie rozwiązaniem (ciągiem otwierającym) dla n będących potęgami dwójki, elementy Ā(n) są słowami binarnymi n-bitowymi. Długość ciągu to 2 n 1. Niech Ā(2) = (11, 01, 11) oraz niech dla n 2: B(n) = Ā(n) Ā(n) C(n) = Z(n) Ā(n) Ā(2n) = ( B(n), C 1 (n), B(n), C 2 (n),... B(n); C last (n), B(n) ).

Fakt. Problem cyklicznego zamka ma rozwiązanie wtedy i tylko wtedy gdy n jest potęgą dwójki. Uzasadnienie. (n jest potęgą dwójki) Sekwencja B(n) utożsamia przyciski znajdujące się naprzeciwko siebie(względem środka cyklicznego zamka). Inaczej mówiąc przyciski i, i + n/2 są jednocześnie wciskane albo jednocześnie nie wciskane. Natomiast sekwencja C(n) ustawia przciski i, dla i > n/2 tak, aby każde i było w tym samym stanie co i + n/2.

(n nie jest potęgą dwójki) Pokażemy niemożliwość rozwiązania na przykładzie n = 12, rozważmy tylko przyciski 1, 5, 9 rozłozone równomiernie na cyklu. Jeśli przyciski 1 i 5 mają różne wartości, to dla każdej operacji (na wszystkich przyciskach) tak możemy pokręcić zamkiem, że 1 i 5 dalej będą mieć różne wartości. Czyli jest ciąg rotacji będący kontrprzykładem dla każdego ciągu Ā(n). Komentarz. Pokazaliśmy, że dla potęg 2 istnieje rozwiązanie długści co najwyżej 2 n 1. Jeśli chcemy tylko dojść do konfiguracji że wszystkie przyciski mają tę samą warość to np. dla n = 4 wystarczy i potrzeba 7 ruchów, zamiast 15, a dla n = 8 wystarczy 125 ruchów, poczas gdy 2 8 1 = 255. Pytanie: jakie są naprawdę minimalne długości rozwiązań?