Pertemuan 11 PUSH DOWN AUTOMATA (PDA) Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009 Pertemuan 11 PUSH DOWN AUTOMATA (PDA)
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) 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 = {xcx x (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)
(halt/crash ditolak) 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
Ilustrasi fungsi transisi PDA
Nondeterministik PDA PDA M = (Q, , , q , Z , , F) pengenal palindrome L = {xx x (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, a, baZ (4 kiri) = q1, ,baZ (5 kanan) = halt