12.07.2015 Views

Rozdział VII - Automaty ze stosem

Rozdział VII - Automaty ze stosem

Rozdział VII - Automaty ze stosem

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

R O Z D Z I A Ł V I I<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong>1. Podstawowe definicjeRozwaŜane w popr<strong>ze</strong>dnim rozdziale automaty Rabina-Scotta byłyurząd<strong>ze</strong>niami o bardzo ograniczonej zdolności pr<strong>ze</strong>chowywania informacji.R<strong>ze</strong>czywista pojemność ich pamięci była wyraŜona liczbą stanów wewnętrznych,bowiem jedynym sposobem zapamiętania c<strong>ze</strong>gokolwiek było przyjęcieodpowiedniego stanu. Stąd teŜ struktura słów akceptowalnych pr<strong>ze</strong>z te automaty byłaściśle określona (akceptowały one mianowicie jedynie języki regularne). Celemzagwarantowania akceptacji dowolnego słowa np. języka {a i b i : i ∈ N} musimy sięposłuŜyć bardziej rozbudowanym automatem o nieskończonej pamięci (nie wiemybowiem, jak długie będzie takie słowo). W tym celu, obok wewnętrznej pamięcistanowej z automatów Rabina-Scotta, będziemy stosować jeszc<strong>ze</strong> dodatkową (tymra<strong>ze</strong>m juŜ <strong>ze</strong>wnętrzną) pamięć - tzw. pamięć stosową. W ten sposób otrzymamywłaśnie automat <strong>ze</strong> <strong>stosem</strong>.Na początku zastanówmy się, czym właściwie jest ów stos. Najbardziej obrazowomoŜemy go sobie wyobrazić jako plik kartek ułoŜonych jedna na drugą. NakaŜdej kartce zapisana jest pewna informacja. Ze stosu (tylko z wierzchu!) moŜnazdejmować kartki (po jednej) lub nakładać je na niego (dowolną ilość). Wzięciukartki odpowiada odczytanie informacji (wraz z bezpowrotnym zniszc<strong>ze</strong>niem jej), anałoŜeniu pliku kartek - jej zapisanie. Chcąc więc dotr<strong>ze</strong>ć do informacji zapisanejwewnątrz stosu (bądź na jego spodzie) - tr<strong>ze</strong>ba bezpowrotnie zniszczyć wszystkiekartki (wraz z informacjami na nich umieszczonymi), leŜącymi ponad nią. Tak więcstos działa według zasady „FILO”, tj. „first in - last out” (pierwszy wchodzący -ostatni wychodzi), gdyŜ kartka, która została w danym miejscu połoŜona na stos,zostanie z niego usunięta jako ostatnia w stosunku do kartek, które zostały połoŜonena stos nie wc<strong>ze</strong>śniej niŜ ona. Tę samą metodę pracy stosu opisuje równowaŜna jejzasada „LIFO” („last in - first out”, tj. „ostatni wchodzący - pierwszy wychodzi”).Oczywiście, tak określona pamięć stosowa jest nieograniczona (gdyŜ moŜemyukładać dowolnie wysoki stos kartek). Informacja zgromadzona na stosie moŜe byćjednak wyc<strong>ze</strong>rpana <strong>ze</strong> stosu po pr<strong>ze</strong>czytaniu najniŜs<strong>ze</strong>j (najwc<strong>ze</strong>śniej umieszczonejna stosie) kartki.


