Push Down Automata
Push Down Automata
Push Down Automata (PDA) merupakan mesin otomata dari bahasa bebas
konteks. PDA di gambarkan sebagai tempat penyipanan yang tidak terbatas berupa
stack/ tumpukan.
Contoh stack :
A
Top stack
D
E
Menjadi top
Jika dilakukan operasi pop : D stack, karena
E elemen A
diambil (pop)
Jika dilakukan operasi push B, maka kondisi stack akan menjadi :
B Menjadi top stack karena dimasukkan elemen B
D
E
Definisi : PDA adalah pasangan 7 tuple.
M = (Q, , q 0 , F, , , Z 0 ), dimana :
Q : himpunan hingga state,
: alfabet input,
: alfabet/simbol stack,
q 0 : state awal, q 0 Q
Z 0 : simbol awal stack, Z 0
F : himpunan state penerima, F Q
Q *
: fungsi transisi , : Q ( {}) 2 (himpunan bagian dari Q
*)
(q 0 , a, Z 0 ) = (q 0 , AZ 0 ). Push/insert
(q 0 , a, A) = (q1, ). Pop /delete
1
Konfigurasi PDA pada suatu saat dinyatakan sebagai triple (q, x, ), dimana :
q Q : state pada saat tersebut, x * : bagian string input yang belum dibaca,
dan * : string yang menyatakan isi stack dengan karakter terkiri menyatakan
top of stack.
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 state q 0 PDA
akan melakukan PUSH jika mendapat input a atau b dan melakukan transisi state ke
state q 1 jika mendapat input c. Pada state q 1 PDA akan melakukan POP.
Ilustrasi graf fungsi transisi PDA di atas ditunjukkan melalui gambar berikut :
b, Z 0 /BZ 0 a, A/
a, Z 0 /AZ 0 a, A/AA
c, A/A
c, B/B
start q0 c, Z 0 / Z 0 q1 , Z 0 / Z 0 q2
a, B/AB b, B/BB
b, A/BA b, B/
3
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 , , F) adalah PDA dan x *, maka x diterima dengan
state 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, Z 0 ) * (q, , ) untuk q Q.
4
Contoh (PDA Non-Deterministik):
NPDA : M = (Q, , , q 0 , Z 0 , , F) mempunyai komponen tuple berikut :
Q = {q 0 , q 1 , q 2 }, F = {q 2 }, = {a, b, c}, = {D,A,B,C, Z}, dan fungsi transisi :
q0,abc,Z=q1,abc,DZ (1)
=q1,abc,ADAZ (2 kiri)
=q1,bc,DAZ (3)
=q1,bc,BDBAZ (2 tengah)
=q1,c,DBAZ (4)
=q1,c,CBAZ
=q1, ε, BAZ=halt ditolak
q0,acb,Z = q1,acb,DZ=q1,acb,ADAZ=q1,cb,DAZ=q1,cb,CAZ=
=q1,b,AZ=halt. Ditolak
q0,aca,Z = q1,aca,DZ=q1,aca,ADAZ=q1,ca,DAZ=q1,ca,CAZ=
= q1,a,AZ=q1, ε,Z=q2 diterima
q0,abcab,Z=q1,abcab,DZ=q1,abcab,ADAZ=q1,bcab,DAZ
=q1,bcab,BDBAZ= q1,cab,DBAZ=q1,cab,CBAZ
= q1,ab,BAZ=halt ditolak
abcba, abbcbba diterima
Contoh (PDA Non-Deterministik):
PDA M = (Q, , , q 0 , Z 0 , , F) pengenal palindrome L = {xx T x (ab)*} mempunyai
komponen tuple berikut :
Q = {q 0 , q 1 , q 2 }, F = { q 2 }, = {a, b}, = {a, b, Z 0 }, dan fungsi transisi
terdefinisi melalui tabel berikut :
5
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
Pada tabel transisi tersebut terlihat bahwa pada state q 0 PDA akan melakukan PUSH jika
mendapat input a atau b dan melakukan transisi state ke state q 1 jika mendapat input . Pada
state q 1 PDA akan melakukan POP. Kedua Contoh di atas menunjukkan bahwa PDA dapat
dinyatakan sebagai mesin PUSH-POP.
Berikut ini pengenalan string “baab” oleh PDA di atas :
1. (q 0 , baab, Z 0 ) (q 0 , aab, bZ 0 ) (2 kiri)
(q 0 , ab, abZ 0 ) (5 kiri)
(q 1 , b, abZ 0 ) (3 kanan)
(q 1 , b, bZ 0 ) (11)
(q 1 , , Z 0 ) (10)
(q 2 , , Z 0 ) (12) (diterima)
6
KESIMPULAN
Push Down Automata (PDA) merupakan mesin otomata dari bahasa bebas konteks.
PDA di gambarkan sebagai tempat penyipanan yang tidak terbatas berupa stack/ tumpukan.
Stack merupakan kumpulan darielemen-elemen sejenis dengan sifat penambahan elemen dan
pengambilan elemen melalui suatu tempat yang disebut top of stack(puncak stack).
Pengambilan elemen dari stack dinyatakan dengan operasi pop sedangkanmemasukkan
elemen kedala stack dengan posisi push.