Języki, automaty i obliczenia/Ćwiczenia 10: Lemat o pompowaniu dla języków bezkontekstowych. Własności języków bezkontekstowych. Problemy rozstrzygalne: Różnice pomiędzy wersjami
m Języki, automaty i obliczenia/Ćwiczenia 10: Lemat o pompowaniu dla języków bezkntekstowych. Własności języków bezkontekstowych. Problemy rozstrzygalne moved to [[Języki, automaty i obliczenia/Ćwiczenia 10: Lemat o pompowaniu dla języków be |
|
(Brak różnic)
|
Wersja z 09:34, 23 sie 2006
{Automat ze stosem.Gramatyki bezkontekstowe i automaty ze stosem.}
ĆWICZENIA 11
Ćwiczenie
Określ automaty ze stosem akceptujące następujące języki. Ustal czy akceptacja jest przez pusty stos czy przez stany końcowe. Czy język jest deterministyczny?
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L_1=\{a^{n}b^{n+m}a^{m}:\: m,n\geq 1\} }
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L_3=\{a^{n}b^m:\: 1\leq n\leq m\} }
Wszystkie rozważane automaty będą określone grafem, niemniej dla większej czytelności podamy również alfabet stosu.
ROZWIĄZANIE punktu 1.
Szukany automat określony jest rysunkiem
rys 1 ja-lekcja11-c-rys1
gdzie , a jest symbolem początkowym stosu.
Zauważ, że automat ten akceptuje język zarówno przez stany końcowe jak i przez pusty stos.
Automat jest deterministyczny, a to oznacza, że język jest też deterministyczny.
ROZWIĄZANIE punktu 2.
Szukany automat określony jest rysunkiem
rys 2 ja-lekcja11-c-rys2
gdzie , a jest symbolem początkowym stosu i akceptuje język przez pusty stos.
Automat jest niedeterministyczny i język też jest niedeterministyczny. Nie wiadomo od której litery czytanego
słowa automat powinien wymazywać stos. Dlatego równolegle z wpisywaniem na stos automat zaczyna wymazywać
za każdym razem gdy
wystąpią dwie takie same litery obok siebie. Porównaj otrzymany automat z automatami otrzymanymi dla języków i
z ćwiczenia Uzupelnic 1|.
ROZWIĄZANIE punktu 3. Szukany automat określony jest rysunkiem
rys 3 ja-lekcja11-c-rys3
gdzie , a jest symbolem początkowym stosu. Automat ten akceptuje język przez stany końcowe i jest automatem deterministycznym.
ROZWIĄZANIE punktu 4. Szukany automat określony jest rysunkiem
rys 4 ja-lekcja11-c-rys4
gdzie , a jest symbolem początkowym stosu. Automat akceptuje język przez stany końcowe i jest automatem niedeterministycznym. Uzasadnij ten fakt. Czy język jest językiem niedeterministycznym?
Ćwiczenie
Napisz na podstawie dowodu twierdzenia Uzupelnic lekcja11-w twas-bk|
- algorytm konstrukcji automatu ze stosem
rozpoznającego język generowany przez daną gramatykę bezkontekstową w postaci normalnej Greibach,
- algorytm konstrukcji gramatyki bezkontekstowej generującej język rozpoznawany przez pusty stsos
przez dany automat ze stsosem.
Ćwiczenie
Wykorzystując algorytmy z poprzedniego zadania określ
- automat akceptujący język generowany przez gramatykę o zbiorze praw
- gramatykę generującą język akceptowany przez pusty stos przez automat zadany rysunkiem
rys5 ja-lekcja11-c-rys5
gdzie , a jest symbolem początkowym stosu.
ROZWIĄZANIE. Zarówno w punkcie 1 jak i 2 rozważanym językiem jest Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L=\{a^{n}b^n:\: 1\leq n\} }
.
Punkt 1.
Gramatyka jest w postaci Greibach i możemy od razu określić automat.
Zgodnie z konstrukcją jest to automat jednostanowy zadany rysunkiem
rys6 ja-lekcja11-c-rys6
gdzie , a jest symbolem początkowym stosu.
Dla przykładu prześledźmy akceptację przez ten automat słowa .
Punkt 2.
Gramatykę zdefiniujemy przez podanie zbioru praw wskazując równocześnie z jakiego przejścia w automacie
dane prawo powstało.
Zauważmy, że w obu konstrukcjach otrzymujemy gramatykę i automat różne od wyjściowych.
Ćwiczenie
Udowodnij, że każdy automat ze stosem, w którym wielkość stosu jest ograniczona pewną stałą,
jest równoważny pewnemu automatowi skończenie stanowemu.
ROZWIĄZANIE. Dla dowodu tej równoważności wystarczy dla automatu ze
stosem z ograniczoną wielkością stosu określić
równoważny automat skończenie stanowy. Niech będzie dowolną stałą, a
automatem, w którym wielkość stosu ograniczona jest przez stałą . Równoważny automat skończenie stanowy jest automatem
niedeterministycznym z pustymi przejściami.
Niech , gdzie , ,
Co zmieni się w definiowanym automacie skończenie stanowym, jeśli automat ze stosem będzie akceptował przez pusty stos?
Ćwiczenie
Oto nieformalny opis automatu z kolejką:
Automat z kolejką jest podobny do automatu ze stosem, ale zamiast stosu (LIFO - last in, first out) posiada kolejkę FIFO (first in, first out). W każdym kroku automat czyta symbol z taśmy (być może słowo puste), usuwa z kolejki początkowy symbol (być może słowo puste) oraz wstawia na koniec kolejki słowo (być może słowo puste). Automat z kolejką akceptuje słowo przy stanie końcowym lub przy pustej kolejce.
- Podaj formalną definicję automatu z kolejką
- Zdefiniuj dwa sposoby akceptacji słowa przez automat: przez stan końcowy oraz przez pustą kolejkę
ROZWIĄZANIE punktu 1. Automatem z kolejką nad alfabetem nazywamy system , w którym
- jest alfabetem, - jest dowolnym
skończonym i niepustym zbiorem zwanym alfabetem kolejki
(niekoniecznie rozłącznym z ), - jest dowolnym,
skończonym i niepustym zbiorem zwanym zbiorem stanów, jest funkcją przejść, której
wartościami są skończone podzbiory (także
zbiór pusty), jest stanem początkowym, symbolem początkowym kolejki, zbiorem
stanów końcowych.
ROZWIĄZANIE punktu 2.
Automat z kolejką akceptuje przez stan końcowy słowo (), jeśli istnieje sekwencja stanów oraz słów takich, że:
- ,
- ,
- , gdzie oraz dla pewnego ,
- .
Automat akceptuje słowo przez pustą kolejkę przy takich samych warunkach jak powyżej, z tym że ostatni z nich ma postać .
Ćwiczenie
Czy moc obliczeniowa automatu z kolejką jest taka sama jak moc automatu ze stosem?
WSKAZÓWKA. "Naturalnym" przykładem języka akceptowanego przez automat ze stosem był język , gdyż stos działa w ten sposób, że elementy zdejmowane są z niego w odwrotnej kolejności niż były wkładane. Znajdź analogiczny "naturalny" przykład języka akceptowanego przez automat z kolejką. Zwróć uwagę, że w kolejce elementy wyjmowane są w takiej samej kolejności, w jakiej były do niej wkładane.
ROZWIĄZANIE. Nie. Automat z kolejką akceptuje język , który nie jest akceptowany przez automat ze stosem.
ZADANIA DOMOWE
Ćwiczenie
Określ automaty ze stosem akceptujące następujące języki przez pusty stos i przez stany końcowe. Wskaż, które języki są deterministyczne.
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L_7=\{a^{n}b^m \in \{a,b\}^*:\: 1\leq m\leq n\} }
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L_8=\{a^{n}b^{m} \in \{a,b\}^*:\: m \neq n\} }
Ćwiczenie
Określ automat ze stosem, który rozpoznaje język Łukasiewicza zapisany w wersji postfiksowej (Uzupelnic lekcja11-w luk|)