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

Podobne dokumenty