<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong> 97W automacie <strong>ze</strong> <strong>stosem</strong>, za model stosu obieramy taśmę zakończoną z lewejstrony. Występuje ona obok (znanej juŜ nam z popr<strong>ze</strong>dniego rozdziału) taśmy wejściowejzawierającej czytane słowo. W konfiguracji początkowej (patrz lewa stronarys. 7.1) głowica G 1 jest ustawiona na klatce z taśmy wejściowej, w której znajdujesię pierwsza litera czytanego słowa, a głowica G 2 - na pierws<strong>ze</strong>j klatce w stosie (jeston cały pusty, za wyjątkiem tej właśnie klatki, w której to znajduje się symbolpoczątkowy stosu). Taśma wejściowa moŜe się pr<strong>ze</strong>suwać w jedna stronę (podobnie,jak w automatach skończonych), a dodatkowy (w stosunku do automatów skończonych)stos - w dwie. RównowaŜnie moŜemy oczywiście mówić, Ŝe wyŜej wymienionetaśmy wcale się nie pr<strong>ze</strong>suwają, lecz Ŝe pr<strong>ze</strong>suwają się po nich głowice tegoautomatu. Głowica G 2 wskazuje zaws<strong>ze</strong> na wierzch stosu, a w przypadku, gdy stosjest pusty - na miejsce bezpośrednio pr<strong>ze</strong>d nim.a b a b b aG 1taśmawejściowaa b a b b aG 1q 0q ivG 2konfiguracja początkowastosv z v v v zG 2konfiguracja pod koniecanalizy słowa ababbaRys. 7.1.Formalnie, a u t o m a t e m z e s t o s e m nazywamy uporządkowaną siódemkęA = , w której:− Z jest alfabetem stosu,− K jest zbiorem stanów automatu,− T jest alfabetem taśmy wejściowej,− M jest relacją pr<strong>ze</strong>jścia: M ⊆ (Z × K × (T ∪ {λ})) × (Z* × K); poniewaŜ (ogólnier<strong>ze</strong>cz biorąc) jest to relacja (a nie funkcja), więc opisany nią konkretny automatmoŜe być tak deterministyczny, jak i niedeterministyczny,− z 0 ∈ Z jest symbolem początkowym stosu,− q 0 ∈ K jest stanem początkowym automatu,− H ⊆ K jest zbiorem stanów akceptowalnych pr<strong>ze</strong>z automat (nazywany go teŜ zbioremstanów końcowych).Tak więc, w stosunku do definicji automatu skończonego, doszły tu Z i z 0- alfabet i symbol początkowy stosu, tj. elementy charakteryzujące stos.


98<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong>Na naszą szc<strong>ze</strong>gólną uwagę zasługuje relacja M, gdyŜ to ona właśnie opisujeposzc<strong>ze</strong>gólne cykle pracy automatu. Wygląda to następująco:− automat (za pomocą głowicy G 2 ) odczytując symbol z wierzchu stosuZ (wymazując go zara<strong>ze</strong>m), sam będąc w stanie wewnętrznym <strong>ze</strong> zbioru K i (zapomocą głowicy G 1 ) czytając z taśmy wejściowej symbol alfabetu T (jest tokolejna litera analizowanego słowa)− zapisuje na stosie element z Z* i pr<strong>ze</strong>chodzi w stan wewnętrzny K.Na stos zapisuje on więc choćby po kilka elementów, a czyta i zrzuca z niego pojednym elemencie. Głowica G 2 ustawiona jest zaws<strong>ze</strong> na ostatnim elemencie stosu,a głowica G 1 na kolejnym elemencie analizowanego słowa. Tak więc powyŜszaformalna definicja automatu <strong>ze</strong> <strong>stosem</strong> opisuje (tu: popr<strong>ze</strong>z relację pr<strong>ze</strong>jścia)w identyczny sposób działanie stosu, jak to sami uczyniliśmy popr<strong>ze</strong>dnio.Tak np., automat analizując, czy słowo aaabbb naleŜy do języka L = {a i b i : i ∈ N},najpierw czytając a - odkłada je na stosie, a następnie czytając b zdejmuje <strong>ze</strong> stosu pojednym a. Gdy moment wy<strong>ze</strong>rowania stosu do jego stanu początkowego zbiegnie sięz momentem pr<strong>ze</strong>czytania całego słowa - będzie to oznaczać, Ŝe automat tenakceptuje to słowo.K o n f i g u r a c j ą w automacie <strong>ze</strong> <strong>stosem</strong> nazywamy wyraŜenie Wq ∈ Z * K,gdzie W ∈ Z * , a q ∈ K. Są to więc jedynie jego dane wewnętrzne: ciąg symboli nastosie wraz z aktualnym stanem automatu.S ł o w e m w automacie <strong>ze</strong> <strong>stosem</strong> nazywamy zaś wyraŜenie WqV ∈ Z * KT * ,gdzie W ∈ Z * , q ∈ K, a V ∈ T * . Jest to więc konfiguracja automatu (jego środowisko(*)z a z b z c z d z q a a a a b a c a dstos stan analizowanesłowoKONFIGURACJAstos = pamięć <strong>ze</strong>wnętrznastan = pamięć wewnętrzna= środowisko wewnętrzneSŁOWO = środowisko <strong>ze</strong>wnętrzne Diagram 7.1.wewnętrzne) wraz z niepr<strong>ze</strong>czytanym jeszc<strong>ze</strong> fragmentem analizowanego słowa (jegośrodowisko <strong>ze</strong>wnętrzne). Tak więc mamy sytuację jak na diagramie 7.1.Niech:- z oznacza ostatni symbol na stosie, ową trójkę zaznaczy-- q oznacza stan wewnętrzny automatu, liśmy na powyŜszym


