Title: Teori Bahasa dan Otomata 2 sks
1Teori Bahasa dan Otomata2 sks
Push Down Automata Versi 1
- Rifki Indra Perwira, S.Kom
- rifkiindra_at_gmail.com
2Pendahuluan
- PDA merupakan mesin berbasis CFG
- FSA mempunyai memori yg terbatas sebaliknya PDA
mempunyai memori yang tak terbatas disebut stack - Stack adalah suatu tempat penyimpanan yang
berlaku sifat LIFO (last in first out)
3Bentuk umum PDA
- Kalau di FSA kita mengenal 5 tupel, akan tetapi
untuk PDA ada 7 tupel - M(Q,?,d,?,S,F,Z), dengan
- Q kumpulan state
- ? input
- d tabel transisi
- ? simbol kumpulan stack
- S initial state
- F final state
- Z stack awal
4Cara kerja stack PDA
A
B
C
- Top Stack
- Di pop
- Di push D
B
C
D
B
C
5Gambaran awal
d d(q1,?,Z)(q2,Z) d(q1,a,Z)(q1,AZ) d(q1,b,Z
)(q1,BZ) d(q1,a,A)(q1,AA) d(q1,b,A)(q1,?)
d(q1,a,B)(q1,?) d(q1,b,B)(q1,BB)
6- d
- d(q1,?,Z)(q2,Z) ? state q1 dgn stack awal Z,
membaca input ? menghasilkan state q2 dengan top
stack Z - d(q1,a,Z)(q1,AZ)? state q1 dgn stack awal Z,
membaca input a menghasilkan state q1 dgn top
stack AZ (push A) - d(q1,b,Z)(q1,BZ) (push B)
- d(q1,a,A)(q1,AA)
- d(q1,b,A)(q1,?)? state q1 dgn stack awal A,
membaca input b, menghasilkan state q1 dgn stack
di pop - d(q1,a,B)(q1,?)
- d(q1,b,B)(q1,BB)
7Contoh simple
- Contoh PDA
- Q q1,q2
- ?a,b
- ?A,B,Z
- Sq1
- Fq2
- ZZ
d 1.d(q1,?,Z)(q2,Z) 2.d(q1,a,Z)(q1,AZ) 3.d(
q1,b,Z)(q1,BZ) 4.d(q1,a,A)(q1,AA) 5.d(q1,b,A
)(q1,?) 6.d(q1,a,B)(q1,?) 7.d(q1,b,B)(q1,B
B)
8Buktikan string abba diterima PDA ini..
- d(q1,abba,Z) (q1,bba,AZ)---(2)
- (q1,ba,Z)---(5)
- (q1,a,BZ)---(3)
- (q1,?,Z)---(6)
- (q2,Z)---(1)
State terakhir ada di q2, sehingga string
abba di terima PDA diatas, dgn top stack Z.
9Diagram state
b,Z/BZ
b,A/?
a,Z/AZ
?,Z/Z
q1
q2
b.B/BB
a,A/AA
a,B/?
10PDA deterministik
- PDA M (Q, ?, ?,S, Z , ?, F)
- Q q0 , q1 , q2 , Sq0, F q2 , ? a,
b, c, ? A, B, Z , ZZ, dan fungsi
transisi ?
No State Input Top stack Hasil
1 q0 a Z (q0,AZ)
2 q0 b Z (qo,BZ)
3 q0 a A (q0,AA)
4 q0 b A (qo,BA)
5 q0 a B (q0,AB)
6 q0 b B (q0,BB)
No State Input Top stack Hasil
7 q0 c Z (q1,Z)
8 q0 c A (q1,A)
9 q0 c B (q1,B)
10 q1 a A (q1, ?)
11 q1 b B (q1, ?)
12 q1 ? Z (q2,Z)
11Diterima atau tidak?
- Bagaimana untuk string acb?
- Bagaimana untuk string abab?
- Bagaimana untuk string bbaacc?
12Apakah string abcba di terima?
- Lets try ? (q0,abcba,Z)?(q0,bcba,AZ)
- ? (q0,bcba,AZ)?(q0,cba,BAZ)
- ? (q0,cba,BAZ)?(q1,ba,BAZ)
- ? (q1,ba,BAZ)?(q1,a,AZ)
- ? (q1,a, AZ)?(q1,?, Z)
- ? (q1,?,Z)?(q2,Z)
- Karena state terakhir di q2, maka abcba di
terima, dgn top stack Z
13PDA Non-deterministik
- NPDA M (Q, ?, ?,S, Z , ?, F)
- Q q0 , q1 , q2 , Sq0, F q2 , ? a,
b, ? A, B, Z , Z Z, dan fungsi transisi
?
No State Inp Top stack Hasil
1 q0 a Z (q0,AZ),(q1,Z)
2 q0 b Z (qo,BZ),(q1,Z)
3 q0 a A (q0,AA),(q1,A)
4 q0 b A (qo,BA),(q1,A)
5 q0 a B (q0,AB),(q1,B)
6 q0 b B (q0,BB),(q1,B)
No State Inp Top stack Hasil
7 q0 ? Z (q1,Z)
8 q0 ? A (q1,A)
9 q0 ? B (q1,B)
10 q1 a A (q1, ?)
11 q1 b B (q1, ?)
12 q1 ? Z (q2, ?)
14Diterima atau tidak?
- String aba?
- String baab?
- Sting abc?
15Jawab
- aba (q0,aba,Z)?(q0,ba,AZ) (1.kiri)
- (q0,ba,AZ)?(q0,a,BAZ) (4.kiri)
- (q0,a,BAZ)?(q0,?,ABAZ) (5.kiri)
- (q0,?,ABAZ) ditolak
-
- aba (q0,aba,Z)?(q0,ba,AZ) (1.kiri)
- (q0,ba,AZ)?(q1,a,AZ) (4.kanan)
- (q1,a,AZ)?(q1,?,Z) (10)
- (q1,?,Z)?(q2,?) finish di q2 (diterima)