AUTOMATA PUSHDOWN

 

Automata Pushdown (APD)  Definisi : PDA adalah pasangan 7 tuple M = (Q, , , q 0 , Z0 , , A), dimana : Q : himpunan hingga stata,  : alfabet input,  : alfabet stack, q 0  Q : stata awal, Z 0   : simbol awal stack, A  Q : himpunan stata penerima, fungsi transisi  : Q  (  {})    2 Q * (himpunan bagian dari Q  *)  Untuk stata q  Q, simbol input a  , dan simbol stack X , (q, a, X) = (p, ) berarti : PDA bertransisi ke stata p dan mengganti X pada stack dengan string .  Konfigurasi PDA pada suatu saat dinyatakan sebagai triple (q, x, ), dimana : q  Q : stata pada saat tersebut, x  * : bagian string input yang belum dibaca, dan   * : string yang menyatakan isi stack dengan karakter terkiri menyatakan top of stack.  Misalkan (p, ay, X) adalah sebuah konfigurasi, dimana : a  , y  *, X  , dan   *. Misalkan pula (p, a, X) = (q, ) untuk q  Q dan   *. Dapat kita tuliskan bahwa : (p, ay, X)  (q, y, ). Contoh 14 (PDA Deterministik): PDA M = (Q, , , q 0 , Z0 , , A) pengenal palindrome L = {xcx T x  (ab)*}, dimana x T adalah cermin(x), mempunyai tuple : Q = {q 0 , q1 , q 2 }, A = { q 2 },  = {a, b, c},  = {a, b, Z 0 }, dan fungsi transisi  terdefinisi melalui tabel berikut : No. Stata Input TopStack Hasil No. Stata Input TopStack Hasil 1 q 0 a Z 0 (q 0 , aZ 0 ) 7 q 0 c Z 0 (q1 , Z0 ) 2 q 0 b Z 0 (q 0 , bZ 0 ) 8 q 0 c a (q1 , a) 3 q 0 a a (q 0 , aa) 9 q 0 c b (q1 , b) 4 q 0 b a (q 0 , ba) 10 q1 a a (q1 , ) 5 q 0 a b (q 0 , ab) 11 q1 b b (q1 , ) 6 q 0 b b (q 0 , bb) 12 q1  Z 0 (q 2 , ) Sebagai contoh, perhatikan bahwa fungsi transisi No. 1 dapat dinyatakan sebagai : (q 0 , a, Z 0 ) = (q 0 , aZ 0 ). Pada tabel transisi tersebut terlihat bahwa pada stata q 0 PDA akan melakukan PUSH jika mendapat input a atau b dan melakukan transisi stata ke stata q1 jika mendapat input c. Pada stata q1 PDA akan melakukan POP. Berikut ini pengenalan dua string oleh PDA di atas : 1. abcba : (q 0 , abcba, Z0 )  (q 0 , bcba, aZ0 ) (1)  (q 0 , cba, baZ0 ) (4)  (q1 , ba, baZ0 ) (9)  (q1 , a, aZ0 ) (11)  (q1 , , Z 0 ) (10)  (q 2 , , Z0 ) (12) (diterima) 2. acb : (q 0 , acb, Z0 )  (q 0 , cb, aZ0 ) (1)  (q1 , b, aZ 0 ) (8), (crash  ditolak) 3. ab : (q 0 , ab, Z0 )  (q 0 , b, aZ 0 ) (1)  (q 0 , , baZ 0 ) (4) (crash  ditolak) Asep Juarna, Catatan Teori Bahasa dan Automata, hal 31 Penerimaan dan penolakan tiga string di atas dapat dijelaskan sebagai berikut : 1. string abcba diterima karena tracing sampai di stata penerima (q 2 ) dan string “abcba” selesai dibaca (string yang belum dibaca = ) 2. string acb ditolak karena konfigurasi akhir (q1 , b, a Z 0 ) sedangkan fungsi transisi (q1 , b, a) tidak terdefinsi 3. string ab ditolak karena konfigurasi akhir (q 0 , , baZ 0 ) sedangkan fungsi transisi (q 0 , , b) tidak terdefinsi Ilustrasi graf fungsi transisi PDA di atas ditunjukkan melalui gambar berikut : b, Z0 /bZ0 a, a/ a, Z0 /aZ 0 a, a/aa c, a/a c, b/b q 0 c, Z0 / Z 0 q1 , Z0 / Z 0 q 2 a, b/ab b, b/bb b, a/ba b, b/  Notasi (p, ay, X)  (q, y, ) dapat diperluas menjadi : (p, x, ) * (q, y, ), yang berarti konfigurasi (q, y, ) dicapai melalui sejumlah (0 atau lebih) transisi.  Ada dua cara penerimaan sebuah kalimat oleh PDA, yang masing-masing terlihat dari konfigurasi akhir, sebagaimana penjelasan berikut : Jika M = (Q, , , q 0 , Z 0 , , A) adalah PDA dan x *, maka x diterima dengan stata akhir (accepted by final state) oleh PDA M jika : (q 0 , x, Z 0 ) * (q, , ) untuk    * dan q  A. x diterima dengan stack hampa (accepted by empty stack) oleh PDA M jika : (q 0 , x, Z0 ) * (q, , ) untuk q  Q. Contoh 15 (PDA Non-Deterministik): PDA M = (Q, , , q 0 , Z0 , , A) pengenal palindrome L = {xx T x  (ab)*} mempunyai komponen tuple berikut : Q = {q 0 , q1 , q 2 }, A = { q 2 },  = {a, b},  = {a, b, Z0 }, dan fungsi transisi  terdefinisi melalui tabel berikut : No. St. In. TS Hasil No. St. In. TS Hasil 1 q 0 a Z 0 (q 0 , aZ0 ),(q1 , Z 0 ) 7 q 0  Z 0 (q1 , Z0 ) 2 q 0 b Z 0 (q 0 , bZ 0 ),(q1 , Z 0 ) 8 q 0  a (q1 , a) 3 q 0 a a (q 0 , aa),(q1 , a) 9 q 0  b (q1 , b) 4 q 0 b a (q 0 , ba),(q1 , a) 10 q1 a a (q1 , ) 5 q 0 a b (q 0 , ab),(q1 , b) 11 q1 b b (q1 , ) 6 q 0 b b (q 0 , bb),(q1 , b) 12 q1  Z0 (q 2 , ) Asep Juarna, Catatan Teori Bahasa dan Automata, hal 32 Pada tabel transisi tersebut terlihat bahwa pada stata q 0 PDA akan melakukan PUSH jika mendapat input a atau b dan melakukan transisi stata ke stata q 1 jika mendapat input . Pada stata q1 PDA akan melakukan POP. Contoh 14 dan 15 menunjukkan bahwa PDA dapat dinyatakan sebagai mesin PUSH-POP. Berikut ini pengenalan string “baab” oleh PDA di atas : 1. (q 0 , baab, Z0 )  (q 0 , aab, bZ0 ) (2 kiri)  (q 0 , ab, abZ0 ) (5 kiri)  (q1 , ab, abZ0 ) (3 kanan)  (q1 , b, bZ0 ) (11)  (q1 , , Z 0 ) (10)  (q 2 , , Z0 ) (12) (diterima) 2. (q 0 , baab, Z0 )  (q1 , baab, Z0 ) (2 kanan) (crash  ditolak) 3. (q 0 , baab, Z0 )  (q 0 , aab, bZ0 ) (2 kiri)  (q 0 , ab, abZ0 ) (5 kiri)  (q 0 , b, aabZ0 ) (3 kiri)  (q1 , b, aabZ0 ) (4 kanan) (crash  ditolak) 4. (q 0 , baab, Z0 )  (q 0 , aab, bZ0 ) (2 kiri)  (q 0 , ab, abZ0 ) (5 kiri)  (q 0 , b, aabZ0 ) (3 kiri)  (q 0 , , baabZ0 ) (4 kiri)  (q1 , , baabZ0 ) (9) (crash  ditolak)


(sumber) file:///C:/Users/james/Downloads/AUTOMATA%20PUSHDOWN.pdf

Artikel Selanjutnya Artikel Sebelumnya
Post Terkait :
TEORI BAHASA DAN AUTOMATA