<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong> 99- a - odczytywany właśnie symbol z taśmy diagramie pr<strong>ze</strong>z „(*)”(ową trójkę oznaczyliśmy na powyŜszym diagramie pr<strong>ze</strong>z „( * )”).Wtedy M(z,q,a) = {(z 1 ,q 1 ), ..., (z m ,q m )}, gdzie z i ∈ Z * , q i ∈ K, zaś m jest dowolnąliczbą naturalną (zauwaŜmy, Ŝe mamy tu zbiór rozwiązań, a nie tylko jedno rozwiązanie,bo zgodnie z definicją M jest relacją, a nie koniecznie funkcją). Czytając więctrójkę (z,q,a) - automat ów zamienia fragment słowa w jedną z par (z i , q i ), gdzie1 ≤ i ≤ m. Dodajmy tu jeszc<strong>ze</strong>, Ŝe dla oznac<strong>ze</strong>nia, Ŝe (z i , q i ) ∈ M(z,q,a) stosujemyzapis zqa → z i q i .Widzimy więc, Ŝe za sprawą relacji M konfiguracja Wq = W 1 zq (tj. taka,w której z jest ostatnim symbolem w W) pr<strong>ze</strong>chodzi w konfigurację W 1 z i q igdzie W, W 1 , z i ∈ Z*, z ∈ Z, zaś q, q i ∈ K.stos stanJeŜeli przy powyŜszych oznac<strong>ze</strong>niach w „zqa → z i q i ”:− z i = λ, to oznacza to, Ŝe po zdjęciu z <strong>ze</strong> stosu, nic nie weszło z powrotem na jegomiejsce, w wyniku c<strong>ze</strong>go długość stosu zmniejszyła się o 1,− z i = z' (gdzie z' ∈ Z), to oznacza to, Ŝe w stosie na miejscu elementu z znalazł sięelement z' (czyli długość stosu nie zmieniła się); jeŜeli przy tym z' = z, to stosw ogóle się nie zmienił,− z i = z'w (gdzie z' ∈ Z, zaś w ∈ Z * ), to oznacza to, Ŝe długość stosu zwiększyła sięo |w| (długość słowa w); jeŜeli przy tym z' = z, to wówczas w stosunku do stanupoczątkowego na stos dodatkowo zostały połoŜone elementy w.Uwaga.MoŜemy spotkać się takŜe z instrukcją postaci zq → z i q i , gdzie z ∈ Z, z i ∈ Z * , zaśq, q i ∈ K (jest to oczywiście instrukcja zqa → z i q i z a = λ). Powoduje ona po wymazaniu<strong>ze</strong> stosu z zapisanie na nim z i , pozostawiając wejście bez zmian (taśma wejściowanie zmienia się i stoi w miejscu). Instrukcję tę wykonujemy bez względu nato, co stoi na wejściu (λ, czy teŜ słowo niepuste).Instrukcję tę wykorzystamy w dowodzie twierd<strong>ze</strong>nia 7.1, gdzie za u wstawimy z'z(gdzie z, z' ∈ Z). Będzie więc ona oznaczała wpisanie na stos dodatkowego elementubez „ruszania” analizowanego słowa. Ze względu na to, Ŝe będzie ona tam wykonywanatylko na początku działania automatu - będzie oznaczała wpisanie dodatkowegoelementu z' na samo dno stosu.Podobnie, instrukcja ta jest stosowana, gdy automat nie ma juŜ co czytać, gdyŜ całesłowo zostało juŜ pr<strong>ze</strong>czytane (wtedy oczywiście obligatoryjnie a = λ), lecz jego ana-


100<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong>liza pr<strong>ze</strong>z automat nadal jest kontynuowana. W sytuacji tej taśma wejściowaoczywiście stoi, co (przy niewłaściwym dobor<strong>ze</strong> instrukcji) moŜe spowodowaćzapętlenie się pracy automatu. Taśma moŜe stać równieŜ wówczas, gdy stan pr<strong>ze</strong>jścia automatu A w danej sytuacjinie jest wyznaczony pr<strong>ze</strong>z relację M (nie musi być bowiem ona całkowita).Ze stanami nieokreślonymi dla danej trójki (z,q,a) mamy do czynienia wówczas, gdyzaleŜy nam, aby automat nie akceptował słów, w których teraz miałoby wystąpić a.Automat <strong>ze</strong> <strong>stosem</strong> nie musi być więc zupełny. Oznacza to z kolei, Ŝe w tymprzypadku w czasie analizy (złego) słowa moŜe on stanąć.Wspomnijmy jeszc<strong>ze</strong> w tym miejscu, Ŝe stosu oczywiście nigdy nie da się zatrzymaćw trakcie pracy automatu (zaws<strong>ze</strong> bowiem będzie on aktywny - najpierw automatzrzuci z niego pierwszy symbol z wierzchu, a następnie zapis<strong>ze</strong> na nim pewnąliczbę symboli).Podajmy jeszc<strong>ze</strong> pozostałe, potr<strong>ze</strong>bne nam, definicje.Mówimy, Ŝe automat <strong>ze</strong> <strong>stosem</strong> A r e d u k u j e w j e d n y m k r o k u słowoX ∈ Z * KT * do słowa Y ∈ Z * KT * (co oznaczamy: X → Y) witw, gdy:Abiorąc pod uwagę, Ŝe X i Y są odpowiednio następującej postaciX = W z q a P (gdzie q, p ∈ K,Y = W u p P W, u ∈ Z * , z ∈ Z,P ∈ T*, a ∈ T∪ {λ})stos stan taśmamamy, Ŝe: (u,p) ∈ M(z,q,a).Widzimy, Ŝe automat w pojedyńczym kroku czytając - zdejmuje z taśmy po jednymsymbolu (a), a zdejmując <strong>ze</strong> stosu po jednym symbolu (z) - zapisuje na nim dowolnąliczbę symboli alfabetu stosu (u). W wyniku tej operacji automat pr<strong>ze</strong>chodzi zjednego stanu (q) w drugi (p), być moŜe nawet ten sam (p = q).Mówimy, Ŝe X r e d u k u j e s i ę do Y (lub: automat A redukuje X do Y) witw,gdy istnieje ciąg X = X 1 , ..., X n =Y wyraŜeń nad Z * KT * taki, Ŝe X i → X i + 1 dlaAkaŜdego i = 1, …, n - 1.


<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong> 101Pr<strong>ze</strong>z L(A) oznaczamy j ę z y k a k c e p t o w a n y p r z e z a u t o m a t z es t o s e m A, zdefiniowany w następujący sposób:L(A) = {P ∈ T* : z 0 q 0 P → * Wp, W ∈ Z*, p ∈ H (⊆ K)},Aczyli jest to zbiór tych wszystkich słów nad alfabetem T * , dla których(popr<strong>ze</strong>dzonych konfiguracją początkową z 0 q 0 ) istnieje taki pr<strong>ze</strong>bieg (czyli ciągkolejnych redukcji), Ŝe w momencie, gdy automat pr<strong>ze</strong>jdzie całą taśmę - musi się onznajdować w stanie akceptowalnym, lecz jego stos nie koniecznie musi być pusty.Przykład 7.1.Napisać automat <strong>ze</strong> <strong>stosem</strong> akceptujący język L = {a n b n : n > 0}.Niech A = , gdzie relacja M (będąca tufunkcją) zdefiniowana jest w następujący sposób:M: a b λ(z 0 , q 0 ) (z 0 a, q 0 ) 1 ∅ ∅(a, q 0 ) (a a, q 0 ) 2 (λ, q 1 ) 3 ∅(z 0 , q 1 ) ∅ ∅ (λ, q 2 ) 5(a, q 1 ) ∅ (λ, q 1 ) 4 ∅(z 0 , q 2 ) ∅ ∅ ∅← czyta z taśmy (∈ T ∪ {λ})∅ - to stan nieokreślonyStany określone, w które moŜe pr<strong>ze</strong>jśćautomat dodatkowo ponumerowanoindeksami. Są to zara<strong>ze</strong>m numery operacji.(a, q 2 ) ∅ ∅ ∅ma na jeststosie w stanie↑ ↑(∈ Z) (∈ K) Tab. 7.1.Tak więc np., jeśli automat ten ma na stosie z 0 i jest w stanie q 0 , a z taśmy czyta a -to odłoŜy on na stos z 0 a i pr<strong>ze</strong>jdzie z powrotem w stan q 0 (stan nr 1).Zobaczmy dla przykładu, jak ten automat akceptuje słowo a 3 b 3 .Na początku mamy wyraŜenie z 0 q 0 aaabbb, tj. z 0 q 0 P, gdzie P = aaabbb = a 3 b 3 .PokaŜemy, Ŝe z 0 q 0 P → * Wp, gdzie W ∈ Z * , a p ∈ H.ADokonując poszc<strong>ze</strong>gólnych redukcji - z bazowego słowa z 0 q 0 aaabbb, po kolei otrzymujemy:


102<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong>z 0 q 0 aaabbb 1z 0 a q 0 aabbb 2z 0 aa q 0 abbb 2z 0 aaa q 0 bbb 3z 0 aaλ q 1 bb = z 0 aa q 1 bb 4z 0 aλ q 1 b = z 0 a q 1 b 4z 0 λ q 1 = z 0 q 1 λ 5q 2↓↓stos stan taśma stos stan taśma numer operacji Diagram 7.2.Otrzymaliśmy W = λ ∈ Z * i p = q 2 ∈ H = {q 2 }. Zatem badane słowo P = a 3 b 3 jest akceptowanepr<strong>ze</strong>z ten automat. Zadanie 7.1. Niech T = {a,b}. Zbuduj automat <strong>ze</strong> <strong>stosem</strong> akceptujący tylko i wyłączniewszystkie słowa:a) o krotności „a” równej krotności „b” (musi więc on takŜeakceptować słowo puste λ),b) o krotności „a” więks<strong>ze</strong>j od krotności „b”,c) o postaci uu -1 , gdzie u ∈ T * \ {λ}. 2. <strong>Automaty</strong> z pustym <strong>stosem</strong>Pr<strong>ze</strong>z N(A) oznaczamy j ę z y k a k c e p t o w a n y p r z e z a u t o m a tA z p u s t y m s t o s e m (bądź równowaŜnie: pr<strong>ze</strong>z automat <strong>ze</strong>rujący stos), zdefiniowanyw następujący sposób:N(A) = {P ∈ T * : z 0 q 0 P → * p, p ∈ K}.AZauwaŜmy, Ŝe:− automat <strong>ze</strong>rujący stos akceptuje wszystkie słowa, których analiza doprowadza dowy<strong>ze</strong>rowania stosu (bo p po prawej stronie wyprowad<strong>ze</strong>nia, to inac<strong>ze</strong>j λp, gdzieλ = W ∈ Z * ),− nie jest tu istotne, by p ∈ H (zbiór stanów akceptowalnych); wystarczy, Ŝe p ∈ K(czyli Ŝe jest jakimkolwiek stanem tego automatu).


