Matematyczne Podstawy Informatykiagrosser/dydaktyka/matpodinf/w9.pdf · 2014. 1. 20. · Maszyna...

25
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014

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