330 likes | 835 Vues
Pertemuan 13 PUSH DOWN AUTOMATA (PDA). Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2005 Versi : 1/0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : << TIK-99 >> << TIK-99>>. Outline Materi. Materi 1 Materi 2 Materi 3 Materi 4 Materi 5.
E N D
Pertemuan 13PUSH DOWN AUTOMATA(PDA) Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2005 Versi : 1/0
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • << TIK-99 >> • << TIK-99>>
Outline Materi • Materi 1 • Materi 2 • Materi 3 • Materi 4 • Materi 5
PUSH DOWN AUTOMATA(PDA) • Mesin “counter part” dari CFG • Finite automation yang terdiri dari : • finite control • input tape • stack
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)*}
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
PUSH DOWN AUTOMATA(PDA) Mekanisme kerja : 1. M di stack, FC dalam state q1 2. Input : 0, FC : q1 Push : B Input : 1, FC : q1 Push : H Untuk kedua input FC tetap di q1 3. Input : c, FC : q1, FC : masuk q2
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
PUSH DOWN AUTOMATA(PDA) • Mekanisme kerja di atas digambarkan dalam tabel berikut :
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)
PUSH DOWN AUTOMATA(PDA) dimana : Q : Himpunan state : Alphabet input t : Alphabet Stack q0 Q : State awal Z0t : Start symbol stack F Q : Himpunan final state : Mapping : Q ( {}) t Subset Q t*
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 Yit*, 1 i m 2. (q,,z) = {( p1,Y1),( p2,Y2), …,( pm,Ym)}
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
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, )
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)}
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, )}
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
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 }
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.
PUSH DOWN AUTOMATA(PDA) Contoh : PDA yang menerima : L = { wwRw 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)}
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 :
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.