200 likes | 565 Views
Pertemuan 11 PUSH DOWN AUTOMATA (PDA). Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009. PUSH DOWN AUTOMATA (PDA).
E N D
Pertemuan 11PUSH DOWN AUTOMATA(PDA) Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009
PUSH DOWN AUTOMATA(PDA) • The pushdown automaton is essentially an e-NFA with the addition of a stack. The stack can be read, pushed and poped only at the top just like the “stack” data structure
PUSH DOWN AUTOMATA(PDA) PUSH POP Check : state, input symbol, stack symbol
PUSH DOWN AUTOMATA(PDA) PDA menerima language dengan dua cara : 1. Stack menjadi kosong 2. Finite Automaton masuk final state Definisi Secara formal, PDA : M = (Q, , , , q0, Z0, F)
PUSH DOWN AUTOMATA(PDA) dimana : Q : Himpunan state : Alphabet input : Alphabet Stack q0 Q : State awal Z0: Start symbol stack F Q : Himpunan final state : Fungsi transisi : Q ( {}) Subset Q *
PUSH DOWN AUTOMATA(PDA) Move : • Fungsi transisi (move) pada deterministic PDA didefinisikan sebagai : 1. (q,a,z) = (p,Y) dimana : q, p : state a z : stack symbol Y * 2. (q,,z) = (p,Y)
Penting: • (q, a, Z) = (q, AZ). Push/insert • (q, a, A) = (q1, ). Pop /delete • Untuk state q Q, simbol input a , dan simbol stack X, (q, a, X) = (p, ) berarti : PDA bertransisi ke state p dan mengganti X pada stack dengan string .
Example PDA • PDA : M = (Q, , , q , Z , , F) • pengenal palindrome L = {xcxx (ab)*}, dimana x adalah cermin(x), mempunyai tuple : • Q = {qo, q1, q2}, F = { q}, = {a, b, c}, = {A, B, Z}, dan fungsi transisi terdefinisi melalui tabel berikut :
Example PDA(2) Dapat ditulis (q, a, Z) = (q, AZ) Mesin dengan konfigurasi : State q0 dan top stack Z membaca input’a’ konfigurasi menjadi State q0 ,push A ke stack A, A menjadi top stack Dapat ditulis (q1 ,a, A) = (q1 ,) Mesin dengan konfigurasi : State q1 dan top stack A membaca input’a’ konfigurasi menjadi State q1 , A di pop, elemen dibawah A menjadi top stack
Example PDA(3) • Sebagai contoh, perhatikan bahwa fungsi transisi No. 1 dapat dinyatakan sebagai : (q, a, Z) = (q, AZ). Pada tabel transisi tersebut terlihat bahwa pada state q PDA akan melakukan PUSH jika mendapat input a atau b dan melakukan transisi state ke state q jika mendapat input c. Pada state q PDA akan melakukan POP.
Berikut ini pengenalan string : abcba : (q, abcba, Z) (q, bcba, AZ)(1) (q, cba, BAZ) (4) (q, ba, BAZ) (9) (q, a, AZ) (11) (q, , Z) (10) (q, , Z)(12)(diterima)
acb : (q, acb, Z) (q, cb, AZ) (q, b, AZ) (halt/crash ditolak) • Penerimaan dan penolakan tiga string di atas dapat dijelaskan sebagai berikut : • string abcba diterima karena tracing sampai di state penerima (q) dan string “abcba” selesai dibaca (string yang belum dibaca = ) • string acb ditolak karena konfigurasi akhir (q, b, a Z) sedangkan fungsi transisi (q, b, a) tidak terdefinsi
Nondeterministik PDA • PDA M = (Q, , , q, Z, , F) pengenal palindrome L = {xxx (ab)*} mempunyai komponen tuple berikut : • Q = {q, q, q}, F = { q}, = {a, b}, = {a, b, Z}, dan fungsi transisi terdefinisi melalui tabel berikut :
Nondeterministik PDA q0,aba,z = q0,ba,az (1 kiri) = q1, a, az (4 kanan) = q1, , z(10) =q2, , (12) diterima q0,aba,z = q0,ba,az (1 kiri) = q0, a, baZ (4 kiri) = q1, ,baZ (5 kanan) = halt