download

Matakuliah
Tahun
Versi
: T0162/Teori Bahasa dan Automata
: 2005
: 1/0
Pertemuan 13
PUSH DOWN AUTOMATA
(PDA)
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• << TIK-99 >>
• << TIK-99>>
2
Outline Materi
•
•
•
•
•
Materi 1
Materi 2
Materi 3
Materi 4
Materi 5
3
PUSH DOWN AUTOMATA
(PDA)
• Mesin “counter part” dari CFG
• Finite automation yang terdiri dari :
 finite control
 input tape
 stack
4
PUSH DOWN AUTOMATA
(PDA)
Input
tape
Finite
Control
Stack
5
PUSH DOWN AUTOMATA
(PDA)
• PDA dapat mengenal set yang tidak
regular seperti :
L = { wcwR w dalam (0+1)*}
• Konstruksi dan mekanisme kerja PDA
yang menerima :
L = { wcwR w dalam (0+1)*}
6
PUSH DOWN AUTOMATA
(PDA)
Grammar : S  0S0 1S1 c
 Finite Control (FC) 2 state : q1, q2
 Stack Symbol : piring biru (B), piring hijau (H),
piring merah (M).
 Input symbol : 0, 1
7
PUSH DOWN AUTOMATA
(PDA)
Mekanisme kerja :
1. M di stack, FC dalam state q1
2. Input : 0, FC : q1
Input : 1, FC : q1
Untuk kedua input
3. Input
 Push : B
 Push : H
 FC tetap di q1
: c, FC : q1, FC : masuk q2
8
PUSH DOWN AUTOMATA
(PDA)
4. Input
: 0, FC dalam state : q2
top stack : B  Pop : B
Input
: 1, FC : q2, top stack : H  Pop : H
untuk kedua input : FC tetap di q2
5. FC dalam q1, top : M  pop : M
6. Di luar ketentuan di atas : PDA tidak bergerak
9
PUSH DOWN AUTOMATA
(PDA)
• Mekanisme kerja di atas digambarkan dalam
tabel berikut :
10
PUSH DOWN AUTOMATA
(PDA)
Definisi :
PDA menerima language dengan dua cara :
1. Stack menjadi kosong
2. Finite Automaton masuk final state
Secara formal, PDA :
M = (Q, , t, , q0, Z0, F)
11
PUSH DOWN AUTOMATA
(PDA)
dimana :
Q : Himpunan state
 : Alphabet input
t : Alphabet Stack
q0  Q : State awal
Z0  t
: Start symbol stack
FQ
: Himpunan final state

: Mapping :
Q  (  {})  t  Subset Q  t*
12
PUSH DOWN AUTOMATA
(PDA)
Move :
• Langkah (move) PDA didefinisikan sebagai :
1. (q,a,z) = {(p1,Y1),( p2,Y2), …,( pm,Ym)}
dimana : q, pi, 1  i  m, state
a
z : stack symbol
Yi  t*, 1  i  m
2. (q,,z) = {( p1,Y1),( p2,Y2), …,( pm,Ym)}
13
PUSH DOWN AUTOMATA
(PDA)
Instantenuous Description (ID) :
ID adalah triple : (q,w,Y) di mana
(q,aw,z) ├ (p, w, b)
jika  (q, a, z) berisi (p, b)
Catatan : ‘a’ dapat sama dengan 
14
PUSH DOWN AUTOMATA
(PDA)
• Contoh :
Langkah-langkah PDA untuk menerima
language :
L = { wcwR w dalam (0+1)*}
dengan empty stack, sebagai berikut :
M = ({q1, q2}, {0, 1, c}, {M, B, H}, , q, M,
)
15
PUSH DOWN AUTOMATA
(PDA)
dimana  didefinisikan sbb :
1. ( q1, 0, M) = {( q1, BM)}
2. ( q1, 0, B) = {( q1, BB)}
3. ( q1, 0, H) = {( q1, BH)}
4. ( q1, c, M) = {( q2, M)}
5. ( q1, c, B) = {( q2, B)}
6. ( q1, c, H) = {( q2, H)}
16
PUSH DOWN AUTOMATA
(PDA)
7. ( q2, 0, B) = {( q2, )}
8. ( q2, , M) = {( q2, )}
9. ( q1, 1, M) = {( q1, HM)}
10. ( q1, 1, B) = {( q1, HB)}
11. ( q1, 1, H) = {( q1, HH)}
12. ( q2, 1, H) = {( q2, )}
17
PUSH DOWN AUTOMATA
(PDA)
Misalkan string input : 001c100
Langkah-langkah PDA :
(q1, 001c100, M)  (q1, 01c100, BM)
 (q1, 1c100, BBM)  (q1, c100, HBBM)
 (q2, 100, HBBM)  (q2, 00, BBM)
 (q2, 0, BM)  (q2, , M)  (q2, , )
 accept
18
PUSH DOWN AUTOMATA
(PDA)
Accepted Languages :
Untuk suatu PDA M = (Q, , t, , q0, Z0, F), L(M)
adalah language yang diterima dengan final
state didefinisikan sebagai :
*
{ w ( q0, w, Z0) ├ (p, , ) untuk suatu p  F
dan  dalam *}
N(M) language yang diterima dengan “empty
stack” (null stack) didefinisikan sebagai :
*
{ w(q0,w,Z0) ├ (p, , ) untuk p  Q }
19
PUSH DOWN AUTOMATA
(PDA)
Deterministic PDA :
Hanya ada satu kemungkinan move dari suatu
ID, atau dengan kata lain suatu PDA M = (Q,
,y,,q0,Z0,F) deterministic bila :
1. untuk semua q  Q dan Z  y, jika
(q,,z)tidak empty untuk semua a  .
2. tidak ada q  Q, Z  y, dan a  U{}, di
mana (q,a,Z) berisi lebih dari satu elemen.
20
PUSH DOWN AUTOMATA
(PDA)
Contoh :
PDA yang menerima :
L = { wwRw dalam (0+1)*}
M = ({q1,q2},{0,1},{M.B,H},,q,R,)
dengan  sebagai berikut :
1. (q1,0,M) = {(q1,BM)}
2. (q1,1,M) = {(q1,HM)}
21
PUSH DOWN AUTOMATA
(PDA)
3. (q1,0,B) = {(q1,BB),(q2,)}
4. (q1,0,H) = {(q1,BH)}
5. (q1,1,B) = {(q1,HB)}
6. (q1,1,H) = {(q1,HH), (q2,)}
7. (q1,0,B) = {(q2,)}
8. (q1,1,H) = {(q2,)}
9. (q1,,M) = {(q2,)}
10. (q2,,M) = {(q2,)}
Misalkan string input : 001100
Langkah-langkah PDA :
22
PUSH DOWN AUTOMATA
(PDA)
23
PUSH DOWN AUTOMATA
(PDA)
Theorem :
Jika L suatu CFL, maka ada suatu PDA
sehingga L = N(M).
Theorem :
Jika L adalah N(M) untuk suatu PDA M,
maka L adalah CFL.
24
<< CLOSING>>
25