AUTOMATY ZE STOSEM (AZS) (PUSH-DOWN AUTOMATON PDA)
Def. Automat ze stosem (AZS) jest to układ
Q q F
M , , , 0, , , taki że:
– jest skończonym alfabetem (wejścia), , – jest skończonym alfabetem (stosu),
– Q jest skończonym zbiorem (stanów), – q0 Q (stan początkowy),
– :Q
P
Q
(funkcja przejścia),– F Q (zbiór stanów końcowych), – # (symbol dna stosu)
Opis funkcji przejścia:
Q q
q, , a
, B,B
q ,,a B
q,B
znaczy:
q - bieżący stan q- nowy stan a - czytany symbol
B - symbol zdejmowany B - symbol wkładany ze stosu na stos
Uwaga! Nie zdejmujemy # ze stosu.
Oznaczenia: zamiast
q,B
q,a,B
piszemy q,a,B q,B
Def. Konfiguracją nazywamy układ
q ,,x y
, taki że qQ, x, y.Konfiguracja początkowa:
q0,x,#
Konfiguracja akceptująca:
qf ,,#
, qf FOkreślamy relację
q,x,y
|M
q,x,y
( czytaj: M bezpośrednio przeprowadza
q ,,x y
w
q,x,y
)następująco:
Q q
q, , a
, B,B
, x, y
q,ax,yB
|M
q,x,yB
gdzie
q - bieżący stan q- nowy stan ax - słowo do wczytania x - reszta słowa yB - aktualny stos yB - nowy stos
Dla automatu ze stosem budujemy diagram stanów, w którym
oznacza
q ax yB
q x yB
M
, ,
| ,
,
a, B[B’]
q q’
Określamy relację :
q x y
q x y
M
, ,
| , ,
(czytaj: M przeprowadza
q ,,x y
w
q,x,y
), następująco:
q x y
q x y
M
, ,
| ,
, ,
jeżeli istnieją opisy chwilowe
qi,xi, yi
, 0 i n, n 0, takie że
q0,x0, y0
q,x,y
qn,xn,yn
q,x,y
qi1,xi1,yi1
|M
qi,xi,yi
dla każdego 1 i n.Def. AZS M akceptuje łańcuch x, jeżeli
q0,x,#
|
qf ,,#
M
, dla pewnego qf F.
Język akceptowany przez M (L
M ) jest to zbiór wszystkich łańcuchów akceptowanych przez M.Fakt . Każdy język regularny jest akceptowany przez pewien AZS.
Dowód.
Każdy DAS można traktować jako AZS, który nie korzysta ze stosu, tzn.
# .Funkcję przejścia określamy następująco:
q,a,#
q,a ,#
q, a,
q ,, a
q, ,
PRZYKŁADY
Przykład I.
Pokażemy, że język
anbn: n 0
, który nie jest regularny, jest akceptowany przez pewien AZS.Określamy AZS następująco:
a,b
,
a,# , Q
q0, q1
, F QFunkcja przejścia:
a q a
q0, , 0,
, ,
, 1
0 b a q
q
, ,
, 1
1 b a q
q
Obliczenie dla słowa aabb:
q0,aabb,#
|
q0,abb,#a
|
q0,bb,#aa
|
q1,b,#a
|
q1,,#
. Zatem aabbL
M .Przykład II.
L
x: xa xb
Określamy AZS następująco:
a,b
a,b,#
Q
q0,q1,q2
F
q0Funkcja przejścia:
a q a
q0, , 1, q2,b, q2,b b
q b
q0, , 2, q2,a,bq2, a
q a
q1, , 1, q1,,#q0,#
, ,
, 1
1 b a q
q q2,,#q0,#
ML aabb
q0,aabb,#
|
q1,abb,#a
|
q1,bb,#aa
|
q1,b,#a
|
q1,,#
|
q0,,#
.
M L abba
q0,abba,#
|
q1,bba,#a
|
q1,ba,#
|
q0,ba,#
|
q2,a,#b
|
q2,,#
|
q0,,#
.
ML abbb
q0,abbb,#
|
q1,bbb,#a
|
q1,bb,#
|
q0,bb,#
|
q2,b,#b
|
q2,,#bb
STOP.Deterministyczny automat ze stosem DAZS
AZS
M
, ,Q, q0,, F
jest deterministyczny, jeżeli
1) dla każdego qQ i B
q,,B
q,a,B
dla każdego a
2) dla każdego qQ , B i a
, zbiór
q ,,a B
jest co najwyżej jednoelementowy.UWAGA!
DAZS AZS, ale DAZS AZS
np. nie istnieje DAZS akceptujący język L
wwR :w
a,b
.Uogólniony automat ze stosem UAZS Uogólniony AZS (UAZS) dopuszcza przejścia postaci:
y q B
a
q, , , gdzie
q,qQ, a
, B
, y .Każde przejście q,a,B q,y można zastąpić zwykłymi przejściami wprowadzając dodatkowe stany, np.
CD q
B a
q, , , zastępujemy przez
C q B
a
q, , 1, D q q1,, ,
gdzie q1 specjalny nowy stan.
Zatem, dla każdego UAZS M istnieje AZS M, taki że L
M L
M .Przykład
2 : 1
a b i
L i i ,
a,b ,
A,# AZS Q
q0,q1,q2
F
q1Funkcja przejścia:
A q a
q0, , 2, A q q2,, 0,
, ,
, 1
0 b A q
q
, ,
, 1
1 b A q
q
UAZS
q0, q1
Q F
q1 Funkcja przejścia:AA q
a
q0, , 0,
, ,
, 1
0 b A q
q
, ,
, 1
1 b A q
q