J ezyki Automaty i Obliczenia (nieformalne notatki)
Transkrypt
J ezyki Automaty i Obliczenia (nieformalne notatki)
Jezyki Automaty i Obliczenia , (nieformalne notatki) W. Rytter Jezyki formalne i podstatwowe operacje, wyrażenia regularne standardowe i rozeszerzone , (z operacjami dopeÃlnienia i przeciecia), przykÃlady. , Na ćwiczeniach standardowe wyrażenia regularne dla zbioru tekstów binarnych nie zawierajacych 111, nie zawierajacych 1111. , , Gramatyka G = (N, T, P, S). Hierarchia Chomsky’ego gramtyk: (0) kombinatoryczne (bez ograniczeń) (1) kontekstowe (2) bezkontekstowe (3) jednostronnie liniowe. Na ćwiczeniach przykÃlady gramatyk dla: 2 {an : n ≥ 1}, {x#x : x ∈ (a ∪ b)∗ }, {an bn cn : n ≥ 1}, {x ∈ (a ∪ b ∪ c)∗ : #a (x) = #b (x) = #c (x)}, n {a2 : n ≥ 1}. Hierarchia automatów (automaty z pamieci , a, typu T ): (0) maszyny Turinga (T = taśma) (1) liniowo ograniczone (T = taśma o dÃlugości liniowej) (2) stosowe (T = stos ) (3) skończone (T = ∅). Może też być T = kolejka (kolejki), licznik (liczniki). Twierdzenie: (dowód w cześciach na wielu wykladach) , Gramatyki typu i odpowiadaja, automatom typu i, i = 0 . . . 3. 1 Automaty skończone Deterministyczne automaty skończone: A = (Σ, Q, δ, q0 , F ). PrzykÃlady. Dowody na to że jezyk nie jest akceptowany przez automat skończony, lemat , o pompowaniu, lemat o skończoej liczbie ilorazów, metoda bezpośrednia korzystajaca z tego, , że jest za maÃlo pamieci. Przećwiczyć na jezykach: , , n n n {a b : n ≥ 1}, {a : n jest liczba, pierwsza, }, L = {zbiór binarnych zapisów liczb pierwszych}. Konstrukcja algebraiczna automatu kanonicznego (ilorazowego), jest to automat minimalny. Stany sa, ilorazami jezyka przez wszystkie możliwe sÃlowa. Przerobić taka, konstrukcje, , na ćwiczeniach np. dla L = Σ∗ ababΣ∗ , gdzie Σ = {a, b}. Wzory na ilorazy wyrażeń regularnych. L ⊆ 1∗ implikuje L∗ regularny (na ćwiczeniach). L = {x ∈ (0 ∪ 1)+ : [0.x]2 > r } regularny wt. i tylko wtedy gdy r wymierne (dla 0 < r < 1). Na ćwiczeniach przykÃlady konstrukcji automatów dla konkretnych r. Automaty skończone niedeteterministyczne. Determinizacja. L regularny to LR też. PrzykÃlady na to że determinizacja puchnie wykÃladniczo. Jezyki , {xcy : i-ta litera w x różna od i-tej w y dla i ≤ n, x, y ∈ (a ∪ b)∗ } {x : n-ta litera od końca x jest równa 1, x ∈ (0 ∪ 1)∗ }. (DokÃladna konstrukcja minimalnych automatów deterministycznych i niedeterministycznych dla powyższych jezyków na ćwiczeniach dla n = 3). , L regularny to jezyk , q (L) = {x : x2 ∈ L } też regularny, podobnie dla jezyka , {x : xk ∈ Ldla pewnego k } (oba dowody na ćwiczeniach) Automaty dla problemu string-matching’u (dopasowania wzorca) Akceptacja jezyka Σ∗ Y , gdzie Y jest zbiorem wzorców. Na poczatku Y = {y}, jeden , , wzorzec. Dwie metody konstrukcji. 2 Metoda 1: poprzez tablice, F . F [i] = max dÃlugość wÃlaściwego sufiksu sÃlowa y[1..i] bed prefiksem wzorca. Tablice, , , acego F liczymy w czasie liniowym. Nastepnie tworzymy ”szkielet” automatu, stany to {0..n}, , δ(i − 1, y[i]) = i dla 1 ≤ i ≤ n. Dla pozostaÃlych przejść δ(i, a) = δ(F [i], a). na ćwiczeniach przykÃladowe konstrukcje automatów dla jednego lub wielu wzorców. Udowodnić, że determinizacja naiwnego automatu niedeterministycznego dla string-matchingu dla jednego lub wielu wzorców nie zwieksza liczby stanów (rozpatrujemy jedynie stany osiagalne ze stanu , , poczatkowego). , Udowodnić: w automacie dla jednego wzorca jeśli usuniemy tranzycje prowadzace do stanu 0 , to mamy co najwyżej 2n-1 tranzycji. Czyli rozmiar opisu automatu niezależny od wielkości alfabetu. ZaÃlóżmy, że dla każdego stanu automatu trzymamy ”tranzycje” w liście posortowanej wzgledem ”dÃlugości” stanu do którego tranzycja prowadzi. Majac , taki automat możemy , wykonywać string-matching brutalnie, w danym momencie szukamy tranzycji dla danej litery przeszukujac , liste, liniowa. , Udowodnić (na ćwiczeniach) że w sumie daje to liniowy, niezależny od alfabetu, algorytm dla string-matchingu. Dla automatu dla wielu wzorców podać przykÃlad gdy zbiór tranzycji prowadzacych do , stanów istotnych (różnych od zera lub korzenia drzewa wzorców) istotnie zależy od rozmiaru alfabetu (np. zbiór wzorców: {a, b, c, . . . , z m } Automat dla wielu wzorców możemy konstruować podobnie jak dla jednego uogólniajac , tablice, F . W tym wypadku stany odpowiadaja, prefiksom wzorców, ”szkielet” automatu jest drzewem. Przejście jest w szkielecie ”do przodu” jeśli z prefiksu u prowadzi do pewnego prefiksu ua. PozostaÃle przejścia sa, ”w tyÃl”. Udowodnić na ćwiczeniach że bezpośrednie rozszerzenie algorytmu obliczania F na drzewo daje czas O(|x1 | + |x2 | + . . . |xk |) gdzie x1 , x2 , . . . xk sa, wzorcami. Metoda 2: (bezpośrednio). Dla wielu wzorców ”bezpośrednia” metoda polega na przechodzenia drzewa T prefiksów wzorców metoda, BFS. Na poczatku tworzymy automat poziomu zerowego, jest to zapetlony , , (dla każdego symbolu) korzeń drzewa T . W kolejnym kroku k = 1, 2, . . . tworzymy automat dla zbioru Σ∗ {u1 , u2 , . . . uk } gdzie 3 {u1 , u2 , . . . uk } sa, wszystkimi prefiksami z T dÃlugości co najwyżej k. Nastepnie tworzymy automat dla nastepnego poziomu. , , Dla każdego a ∈ Σ, |ui | = k oraz ui a bed prefiksem pewnego wzorca wykonujemy: , , acego γ:=δ(ui , a); δ(ui , a) := ui a; δ(ui a, b) := γ b gdy γ b jest prefiksem pewnego wzorca else δ(ui a, b) := δ(γ, b). Na przykÃlad jeśli zbiór wzorców jest {abab, babb, bba} i mamy automat dla zbioru z poziomu 2ego {ab, ba, bb} to automat dla nastepnego poziomu możemy zaczać , od liczenia ”tranzycji” , dla stanu odpowiadajacego prefiksowi bab, tworzac prefiksowi bab, , , nowy stan odpowiadajacy , oraz kopiujac , przejścia dla nowego stanu ze stanu γ = ab, do którego prowadzi przejście etykietowane b ze stanu ui = ba , poza przejściem δ(bab, a = γ a) gdyż γa jest prefiksem pewnego wzorca. 1 a a b a a b b a a a b b b a a b a b b b 5 b b b a b Rysunek 1: Niech zbiorem wzorców bedzie X = {abab, babb, bba}. Konstrukcja przejść dla , stanu bab na 3cim poziomie majac , automat dla prefiksów 2ego poziomu, mamy tutaj γ = ab. Ze stanu bab prowadzimy przejścia do stanów δ(γ, b) oraz γa gdyż γa ∈ T . Automat dla 3ego poziomu bedziemy mieć dopiero po przetworzeniu wszsytkich elementów drzewa prefiksów T , z 3ego poziomu (aba, bab, bba). Automaty dla wszystkich sufksów i wszystkich podsÃlów Automat sufiksowy (podsÃlów): akceptujacy wszystkie sufiksy (podsÃlowa) zadanego sÃlowa x , dÃlugości n. Minimalny automat ma O(n) stanów i O(n) istotnych tranzycji (nie prowadzacych , do stanu-puÃlapki ’reject’). 4 Pry okazji ekspozycja podejścia algebraicznego: Twierdzenie Mychilla-Neroda. L jest regularny < − > L jest suma, pewnej liczby klas równoważości relacji prawostronnie zamknietej ze wzgledu na konktenacje, , , , tzn. x ≡ y → xa ≡ ya dla każdego symbolu a. Zastosowanie: niech x ≡ y ⇔ P os(x) = P os(y). L1 = zbiór sufiksów danego tekstu, L2 = zbiór podsÃlów. L1 i L2 sa, suma, pewnej liczby klas abstrakcji, oraz ≡ jest prawostronnie zamknieta. , Konstrukcja automatu sufiksowego: akceptujacy wszystkie sufiksy dla danego tekstu dÃlugości , n. Konstrukcja minimalna. Stanami sa, zbiory P os(w), dla wszystkich podsÃlów, P os(w) = zbiór pozycji w danym tekscie kończacych wystapienia w} , , δ(P os(w), a) = P os(wa). ZakÃladamy, że P os(²) = {1..n}. Stany akceptujace postaci P os(w), , gdzie w jest sufiksem tekstu. {1,2,3,4,5} b a {1,3,4} {2,5} a a a {4} (3} b {5} Rysunek 2: Automat sufiksowy dla sÃlowa abaab, stanami sa, zbiory pozycji kończacych , wystapienie podsà l owa, akceptuj acymi s a zbiory zawieraj ace 5, stan ∅ jest pomini ety, prowadz a, , , , , , do niego brakijace ”strzaÃlki”. , Automat sufiksowy ma co najwyżej 2n stanów. Policzyć dokÃladnie liczbe, stanów i tranzycji dla sÃlowa postaci abn−2 c. Liczba tranzycji w automacie sufiksowym, które nie prowadza, do stanu ∅ nie przekracza 3n 5 (przerobić dokÃladniej na ćwiczeniach). Determinizacja ”naturalnego” niedeterministycznego automatu dla sufiksow daje minimalny automat deterministyczny. Udowodnić to na ćwiczeniach. Niedeterministyczny automat ”naturalny” definiujemy nastepuj aco: jeśli sÃlowo jest równe a1 a2 ..an to zbiór stanów , , [0..n], δ(i, ai+1 ) = i + 1 dla i > 0. δ(0, a) = {i : ai = a}. ZakÃladamy, że tekst kończy sie, wyróżnionym symbolem. PrzeksztaÃlcenie drzewa sufiksowego na automat sufiksowy: utożsamiamy korzenie izomorficznych poddrzew, otrzymujemy prawie dobry ”szkielet” atomatu sufiksowego. Stanami sa, posklejane wezà , ly drzewa sufiksowego. Do danego wezà , la v wybieramy tranzycje, o najdÃluższej etykiecie (sÃlowie) c1 c2 . . . ck . tworzymy k −1 dodatkowych stanów pośrednich odpowiadajacych sÃlowom cj cj+1 . . . ck dla 1 ≤ , j < k. Jeśli mamy tranzycje, do v o etykiecie ci ci+1 . . . ck to zamieniamy to na tranzycjetykietowan a, , ci do stanu odpowiadajćego ci+1 . . . ck . Na ćwiczeniach: zrobić przykÃlady, udowdnić, że konstrukcja za pomoca, drzewa sufiksowego jest poprawna. Udowodnić, że automat którego stanami sa, zbiory P os(w) ma minimalna, liczbe, stanów dla jezyka wszystkich sufiksów. Konstrukcje przykÃladowych automatów sufiksowych. Znależć , przykÃlad gdy minimalny automat sufiksowy nie jest minimalnym automatem akceptujacym , wszystkie podsÃlowa (stanami akceptujacymi s a teraz wszystkie stany automatu sufiksowego). , , Wziać , tekst abcbc. Automaty skończone z wyjściem typu Mealy (wyjście zależy od stanu i czytanego symbolu) i typu Moore’a (wyjście zależy tylko od stanu). PrzeksztaÃlcanie jednych na drugie (na wykÃladzie i na ćwiczeniach). PrzykÃlad: na wejściu pary cyfr dwu liczb poczawszy od najmniej , znaczacych pozycji, automat wypisuje kolejne cyfry sumy (różnicy). Udowodnić, że kolejnych , cyfr iloczynu automat nie wypisze. Gramatyki jednostronnie liniowe i automaty: równoważność (w sensie mocy) takich gramatyk i automatów. Na ćwiczeniach przerobić przjście od gramatyk jednostronnie liniowych do automatów i odwrotnie. Pokazać, że dla gramtyki liniowej jezyk może nie być regularny. , Synteza automatu: wyrażenie reg. → automat niedeterministyczny z ²-przejściami → automat bez ²-przejść. Synteze, przeprowadzamy w ten sposób, że otrzymujemy automat znormalizowany, tzn. 6 1) jeden stan akceptujacy z którego ”nic nie cwychodzi”; , 2) z każdego stanu albo tylko jedno przejście, albo tylko dwa przejścia i wtedy oba pustym sÃlowem; 3) nie ma ²-cyklu Problem: dane wyr. reg. W rozmiaru m (operacje ·, ∪,∗ ) i sÃlowo dÃlugości n, sprawdzić czy w ∈ W . Istnieje algorytm o zÃlożoności O(m · n): symulacja ²-automatu, bez determinizacji. Dane rozszerzone wyrazenie regularne W i text w, pokazac ze mozna w czasie wielomianowym (wzgledem n + m) sprawdzic czy x ∈ W . Analiza automatu: automat skończony niedet. → wyrażenie regularne. Dwie metody: Metoda I: rozwiazywanie równań, korzystajac / A to , , z tego że jeśli ² ∈ rozwiazaniem równania X = AX ∪ B jest A∗ B. , Metoda II: podobnie jak domkniecie tranzytywne macierzy boolowskiej. , Jezyki regularne zamkniete ze wzgl”du na operacje − i ∩. , , Na ćwiczeniach dużo! przykÃladów analizy i syntezy automatu. Rozmiar wyrażeń regularnych w stosunku do rozszerzonych wyrażeń regularnych Wyrażenie standardowe dopuszcza jedynie operacje ∪, ·, ∗ , wyrażenie rozszerzone dodatkowo ∩, −. Jezyk skÃladajacy sie, z jednego sÃlowa (. . . ((a20 a1 )2 )a2 )2 ) . . .)2 an ) daje sie, opisać semi, , rozszerzonym wyrażeniem (bez operacji -) rozmiaru O(n) natomiast standardowe wyrażenie ma rozmiar Ω(2n ). Na ćwiczeniach dokÃladna konstrukcja wyrażenia. Można nie używać operacji ∩ i jednorazowo zastosować operacje, −, wtedy jest podobnie. Z tego wynika: najkrótsze sÃlowo które nie jest akceptowane przez niedeterministyczny automat skończony o n stanach może mieć dÃlugość wykÃladnicza., Skonstruować taki automat na ćwiczeniach. Istnieje rozszerzone wyrażenie regularne rozmiaru n takie, że równoważne normalne wyrażenie n regularne ma rozmiar Ω(22 ). Trudne. Automaty skończone jako opis obrazów czarnobiaÃlych, przykÃlady. Wielomianowy algorytm dla problemu 2-wymiarowego string-matchingu dla tak zdefiniowanych tekstów dwuwymiarowych. 7 Minimalizacja det. automatu skończonego. Dwa stany sa, i-równoważne, gdy sa, równoważne z dokÃLadnościa, do sÃlów dÃlugości co najwyżej i. Niech Ri relacja i-równoważności. Wtedy Ri = Ri+1 implikuje Ri = Ri+2 oraz Ri jest końcowa, relacja, równoważności stanów. Sklejamy klasy równoważnych stanów, w rezultacie otrzymujemy automat minimalny (zÃlożony ze stanów osiagalnych ze stanu poczatkowego). , , 0 Podejście teorigrafowe: tworzymy graf G, wezà , ly = pary stanów, (δ(s.a), δ(s , a)) → (s, s0 ) dla każdej pary stanów s, s0 i symbolu a ∈ Σ. Stany s, s0 nie sa, równoważne, wtedy i tylko wtedy gdy istnieje w G ścieżka od F × (Q − F ) do (s, s0 ) (udowodnić). Daje to algorytm O(n2 ) na minimalizacje, automatu. Równoważność det. automatów skończonych. L à atwiej sie, sprawdza równoważność dokÃladnie dwóch stanów q1 , q2 tego samego automatu (można dwa automaty zÃlaczyć w jeden jako suma rozÃlaczna). Poczatkowo mamy podzial, na , , , bloki bed singletonami. Wstawiamy pare, (q1 , q2 ) do kolejki K. Nastepnie dopóki kolejka , , ace , niepusta wykonujemy: (p, q) := delete(K); A := F ind(p); B := F ind(q); jeśli A 6= B to U nion(A, B), insert((δ(p, a), δ(q, a)), K) dla każdego a ∈ Σ. Na końcu sprawdzamy czy jakiś blok zawiera jednocześnie stan akceptujacy i nieakceptujacy, , , wtedy (i tylko wtedy) poczatkowe stany nie sa, równoważne. Udowodnić na ćwiczeniach , poprawność tego algorytmu. Algorytm dziaÃla w czasie O(n log∗ n), jeśli alfabet jest staÃlego rozmiaru. ZÃlożoność problemów dla automatów i wyrażeń. Problem membership dla standardowych wyrażeń w czasie O(n · r) gdzie r dÃlugość wyrażenia, n dÃlugość tekstu. Algorytm poprzez symulacje automatu. Problem membership dla rozszerzonych wyrażeń regularnych w czasie wuelomianowych metoda, programowania dynamicznego. Zrobić dokÃladniej na ćwiczeniach. Inne problemy: czy jezyk jest pusty, nieskończony (w czasie wielomianowym). Czy zawiera , wszystkie sÃlowa (problem W = Σ∗ ) jest P-space zupeÃlny. Ostatni problem ma zÃlożoność pamieciow a, Ω(2n ) gdy mamy standardowe wyrażenia i dodatkowo operacje, potegowania, np. , , 13 ∗ ∗ (ab ∪ bbb) ∪ (a ∪ bb) = Σ . 8 Systemy automatów komórkowych System automatów skończonych znacznie ”silniejszy” niż pojedyńczy automat skończony. Automaty umieszczone sa, w punktach k-wymiarrowej ”kraty”. Rozważamy jedynie k = 1, k = 2. Istotna jest jednorodność, wszystkie automaty takie same, poza być może brzegowymi. PrzykÃlad systemu: gra Życie. Automaty w stanie 0 lub 1 (martwy lub żywy). Sasiedztwo: 8 , automatow z boku . Automat przeżywa gdy 1 < liczba sasiadów < 4, ”rodzi sie” , , gdy liczba sasiadów = 3 i poprzednio w danym miejscu nie byÃlo automatu (stan 0). , Podać na ćwiczeniach przykÃlady systemów stabilnych dowolnie dużych, (na przykÃlad prostokat 45o ), przesuwajacych sie, (periody, 2 × n ustawiony pod katem , , , , oraz ”oscylujacych” cznych). PrzykÃlad (innego) systemu który sie, rozmnaża, najpierw bardzo prosty: system 2-wymiarrowy, stany 0 lub 1, sasiedzi 4 z boku, parzysta liczba żywych sasiadów to automat ginie, jeśli puste , , miejsce ma nieparzyzsta, liczbe, żywych sasiadów to pojawia sie, automat. Po pewnym czasie , mamy 4 takie same (jak poczatkowa) konfiguracje, potem 16 itd. Na ćwiczeniach zrobić , przykÃlady. PrzykÃlad (innych) systemów rozmnażajacych sie, dla automatów z dowolnie duża, liczba, , stanów (patrz praca Amoroso & Cooper, Tesselation structures for reproduction, JCSS vol. 5 (1971)). Jednowymiarrowe sasiedztwo: automat z lewej (1 sasiad), 2-wymiarrowe: z lewej i , , z doÃlu (dwóch sasiadów). Stany [0..A − 1]. Nastepny stan suma modulo A, gdzie suma jest , , suma, arytmetyczna, stanów sasiadów (w przypadku 1-wymiarrowym jednego sasiada) i siebie. , , Poczatkowa konfiguracja: stany w komórkach ujemnych i wiekszych niż k sa, zerowe. Dla , , systemu jednowymiarrowego udowodnić Na ćwiczeniach że po n = A · k! krokach system sie, powtórzy na miejscach od n-tego, a na poczatkowych k miejscach bedzie to samo co na , , poczatku. , Dla systemu jednowymiarrowego³udowdnić, że ”kontrybucja” pola x odleglego od danego ´ t pola o d (w lewo) po czasie t wynosi d (Tzn. jest to wspóÃlczynnik przy poczatkowej wartości , w polu x. Jeśli 0 < d ≤ k, n = Ak! to ³ ´ n d (oraz ³ n n−d ´ ) jest podzielne przez A PrzykÃlad dla liczby stanów A = 3 i poczatkowego rozmiaru k = 4: , 1221 → 10101 → 111111 → 1222221 → 10111101 → 111222111 → 1220110221 → 10121212101 → 111000000111 → 1221000001221. 9 A wiec , 1221 sie, rozmnożyÃlo (chociaż szybciej niż w ogólnym przypadku), stany 0 traktujemy jako puste. Na ćwiczeniach zrobić przykÃlady dla systemu 2-wymiarrowego. Sasiadami sa, automat z lewej , i z doÃlu. Problem synchronizacji (orginalnie zwany problemem plutonu egzekucyjnego). 1-wymiarrowy system ”synchronizuje sie” wszystkie automaty takie , , po co najwyżej 3n krokach. Poczatkowo same poza brzegowymi, które wiedza, że sa, brzegowe. System znajduje środek poprzez wygenerowanie sygnaÃlów o szybkości 1 i 1/3. Szybszy sygnaÃl odbija sie, od prawego brzegu i spotyka sie, z sygnaÃlem wolniejszym w środku (uwaga moga, być dwa środki). Na ćwiczeniach oszacować liczbe, stanów. Trudniejsza konstrukcja: synchronizacja po 2n − 2 krokach, jest to minimalny czas synchronizacji (udowodnić na ćwiczeniach ). PrzykÃlad 2-wymiarowego systemu automatów: liczenie przez automaty domkniecia tranzy, tywnego macierzy Boolowskiej. System liczacy domkniecie tranzytywne macierzy boolowskiej , , Implementujemy algorytm Warshalla na systmie dwuwymiarowym automatów komórkowych. Każdy element komunikuje sie, z czterema sasiadami w odlegÃlości miejskiej równej 1. , Z lewego gornego rogu sygnal biegnie po przekatnej z szybkościa, 13 . k-ty uaktywniony element przekatnej generuje proces (falowy) ktory biegnie poziomo i pionowo. Proces ten po drodze , uaktywnia elementy ktore wysylaja swoej wartosci. Kazdy element w ktorym sie scidza te wartosci dodaje (alternatywa) ich koninkcje do swojej wartosci. Po 5n krokach domkniecie tranzytywne jest policzone. Ogrody Edenu Ogrody Edenu sa, skończonymi konfiguracjami systemu automatów komórkowych które nie wynikaja, (po jednym kroku) z żadnej innej konfiguracji skończonej. Udowodnić, że dla systemu jednowymiarowego zbiór ogrodów Edenu jest (jako zbiór sÃlów) regularny, a problem istnienia ogrodów Edenu ma stosunkowo prosty algorytm. W przypadku dwuwymiarowym problem istnienia ogrodów Edenu jest nierozstrzyglany (bardzo trudne, udowdniÃl Jarko Kari). 10 Dwukierunkowe automaty skończone Dla każdego dwukierunkowego automatu skończonego istnieje równoważny zwyczjny automat skończony (konstrukcja poprzez crossing sequences). Na ćwiczeniach oszacować liczbe, stanów automatu zwyczajnego (czasami musi być rzedu wykÃladniczego). Na ćwiczeniach , pokazać że automat dwuwskażnikowy (2-gÃlowicowy) jest silniejszy, np. na problemie Lpat = {x$y : x jest podsÃlowem y}, jezyk ten nie jest regularny (udowodnić na ćwiczeniach ). Ist, nieje determ. 2-glowicowy 2-kierunkowy automat dla tego jezyka oraz niedeterm. 2-glowicowy , 1-kierunkowy. Udowodnić, że istnieje deterministyczny 2-kierunkowy k-wskażnikowy automat skończony akceptujacy Lpat w czasie liniowym, gdzie k jest staÃla, (naturalna). Odpowiada to bardzo , , prymitywnemu algorytmowi na string-matching w czasie liniowym i pamieci staÃlej, stosujemy , algorytm Duvala-Crochemore’a na leksykograficznie maksymalny sufiks, algorytm ten przy okazji liczy okres tekstu, gdy tekst jest mocno okresowy (patrz skrypt ASD, Banachowski, Diks, Rytter). Algorytm opiera sie, na nastepuj acej wÃlasności leksykograficznie maksym. su, , fiksu: niech x bedzie swoim maksymalnym sufiksem o (najkrótszym) okresie p, jeśli symbol a , Ãlamie okres w sensie mniejszym tzn. a < b gdzie b jest symbolem odlegÃlym o p od a w sÃlowie xa to xa jest (dalej) swoim maksymalnym sufiksem (akurat to jest proste), oraz najkrótszym okresem xa jest |xa| (trudne i zadziwiajace). , Dowód powyższego faktu na ćwiczeniach (dobre ćwiczenie zwiazane z okresowości tekstów , oraz przygotowanie do string-matching’u w czasie staÃlym na Analizie Algorytmów, ciekawy algorytm może sie, pojawić na 2 wykÃladach, jest szansa że go wtedy ktoś zrozumie). Idea algorytmu Duvala jest wyjaśniona na rysunku . Na ćwiczeniach równiwż oszacować (niekoniecznie dokÃladnie) jakie jest k (jakie jest minimalne k zapewne nikt nie wie). Konstrukcja raczej nieformalna, spodziewam sie, że podobny algorytm bedzie na Analizie Algorytmów (ale warto o tym problemie wspomnieć już teraz , przy okazji mocy k-gÃlowicowych automatów). Na ćwiczeniach przedyskutować konstrukcje, automatu. Gramatyki bezkontekstowe Na ćwiczeniach udowodnić formalnie, że nastepuj aca gramatyka generuje {x ∈ (a ∪ b)∗ : , , 11 maksymalny sufiks wczytanie b a b c b c b a c b c b a c b c i j k a b c b c b a c b c b a c b c l i j k b l nowe m a b c b c b a c b c b a c b c c a b c b c b a c b c b a c b c reset i, j, k,l i wczytanie c , startujemy ze wszystkim od l j a k l wczytanie a, maxsufix ma tylko trywialny okres cofamy sie z m na pozycje l Rysunek 3: Trzy możliwe przejścia w algorytmie Duvala, x[i..m] = maxsuf (x[1..m]), x[i..k] okres maks. sufiksu, m ostatnio wczyatny symbol. Pozycja j odpowiada m w sensie okresowości. Algorytm sprawdza czy nastepny symbol jest kontynuacja, okresu maksymalnego , sufiksu, a jeśli nie to czy Ãlamie okres w sensie mniejszy. #a (x) = #b (x)}: S− > aB|bA A− > a|aS|bAA B− > b|bS|aBB Na ćwiczeniach napisać peÃlne gramatyki bezkontekstowe dla jezyków , ∗ i j k {a, b, c} − {a b c : i 6= j lub i 6= k lub j 6= k }, {x#y : x, y ∈ {a, b}+ x 6= y}. Proste przeksztaÃlcenia gramatyk. Usuwanie ”zbednych“ nieterminali, przy okazji wielomianowy algorytm na test ”L(G) = ∅“ , (czy symbol poczatkowy jest zbedny ? ). , , Usuwanie sÃlowa pustego, może zwiekszyć gramatyke, wykÃladniczo. , Eliminacja produkcji postaci A → B. Sprowadzanie do postaci normalnej Chomsky’ego, przćwiczyć dla jezyków nawiasowych. , Lemat ”o pompowaniu“: z = uvwxy. Zastosowania: CFL nie zamkniete na dopeÃlnienie i , przeciecie teoriomnogościowe. , Lemat ”o pompowaniu kontrolowanym“ (uproszczony lemat Ogdena). Jeśli zaznaczymy przedziaÃl dÃlugości co najmnije p0 sÃlowie z ∈ L to jedna z cześci pom, pujacych (v, x) jest caÃlkowicie w zaznaczonym przedziale dla pewnej dekompozycji uvwxy. , 12 Dowód na ćwiczeniach, modyfikacja dowodu dla zwyczajnego lematu o pompowaniu. Zrobić jak najwiecj zastosowań lematów. , Pokazać, że dla jezyka , a∗ bc ∪ {ap ban can : n ≥ 1} zwyczajny lemat o pompowaniu ”nie chwyta“ a lemat kontrolowany dziaÃla dobrze. Zastosować lemat o pompowaniu kontrolowanym dla jezyka , {ai bj ck : i 6= j i 6= k j 6= k}. Niech N bedzie staÃla, z lematu. Weźmy sÃlowo an! b2n! c3n! . Zaznaczyć prefiks dÃlugości n!. , Napisać gramatyke, dla dopeÃlnienia tego jezyka. , Twierdzenie Parikha Niech alfabet Σ = {a1 , a2 , . . . ak }. Dla sÃlowa x jego wektorem Parikha jest P arikh(x) = (#a1 (x), #a2 (x), #a3 (x), . . . #ak (x)) Dla jezyka L oznaczmy P arikh(L) = {P arikh(x) : x ∈ L}. , Twierdzenie Parikha. Jeśli L bezk. to istnieje jezyk R regularny taki, że P arikh(L) = P arikh(R). , (Szkic dowodu) ZaÃlóżmy że mamy gramatyke, bezk. G = (N, T, P, S) w postaci normalnej Chomsky’ego majac taka, staÃla,, że w każdym drzewie wyprowadzenia sÃlowa , a, k nieterminali. Niech N bedzie , dÃlugości co najwyżej N istnieje ścieżka na której pewien nieterminal pojawia sie, co najmniej k + 2 razy. Niech Q ⊆ N oraz niech LQ bedzie zbiorem sÃlów majacych drzewo wyprowadzenia , , zawierajace dokÃladnie wszystkie nieterminale z Q i żadnych innych. Niech FQ bedzie zbiorem , , sÃlów z LQ o dÃlugości co najwyżej N , a TQ bedzie zbiorem sÃlow xy takich, że |xy| ≤ N oraz , ∗ istnieje wyprowadzenie A → xAy w którym wystepuj a, jedynie nieterminale z Q. , Wtedy P arikh(Lq ) = P arikh(FQ TQ∗ ) Zatem LQ jest w sensie Parikha równoważny jezykowi FQ TQ∗ kóry jest regularny, gdyż zbiory , S FQ i Tq sa, skończone. Natomiast L jest równoważny Q FQ TQ∗ , ponieważ S P arikh(L) = Q P arikh(FQ TQ∗ ). 13 Automaty stosowe Automat stosowy A = (Σ, Q, Γ, δ, s0 , Z0 , F ), Γ - alfabet stosowy, δ - funkcja przxejść. δ : (Σ ∪ {²}) → (Q × Γ∗ ). Opis chwilowy (peÃlna konfiguracja) (q, w, α), w - niewczytana jezcze cześć tekstu wejściowego, , α - zawartość stosu, wierzchoÃlek stosu z lewej strony α. Konfiguracja poczatkowa (s0 , w, Z0 ), , gdzie w jest peÃlnym tekstem wejściowym. Trzy typy akceptacji N (A), T (A), L(A), stosem pustym, stanem akceptujacym, oraz jednym i drugim jednocześnie. , Pokazać na ćwiczeniach, że te trzy typy sa, równoważne w sensie klasy definiowanych jezyków. , PrzykÃlady. L = {x#xR : x ∈ (a ∪ b)+ } deterministyczny, drobna modyfikacja daje niedetermnistyczny automat dla L = {xxR : x ∈ (a ∪ b)+ }. L = {x#y : x 6= y oraz x, y ∈ (a ∪ b)+ } L = {xy : x 6= y, |x| = |y| oraz x, y ∈ (a ∪ b)+ } Na ćwiczeniach zrobić gramatyke, dla ostatniego jezyka. , Deterministyczny automat stosowy: w każdej sytuacji co najwyżej jeden ruch. Dowód (przez ”ogÃlupianie“ automatu) faktu: Jezyk L = {wwR : w ∈ (a ∪ b)+ } nie jest deterministyczny. , Twierdzenie. Jeśli L ∈ CF L to istnieje automat stosowy A taki, że L = N (A). Dwa dowody, konstrukcje użyte w dowodach maja, duże znaczenie praktyczne w zwiazku , z parserami typu LL(k) i LR(k). Dowód pierwszy. Automat ”zgaduje“ lewostronne wyprowadzenie. Produkcja A− > γ odpowiada zastapieniu , wierzchoÃlka stosu (jeśli jest nim A) przez γ. Automat może w tym momencie wypisać stosowana, produkcje, gramtyki. Jeśli na wierzchoÃlku jest symbol terminalny a i na wejściu też, to oba zostaja, ”wymazane“. Dowód drógi. Tym razem zakÃladamy, że wierchoÃlek stosu jest z prawej strony napisu α. Startujemy ze stosem na którym jest jedynie ”dno stosu“ Z0 . Mamy dwie operacje. Shif t: wpisujemy symbol wejściowy na stos (z prawej strony α); Reduce: jeśli grupa symbolu na wierzchoÃlku stosu jest prawa, strona, produkcji A− > γ to au14 tomat zastepuje tekst γ na stosie przez A. Automat może w tym momencie wypisać stosowana, , produkcje, gramatyki. Automat akceptuje, gdy wczyta caÃly tekst oraz na stosie poza ”dnem stosu“ jest jedynie symbol poczatkowy gramatyki. , Na ćwiczeniach przykÃlady przejścia od gramatyki do automatu, poza tym udowodnić, że ciagi , produkcji wypisane przez uatomat w pierwszym (drugim) dowodzie odpowiadaja, lewostronnemu (odwróconemu prawostronnemu)wyprowadzeniu w gramatyce. Nieformalna definicja gramatyk LL(k) i LR(k) jako tych dla których automaty konstruowane w pierwszym (drugim) dowodzie sa, deterministyczne, jeśli automat ”widzi“ k symboli ”ahead“. Pierwsze L jest od ”Look ahead“, druga litera od Leftmost i Rightmost, odpowiednio. Twierdzenie Jeśli L = N(A) dla automatu stosowego A, to L = L(G) dla pewnego jezyka bezkontekstowego. , Proof. Tworzymy gramatyke, G, której nieterminalami sa, trójki (q, A, q1 ) plus specjalny symbol poczatkowy S. Jeśli (q1, B1 B2 ..Bm ) ∈ δ(q, a, A) to tworzymy zbiór produkcji postaci , (g, A, p) → a · (q1 , B1 , q2 )(q2 , B2 , q2 )..(qm , Bm , p) dla każdego q2 , q3 , .., qm ∈ Q (Gramtyka bardzo duża) W szczególności jeśli m = 0, (a wiec , (q1 , ²) ∈ δ(q, a, A)) to tworzymy produkcje, (q, A, p) → a, gdzie p = q1 . Na przykÃlad, gdy (q1 , B1 B2 B3 ) ∈ δ(q, a, A) to tworzymy produkcje, (q, A, p) → a · (q1 , B1 , q2 )(q2 , B2 , q3 )(q3 , B3 , p). Ponadto tworzymy zbiór produkcji inicjalnych S → (q0 , Z0 , q) dla każdego q ∈ Q. Zachodzi: (q, A, q1 ) →∗G x ⇔ (q, x, A) ` ∗(q1 , ², ²) Na ćwiczeniach przykÃlady przejścia od automatu do gramatyki. Postać normalna Greibach (metoda niestandardowa) ZaÃlóżmy, że gramatyka G jest w postaci norm. Chomsky’ego. Tworzymy nowa, gramatyke, G0 , tworzymy nowe nieterminale (A, B), takie że A →∗G B · α dla pewnego α. Tworzymy produkcje tak by zachodziÃla wÃlasność: A →∗G B · α ⇔ (A, B) →∗G0 ·α Poczatkowo w G0 tworzymy produkcje inicjalne: , S → a · (S, A), dla każdego A → a. 15 A A x1 D x B C B E x2 a Rysunek 4: Dekompozycja wyprowadzenia A →∗ Bx na E → a, C →∗ Ex2 i A →∗ Dx1 przy zaÃlożeniu że D → BC i E → a sa, reguÃlami gramatyki G. Mamy cztery przypadki generowania produkcji dla takiej dekompozycji zależnie od tego które z x1 , x2 sa, puste. Nastepnie tworzymy cztery typy produkcji w zależności od tego które z x1 , x2 sa, puste (patrz , Rysunek 4). 1. (A, B) → a(C, E)(A, D) gdy E → A, D → BC {x1 6= ², x2 6= ²} 2. (A, B) → a · (C, E) gdy A → BC i E → a {x1 = ², x2 6= ²} 3. (A, B) → a · (A, D) gdy D → BC i C → a {x1 6= ², x2 = ²} 4. (A, B) → a gdy A → BC i C → a. {x1 = ², x2 = ²} Na ćwiczeniach zrobić przykÃlady transformacji do postaci Greibach powyższa, metoda., Ponadto pokazać, że klasa DCF L (detrm. bezkontekstowe) jest zamnkni”ta ze wzgledu na , dopeÃlnienie. Pokazać również, jak udowodnić że przeciecie jezyka bezkontekstowego i regu, , larnego jest bezkontekstowe (pokazać na przykÃladach) nie u”ywajac , automatów (bezpośrednio z gramatyi bezk. i gramatyki prawostronnie liniowej). Porównać z dowodem poprzez automat. Najtrudniejszy jezyk bezkontekstowy , Niech Σ0 = {(, ), [, ]} bedzie alfabetem zwykÃlych nawiasów, Dk bedzie jezykiem poprawnych , , , nawiasów k typów (dla 2 typów przyjmujemy nawiasy z Σ0 ). Nastepuj acy jezyk nazywamy , , , jezykiem Greibach , L0 = {x11 cx12 . . . cx1i1 dx21 cx22 . . . cx2i2 . . . dxk1 cxk2 . . . cxkik : 1 2 k xij ∈ Σ+ 0 oraz xj1 xj2 . . . xjk ∈ D2 dla pewnych j1 , . . . jk } 16 Twierdzenie. L0 jest najtrudniejszym jezykiem bezkontekstowym, to znaczy L0 ∈ CF L oraz jeśli , zÃlożoność rozpoznawania L0 jest T (n) to każdy jezyl L ∈ CF L można rozpoznawać w czasie , O(T (n)). Na ćwiczeniach napisać gramatyke, generujac , a, L0 . Dla jezyka L oznaczmy , N iedet(L) = {(G1 , G2 , . . . Gn ) : Gi ⊆ Σ∗ , oraz w1 w2 . . . wn ∈ L dla pewnych w1 ∈ G1 , w2 ∈ G2 , . . . wn ∈ Gn } Niech N = {A1 , A2 , . . . Ar } bedzie zbiorem nieterminali, definiujemy r typów nawiasów, gdzie , i-ty nawias otwierajacy jest równy Ai , a zamykajacy jest równy Āi . Oznaczmy przez DrN , , odpowiedajacy jezyk r-nawiasowy. , , Niech G bedzie gramatyka, bezk. w postaci normalnej Greibach (po prawej stronie dokÃladnie , jeden terminal i to na poczatku). , Dla każdej produkcji π = (A → aA1 A2 . . . Ak ) definujemy akcja(π) = ĀAk Ak−1 . . . A1 . akcja(π) odpowiada jednemu krokowi niedet. automatu stosowego: ĀAk Ak−1 . . . A1 ≡ pop(A), push(Ak ), push(Ak−1 ) . . . push(A1 ). Dla symbolu a ∈ Σ oznaczamy H(a) = {akcja(π1 ), akcja(π2 ), . . . akcja(πi )}, gdzie π1 , . . . πi sa, wszystkimi produkcjami w których a wystepuje. Niech S bedzie symbolem , , startowym gramatyki i niech w = a1 a2 . . . an , wtedy zachodzi: w ∈ L(G) ⇔ ({S}, H(a1 ), H(a2 ), . . . H(an )) ∈ N iedet(DrN ) Powyższa równoważność mówi że w ∈ L(G) gdy istnieje poprawna historia automatu stosowego akceptujacego w za pomoca, pustego stosu, poczatkowo na stosie jest poczatkowy symbol gra, , , matyki. PrzykÃlad. Gramatyka A → aBA | a B → bBB | b. H(a) = {ĀAB, Ā}, H(b) = {B̄BB, B̄}. Jeśli w = abbba to w ∈ L(G) ponieważ z ciagu zbiorów {A}, H(a), H(b), H(b), H(b), H(a) , można wybrać kolejno sÃlowa A ĀAB B̄BB B̄ B̄ Ā, ich konkatenacja daje poprawna, historie, 17 dziaÃlania automatu stosowego AĀAB B̄BB B̄ B̄ Ā. Jest to poprawne wyrażenie nawiasowe w {A,B} D2 . Lepiej to widać jak sie, zastapi nawiasy A i B przez ’[’ i ’(’. , Zatem rozpoznawanie jezyka sprowadza sie, do problemu membership dla ciagów zbiorów , , N iedet(Dr ) dla r bed staÃla., r typów nawiasów można zakodować dwoma typami, i-ty , , acych nawias otwierajacy odpowiada sÃlowu [(i−1 . W ten sposób rozpoznawanie dowolnych jezyków , , bezkontekstowych sprowadza sie, do problemu membership dla N iedet(D2 ), a ten problem koduje sie, bezpośrednio jako jezyk L0 . , Na ćwiczeniach zrobić to co powyżej dla konkretnej gramatyki i tekstu, policzyć zbiory H(ai ). Pokazać odpowiedniość miedzy zbiorem N iedet(D2 ) i jezykiem L0 , a wÃlaściwie że to jest , , 0 to samo. Niech L0 = L0 /[d (obcinamy z lewej strony nawias kwadratowy). Udowodnić że dla każdego jezyka bezkontekstowego L istnieje homomorfizm h taki że L = h−1 (L00 ). Dla , każdego jezyka bezkontekstowego L zachodzi L = h(Dr ∩ R), gdzie r zależy od L, h jest , homomorfizmem oraz R jest jezykiem regularnym. , Troche kombinatoryki tekstów i sÃlowa podwójne SÃlowa Fibonacciego i ich wÃlasności. SÃlowa Thue-Morsa t = h∞ (a), gdzie h(a) = ab, h(b) = ba. Dowód tego, że morfizm h zachowuje wÃlasność ”to be square free”. SÃlowo t nie zawiera podsÃlowa typu cvcvc, gdzie c jest litera., Niech β(a) = a, β(b) = ab, β(c) = abb. SÃlowa β −1 (t) jest ”square free”. Zatem jest nieskończenie square free sÃlów na alfabetem 3 literowym. MateriaÃl z artykuÃlu ”Morphisms, square free strings and the tower of Hanoi puzzle”, American Math. Monthly 101:7 (1994) 651-658. Okresowość w tekstach, lemat o okresowości. Zastosowanie do tego że zbiór dwóch sÃlow {x, y} jest kodem jednoznacznym wtedy i tylko wtedy gdy xy = yx. Relacja x ≡ xx: sprawdzanie równoważności dwóch sÃlów. Wprowadzamy relacje, x ≡ xx dla dowolnych sÃlów x. Zbiór klas równoważności jest skończony (da skończonego alfabetu), np. 7 klas dla 2 liter i 160 klas dla 3 liter. Algorytm przeksztaÃlcania jednego sÃlowa w drugie. MateriaÃl z ksiażki ”Combinatorics on words”, Lothaire, strony 33-35. , 18 ( Dla danego tekst x0 pokazać, że {x : x ≡ x0 } jest regularny ( dla wszystkich 7 najkrótszych nierównoważnych sÃlów nad alfabetem {a, b} wyliczyć na ćwiczeniach dokÃladnie wyrażenia regularne opisujace klasy równoważności i podać , automaty niedet. z jak najmniejsza, liczba, stanów).) Przez Alf a(x) oznaczmy zbiór liter w x. Niech pa bedzie najkrótszym prefiksem x takim, że Alf a(x) = Alf a(pa), symetrycznie bq , bedzie takim najkrótszym sufiksem, a, b ∈ Σ, p, q ∈ Σ∗ , oznaczmy x̂ = pabq. , Zachodzi Fakt. x ≡ y ⇔ x̂ ≡ ŷ Naszkicujemy tylko dowód tego, że x ≡ x̂. Obserwacja. x ≡ yα ∧ y ≡ βx ⇒ x ≡ y (Uzasadnienie) x ≡ yα ≡ yyα ≡ yx ≡ βxx ≡ βx ≡ y Obserwacja. Alf a(y) ⊆ Alf a(x) ⇒ (∃ u) x ≡ xyu (Uzasadnienie) Indukcja po |y|. Niech y = y 0 u, a ∈ Σ i na mocy zaÃl. indukc. dla y 0 : (∃ u0 ) x ≡ xy 0 u0 . RozkÃladamy x = zaz 0 , bierzemy u = z 0 y 0 u0 . W ten sposób dowodzimy ostatnia, obserwacje. , Dowód faktu: Przechodzimy teraz do dowodu, że x ≡ x̂ = pabq. RozkÃladamy: x = pay, x = zbq. Istnieja, u i symetrycznie v (na mocy ostatniej obserwacji) takie, że pa ≡ payu = xu, bq ≡ vpabq. Zatem pabq ≡ xubq, x = zbq ≡ zvpabq, czyli x̂ ≡ xα, x ≡ β x̂ dla pewnych α, β. Z przedostatniej obserwacji wynika, że x ≡ x̂. 19 Morfizmy dwuwymiarowe. Morfizmy moga, być użyte do definiowania rekurencyjnie obrazków, na przykÃlad patrz Figure 5 H1: H2: 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 obrazek J. Hafermana dywan Sierpinskiego Rysunek 5: Wielokrotne stosowanie tych morfizmów generuje regularne struktury. Maszyny Turinga Na wykÃladzie maszyny Turinga, krótko o istnieniu problemów nierozstrzyglanych (jezyków , nierekurenyjnych generowaych przez gramatyki) oraz N P -zupeÃlność. Maszyny Turinga odpowiadaja, gramatykom typu 0 (bez dowodu). Hipoteza Churcha: obliczalność oznacza obliczalność równiwż na maszynach Turinga. Maszyny Turing asÃluża, zasadniczo do dowodów negatywnych. L jest rekurencyjny gdy L i L̄ sa, przeliczalnie rekurencyjne. Zrobić na ćwiczeniach prosty przykÃlad maszyny Turinga, na przykÃlad liczacej sume. Pon, , adto przykÃlad maszyny Turinga implementujacej algorytm Knutha-Morrisa-Pratta w czasie , liniowym. Inny przykÃlad: maszyna T sprwdzajaca czy suma dwóch liczb binarnych jest równa , trzeciej liczbie, liczby zapisane z markerami pomiedzy nimi i z markerami na końcach. , Istnienie problemu N P -zupeÃlnego: czy dana maszyna Turinga zaakceptuje niedeterministycznie dany tekst w czasie ograniczonym przez liczbe, zapisana, unarnie (wejście: tekst#liczba). Dowód tego że SAT jest NP-zupeÃlny. PrzykÃlady innych problemów NP-zupeÃlnych. Definicja hierarchii: DLOG ⊆ N LOG ⊆ P ⊆ N P ⊆ P − SP ACE. 20 podstawowy problem teorii zÃlożoności: które z tych inkluzji sa, wÃlaściwe ? PrzykÃlady problemów P-space zupeÃlnych. Teoretyczny model obliczeń równolegÃlych PRAM, klasa NC. Pojecie P-zupeÃlności. PrzykÃlady , problemów P-zupeÃlnych: Circuit Value Problem, Generowalność, liczenie DFS-u. 21