<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong> 103Zachodzą następujące dwa, „działające w pr<strong>ze</strong>ciwne strony”, twierd<strong>ze</strong>niaodnoszące się do automatów <strong>ze</strong> <strong>stosem</strong>.Twierd<strong>ze</strong>nie 7.1.Dla kaŜdego automatu <strong>ze</strong> <strong>stosem</strong> A, moŜna skonstruować automat <strong>ze</strong> <strong>stosem</strong> A' taki,Ŝe: L(A) = N(A').Twierd<strong>ze</strong>nie 7.2.Dla kaŜdego automatu <strong>ze</strong> <strong>stosem</strong> A, moŜna skonstruować automat <strong>ze</strong> <strong>stosem</strong> A' taki,Ŝe: N(A) = L(A').Twierd<strong>ze</strong>nia te, łącznie wzięte, dają nam równowaŜność automatów <strong>ze</strong> <strong>stosem</strong> z automatami<strong>ze</strong>rującymi stos (tj. innymi słowy, Ŝe siła akceptacyjna tych automatów jesttaka sama). PoniŜej pr<strong>ze</strong>dstawiamy dowody tych twierd<strong>ze</strong>ń.Dowód tw. 7.1.Jest to twierd<strong>ze</strong>nie konstrukcyjne, więc i jego dowód będzie konstrukcyjny.Niech A = .Skonstruujemy automat A', który robi to samo, co automat A, ale dodatkowo jeszc<strong>ze</strong>na koniec (tj., gdy będzie juŜ miał pustą taśmę), gdy będzie w stanie akceptowalnymautomatu A, to wówczas zrzuci jeszc<strong>ze</strong> wszystko <strong>ze</strong> stosu (o ile będzie jeszc<strong>ze</strong> coś nanim miał). śeby jednak automat ten nie akceptował słów, podczas analizy którychautomat A <strong>ze</strong>rował stos, nie pr<strong>ze</strong>chodząc jednak do jednego <strong>ze</strong> stanów H - w automacieA' wprowadzamy dodatkowo jeden symbol na samo dno stosu.Niech mianowicie A' =


