Matematyczne Podstawy Informatykiagrosser/dydaktyka/matpodinf/w9.pdf · 2014. 1. 20. · Maszyna...
Transcript of Matematyczne Podstawy Informatykiagrosser/dydaktyka/matpodinf/w9.pdf · 2014. 1. 20. · Maszyna...
-
Matematyczne Podstawy Informatyki
dr inż. Andrzej Grosser
Instytut Informatyki Teoretycznej i StosowanejPolitechnika Częstochowska
Rok akademicki 2013/2014
-
Automat ze stosem
Automat ze stosem to szóstka uporządkowana (Q,Σ, Γ, δ, q0, F ),gdzie:
1. Q jest skończonym zbiorem stanów;
2. Σ jest alfabetem wejściowym;
3. Γ jest alfabetem stosu;
4. δ : Q × Σ� × Γ� → P(Q × Γ�);5. q0 ∈ Q jest stanem początkowym;6. F ⊆ Q jest zbiorem stanów akceptujących.
-
Automat ze stosem
-
Przykład
Automat rozpoznający język 0n1n
I Q = {q1, q2, q3, q4},I Σ = {0, 1},I Γ = {0, $},I F = {q1, q4},I Funkcja przejścia (puste miejsca oznaczają ∅:
Wejście 0 1 �Stos 0 $ � 0 $ � 0 $ �q1 {(q2, $)}q2 {(q2, 0)} {(q3, �)}q3 {(q3, �)} {(q4, �)}q4
-
Przykład
-
Opis chwilowy I
I Opis chwilowy to trójka (q,w , γ), gdzie:I q jest stanem,I w jest pozostałą częścią wejścia,I γ jest zawartością stosu.
I Jeżeli dla AZS = (Q,Σ, Γ, δ, q0,Z0,F ) δ(q, a,X ) zawiera(p, α). Wtedy dla wszystkich łańcuchów w ∈ Σ∗ i β ∈ Γ∗:
(q, aw ,Xβ) ` (p,w , αβ)
-
Opis chwilowy II
1. Jeżeli ciąg opisów chwilowych jest poprawny dla automatu zestosem P, to obliczenie utworzone poprzez dodanie tegosamego łańcucha wejściowego na koniec wejścia w każdymopisie chwilowym jest również poprawne.
2. Jeśli dane obliczenie jest poprawne dla automatu ze stosem P,to obliczenie utworzeone przez dodanie tych samych symbolistosowych pod stosem w każdym opisie jest również poprawne.
3. Jeśli dane obliczenie jest poprawne dla automatu ze stosem Pi jaksa końcowka wejścia nie została pobrana, to możnausunąć tę końcówkę z wejścia w każdym opise chwilowym, awynikowe obliczenie jest nadal poprawne.
-
Opis chwilowy III
Twierdzenie 1Jeżeli P = (Q,Σ, Γ, δ, q0,Z0,F ) jest automatem ze stosem oraz(q, x , α) `∗ (p, y , β), to dla dowolnych łańcuchów w ∈ Σ∗ i β ∈ Γ∗:
(q, x ,w , αγ) `∗ (p, yw , βγ)
Twierdzenie 2Jeżeli P = (Q,Σ, Γ, δ, q0,Z0,F ) jest automatem ze stosem oraz
(q, xw , α) `∗ (p, yw , β)
to jest także prawdą, że (q, x , α) `∗ (p, y , β).
-
Automat ze stosem akceptujący poprzez pusty stos
I Można podać równoważną definicję automatu ze stosem,definiując go jako automat, dla którego słowo wejścioweopróżni jego stos.
I Automat tego rodzaju jest nazywany automatemakceptującym przez pusty stos.
I Automat podany w poprzedniej definicji jest nazywanyakceptującym przez stan końcowy.
I Dla danego automatu ze stosem języki akceptowane przezniego przez pusty stos i przez stan końcowy z reguły są różne.
I Można jednak zawsze podać przekształcenie automatu zestosem akceptującego poprzez stan końcowy na automatakceptujący poprzez pusty stos (i odwrotnie), który akceptujeten sam język.
-
Od pustego stosu do stanu końcowego I
Automat ze stosem akceptujący przez pusty stos:PN = (Q,Σ, Γ, δN , q0,Z0) można przekształcić na automat zestosem akceptujący przez stan końcowy rozpoznający ten samjęzyk: PF = (Q ∪ {p0, pf },Σ, Γ ∪ X0, δN , q0,X0, {pf }), gdzie δFzdefiniowana jest następująco:
1. δF (p0, �,X0) = {q0,Z0X0},2. Dla wszystkich stanów q ∈ Q wejść a ∈ Σ ∪ {�} i symboli
stosowych Y ∈ Γ, δF (q, a,Y ) zawiera wszystkie pary zδN(q, a,Y ).
3. Dodatkowo dla dowolnego q ∈ Q, δF (q, �,X0) zawiera (pf , �).
-
Od pustego stosu do stanu końcowego II
-
Od stanu końcowego do pustego stosu I
Automat ze stosem akceptujący przez stan końcowy:PF = (Q,Σ, Γ, δF , q0,Z0,F )można przekształcić na automat ze stosem akceptujący przez pustystos rozpoznający ten sam język:PN = (Q ∪ {p0, p},Σ, Γ ∪ {X0}, δN , p0,X0), gdzie δN jestzdefiniowana jako:
1. δN(p0, �,X0) = {(q0,Z0X0},2. Dla wszystkich stanów q ∈ Q, symboli wejściowychq ∈ Σ ∪ {�} oraz Y ∈ Γ, δN(q, a,Y ) zawiera każdą paręnależącą do δF (q, a,Y ) (PN symuluje PF ).
3. Dla wszystkich stanów akceptujących q ∈ F oraz symbolistosowych Y ∈ Γ ∪ {X0}, deltaN(q, �,Y ) zawiera (p, �).Według tego, za każdym razem, gdy PF zaakceptuje wejście,PN może zacząć opróżniać stos bez pobierania dalszej częściwejścia.
-
Od stanu końcowego do pustego stosu II
4. Dla wszystkich symboli stosowych Y ∈ Γ ∪ {X0},δN(p, �,Y ) = {(p, �)}. Będąc w stanie p, PN po prostuwyrzuca każdy symbol ze swego stosu, dopóki stos ten niebędzie pusty.
-
Od stanu końcowego do pustego stosu III
-
Przekształcenie GBK na AZS I
1. Na stosie umieszczono znacznik $ oraz symbol początkowygramatyki.
2. Powtarzane są następujące kroki:2.1 Jeżeli na szczycie stosu jest zmienna oznaczona jako A, to
niedeterministycznie wybiera się jedną z produkcji dla tejzmiennej i zastępuje się ją prawą stroną tej produkcji.
2.2 Jeżeli na stosie jest symbol końcowy oznaczony jako a, toczytany jest kolejny symbol z wejścia i porównywany z a. Jeżeliporównanie wypadło pozytywnie można kontynuowaćprocedurę, w przeciwnym razie należy odrzucić tą ścieżkęobliczeń.
2.3 Jeżeli na szczycie stosu jest symbol $, to następuje wejście wstan akceptujący. W sytuacji, gdy nie ma już symboliwejściowych, to takie słowo zostaje zaakceptowane
-
Przekształcenie AZS na GBK I
Twierdzenie 3Niech P = (Q,Σ, Γ, δ, q0,F ) będzie automatem ze stosem, wtdyistniej gramatyka bezkontekstowa G, dla której L(G ) = N(P).
-
Przekształcenie AZS na GBK II
Algorytm konstrukcji G = (V ,Σ,R,S).Zbiór zmienych V składa się z:
1. specjalnego symbolu S, który jest symbolem początkowym,2. wszystkich symboli postaci [pXq], gdzie p, q ∈ Q, a X ∈ Γ.
I Symbol [pXq] reprezentuje akcję ostatecznego zdjęcia symboluX ze stosu i zmianę stanu z początkowego p na końcowe q.
Produkcje gramatyki G są następujące:1. Dla wszystkich stanów p gramatyka G ma produkcjęS → [q0Z0p].
I W ten sposób generuje się wszystkich łańcuchy w, którepowodują zdjęcie przez automat ze stosem symbolu Z0 przyjednoczesnym przejściu ze stanu q0 do stanu p.
I Inaczej (q0,w ,Z0) `∗ (p, �, �) - symbol początkowy Swygeneruje wszystkie łańcuchy w, które powodują opróżnienieprzez P swego stosu, po wystartowaniu ze stanu początkowego.
-
Przekształcenie AZS na GBK III
2. Niech δ(q, a,X ) zawiera parę (r ,Y1Y2...Yk),gdzie:I a ∈ Σ lub a = �.I k może być dowolną liczbą naturalną, wyłącznie z 0, w którym
przypadku para ma postać (r , �). Wtedy dla wszystkich liststanów r1, r2, ..., rk , gramatyka G ma produkcję:
[qXrk ]→ a[rY1r1][r1Y2r2]...[rk−1Yk rk ]
-
Maszyna Turinga - koncepcja I
I Nieograniczona pamięć jest modelowana jako taśma onieskończonej długości.
I Maszyna ma głowicę, która może się przesuwać po taśmie,czytać i zapisywać symbole.
I Początkowo wypełniona jest słowem wejściowym, resztataśmy jest wypełniona symbolem pustym.
I W sytuacji, gdy maszyna ma zapisać jakąś informację może jązapisać na taśmie.
I Do odczytu informacji maszyna może przesunąć nad niągłowicę.
-
Maszyna Turinga - koncepcja II
I Maszyna kontynuuje obliczenia aż do osiągnięcia wyniku.
I Wynikiem jest informacja akceptuj lub odrzuć, jeżeli maszynajest odpowiednio w stanie akceptującym lub odrzucającym.
I Maszyna może kontynuować obliczenia w nieskończoność,jeżeli w żadnym momencie nie wejdzie w stan akceptujący lubodrzucający.
-
Różnice pomiędzy maszyną Turinga a automatemskończonym
I Maszyna Turinga może czytać i zapisywać na taśmie.I Głowica czytająco-zapisująca może przesuwać taśmę w dwóch
kierunkach.I Taśma jest nieskończona.I Wejście w stan akceptujący lub odrzucający powoduje
natychmiastowe zatrzymanie maszyny.
-
Działanie maszyny Turinga I
1. Maszyna przechodzi wzdłuż taśmy między odpowiadającymisobie pozycjami po różnych stronach znaku #, by sprawdzić,czy na tych samych pozycjach stoją jednakowe znaki.
2. Jeżeli znaki są różne lub brakuje symbolu # to odrzuca słowowejściowe.
3. W przeciwnym razie wykreśla znaki, by zapamiętać część,która została już sprawdzona.
4. Po wykreśleniu wszystkich znaków na lewo od znaku #maszyna sprawdza czy na prawej stronie zostały jakieś znaki -jeżeli zostały odrzuca słowo, w przeciwnym razie akceptuje.
-
Działanie maszyny Turinga II
1. [0] 1 1 1 0 1 # 0 1 1 1 0 1 |_|
2. x [1] 1 1 0 1 # 0 1 1 1 0 1 |_|
3. x 1 1 1 0 1 # [x] 1 1 1 0 1 |_|
4. [x] 1 1 1 0 1 # x 1 1 1 0 1 |_|
5. x x x x x x # x x x x x x [|_|]
6. Akceptuj
-
Maszyna Turinga - formalna definicja
Maszyna Turinga to siódemka uporządkowana(Q,Σ, Γ, δ, q0, qA, qO), gdzie Q, Σ, Γ są zbiorami skończonymi i
I Q jest zbiorem stanów,I Σ jest alfabetem wejściowym, do którego nie należy znak
pusty,I Γ jest alfabetem taśmy, gdzie t ∈ Γ oraz Σ ⊆ Γ,I δ : Q × Σ× Γ→ Q × Γ× {L,R} jest funkcją przejścia,I q0 ∈ Q jest stanem początkowym,I qA ∈ Q jest stanem akceptującym,I qO ∈ Q jest stanem odrzucającym, gdzie qO 6= qA.
-
Literatura
Do napisania materiałów wykorzystano:
1. M. Sipser “Wprowadzenie do teorii obliczeń”, WNT 2009
2. J.E. Hopcroft, R. Motwani, J.D. Ullman “Wprowadzenie doteorii, automatów, języków i obliczeń”, PWN 2005