Teori Bahasa dan Automata Push Down Automata (PDA)
pushdown automata (PDA) Ada 2 cara mendiskripsikan tata bahasa reguler Bagaimana dengan tata bahas bebas konteks (CFG)? regular expression NFA DFA Sintax Mesin CFG pushdown automata (PDA) Sintax Mesin
PDA vs NFA NFA memiliki kemampuan menyimpan (memori) terbatas PDA memiliki tempat penyimpanan yang tidak terbatas dalam bentuk stack/tumpukan Stack : kumpulan dari elemen2 sejenis dengan sifat penambahan elemen dan pengambilan elemen melalui suatu tempat yang disebut top stack.
PDA Aturan pengisian LIFO (Last In First Out) A B C A B A B A A C in A in B in Top Stack A B C A B A C out B out B A A Pemasukan elemen ke dalam stack push Pengambilan elemen dari stack pop
PDA Pushdown automata dinyatakan dalam 7 tupel, M = (Q, , , Δ, S, F, Z): Q = Himpunan state = Himpunan simbol input alphabet = Simbol-simbol stack/tumpukan Δ = fungsi transisi S = state awal, S ∈ Q F = Himpunan final state dimana F Q Z = simbol awal tumpukan (top stack), Z ∈
Contoh Sebuah PDA Q = {q1 , q2} S = q1 = {a , b} F = {q2} = {A , B, Z} Z = Z memiliki fungsi transisi: Δ(q1, , Z) = {(q2, Z)} Δ(q1, a, Z) = {(q1, AZ)} Δ(q1, b, Z) = {(q1, BZ)} Δ(q1, a, A) = {(q1, AA)} Δ(q1, b, A) = {(q1, )} Δ(q1, a, B) = {(q1, )} Δ(q1, b, B) = {(q1, BB)} Tentukan apakah string ‘abba’ diterima oleh PDA diatas?
Contoh Fungsi Transisi: Δ(q1, a, Z) = {(q1, AZ)} Stack (push/pop) State awal Top Stack Input Posisi State Setelah transisi
Contoh Tentukan apakah string ‘abba’ diterima? a b b a Z A Z Z B Z Z q1 q1 q1 q1 q1 q2 Final State Δ(q1, a, Z) = {(q1, AZ)} Δ(q1, b, Z) = {(q1, BZ)} Δ(q1, , Z) = {(q2, Z)} Δ(q1, b, A) = {(q1, )} Δ(q1, a, B) = {(q1, )} Sting ‘abba’ dapat diterima oleh PDA…
Latihan 1. Sebuah PDA Q = {q1 , q2} S = q1 = {0,1,2} F = ∅ = {B. G, Z} Z = Z memiliki fungsi transisi: Δ(q1, 0, Z) = {(q1, BZ)} Δ(q2, 0, B) = {(q2, )} Δ(q1, 0, B) = {(q1, BB)} Δ(q2, , Z) = {(q2, )} Δ(q1, 0, G) = {(q1, BG)} Δ(q1, 1, Z) = {(q1, GZ)} Δ(q1, 2, Z) = {(q2, Z)} Δ(q1, 1, B) = {(q1, GB)} Δ(q1, 2, B) = {(q2, B)} Δ(q1, 1, G) = {(q1, GG)} Δ(q1, 2, G) = {(q2, G)} Δ(q2, 1, G) = {(q2, )} a) Tentukan apakah string ‘020’ diterima oleh PDA diatas? b) Tentukan apakah string ‘0120’ diterima oleh PDA diatas?
Notasi Stack top Simbol awal Muncul pada t=0
Notasi - contoh Input Push Pop stack top
input stack top berubah
input stack top Push
input stack top Pop
input stack top Tetap
Contoh Notasi PDA Contoh: Buktikan string ‘aaabbb’ diterima oleh PDA diatas.
Posisi Awal Contoh: String ‘aaabbb’. Stack current state
Stack
Input Stack
Input Stack
Input Stack
Input Stack
Input Stack
Input Stack
Input Stack String diterima oleh PDA karena berakhir di final state (q3) Buktikan String ‘aaabb’ tidak diterima oleh PDA diatas!