104<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong>I c<strong>ze</strong>scSTARTwykonaj instrukcje Awykonajinstrukcje Mczy mozna stosowacinstrukcje M?Tczy stan automatu ∈ H?WYJSCIE:na tasmie: λna stosie: ≠ λnie akceptuje(A', jak i A)STOP………………………………………………………………………………………II c<strong>ze</strong>scczy ostatni symbol Nna stosie ∈ Z ?TTwykonajinstrukcje BNNwykonajinstrukcje Cczy ostatni symbolna stosie ∈ Z ?TNwykonajinstrukcje DWYJSCIE: na tasmie i na stosie: λ, akceptuje (A', jak i A)Rys. 7.2.STOPSposób działania tak zdefiniowanego automatu A' jest pr<strong>ze</strong>dstawiony na schemacieblokowym (rys. 7.2). Schemat ten jest zara<strong>ze</strong>m dowodem równowaŜności automatów A i A',gdyŜ odczytujemy z niego, Ŝe zbiór słów akceptowalnych pr<strong>ze</strong>z automat A pokrywasię <strong>ze</strong> zbiorem słów akceptowalnych pr<strong>ze</strong>z automat A'.Widzimy, Ŝe automat A':1) w pierws<strong>ze</strong>j części swego działania najpierw przy pomocy instrukcji A umoŜliwiapr<strong>ze</strong>jście do takiego sposobu czytania danego słowa, jak to czynił automat A,a następnie wykonuje juŜ instrukcje w identyczny sposób, jak to robił automatA (w tym momencie konfiguracja automatu A' róŜni się od końcowej konfiguracji


<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong> 105automatu A jedynie tym, Ŝe na początku stosu znajduje się tu dodatkowo nowyelement z 0 ');2) następnie, jeŜeli stan automatu jest stanem końcowym automatu A (tj., gdy jest tosłowo akceptowalne pr<strong>ze</strong>z automat A), to w drugiej części swego działania:− wszystkie symbole, które automat A zostawiał na stosie - automat A' zdejmuje<strong>ze</strong> stosu (pierwszy za pomocą instrukcji B, a pozostałe popr<strong>ze</strong>z wielokrotnewykonywanie instrukcji C),− za pomocą instrukcji D, automat A' zdejmuje ostatni element <strong>ze</strong> stosu (jest nimoczywiście z 0 '). Dowód tw. 7.2.RównieŜ i to twierd<strong>ze</strong>nie jest konstrukcyjne, więc i jego dowód będzie konstrukcyjny.Niech A = .PołóŜmy: K' = K ∪ {k'}, gdzie k' ∉ K,H' = {k'},M' = M ∪ {(λk i λ, λk') : k' ∈ K}.Otrzymujemy automat A' =


106<strong>Automaty</strong> <strong>ze</strong> <strong>stosem</strong>Twierd<strong>ze</strong>nia te dają nam równość klasy języków generowanych pr<strong>ze</strong>z gramatykibezkontekstowe z klasą języków rozpoznawalnych pr<strong>ze</strong>z automaty <strong>ze</strong> <strong>stosem</strong>.Tak więc:1) kaŜdy język bezkontekstowy jest akceptowalny pr<strong>ze</strong>z pewien automat <strong>ze</strong> <strong>stosem</strong>, akaŜdy automat <strong>ze</strong> <strong>stosem</strong> rozpoznaje jedynie pewien język bezkontekstowy;2) skoro zachodzi teŜ równość między klasą języków rozpoznawalnych pr<strong>ze</strong>z automaty<strong>ze</strong> <strong>stosem</strong>, a klasą języków rozpoznawalnych pr<strong>ze</strong>z automaty <strong>ze</strong>rujące stos,zatem z pr<strong>ze</strong>chodniości otrzymujemy równość klasy języków rozpoznawalnychpr<strong>ze</strong>z automaty <strong>ze</strong>rujące stos z klasą języków bezkontekstowych, co w sumie dajenam, Ŝe3) następujące klasy języków pokrywają się:- klasa języków bazkontekstowych,- klasa języków rozpoznawalnych pr<strong>ze</strong>z automaty <strong>ze</strong> <strong>stosem</strong>,- klasa języków rozpoznawalnych pr<strong>ze</strong>z automaty <strong>ze</strong>rujące stos.Sytuacja ta została pr<strong>ze</strong>dstawiona na poniŜszym diagramie.klasa jezykowrozpoznawalnychpr<strong>ze</strong>z automatyklasa jezykow⊆⊆rozpoznawalnych= =pr<strong>ze</strong>z automaty⊇⊇<strong>ze</strong> <strong>stosem</strong><strong>ze</strong>rujace stosz tw. 7.1 z tw. 7.3Diagram 7.3.z tw. 7.2z tw. 7.4klasa jezykowbezkontekstowych

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!