Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
DERJA
Push Down Automata (PDA) merupakan mesin otomata dari bahasa bebas konteks. PDA di gambarkan sebagai tempat penyipanan yang tidak terbatas berupa stack/tumpukan. State Automata (FSA) adalah mesin otomata pada bahasa reguler
PDA Tempat penyimpanan tidak terbatas berupa stack/tumpukan Dari Deterministic PDA bisa diubah ke Nondeterministic PDA FSA Mempunyai kemapuan memori yang terbatas Dari Nondeterministic FSA bisa diubah ke Deterministic FSA
Finite
Perbedaan
Stack
(tumpukan) adalah suatu struktur data yang menggunakan prinsip LIFO (Last In First Out). stack selalu memiliki top of stack dan elemen-elemen stack itu yang akan masuk ke dalam stack dengan method pushdan akan keluar dari stack dengan method pop.
Sebuah
Stack adalah kumpulan dari elemen-elemen sejenis dengan sifat penambahan elemen dan pengambilan elemen melalui suatu tempat yang disebut top stack Operasi Pop adalah pengambilan elemen dari stack Operasi Push adalah memasukkan elemen ke dalam stack
A
Contoh Stack
D E
Top Stack
Operasi pop
A D E D E
Operasi push B
A D E B D E
Q S F Z
= = = = = = =
himpuanan state himpunan simbol input simbol-simbol stack fungsi transisi state awal himpunan state akhir simbol awal stack / top stack
PDA memiliki 2 jenis transisi, yaitu yang merima simbol input, simbol top of stack, dan state. Setiap pilihan terdiri dari state berikutnya dan simbol-simbol. Penggantian isi stack dilakukan dengan opersi push dan pop. Jenis transisi yang kedua adalah transisi . Transisi tidak melakukan pembacaan input namun hanya menerima simbol top of stack dan state. Transisi ini memungkinkan PDA untuk memanipulasi isi stack dan berpindah antar state tanpa membaca input
Acceptance by Final State Jika P = (Q, , , , q0, Z0, F) adalah PDA. Maka L(P), bahasa yang diterima oleh P dengan final state, adalah {w | (q0, w, Z0) p* (q, , )} untuk suatu state q dalam F dan suatu string stack .
Acceptance by Empty Stack Untuk setiap PDA P = (Q, , , , q0, Z0, F), didefinisikan N(P) = {w | (q0, w, Z0) * (q, , )} untuk suatu state q. Bahwa N(P) adalah himpunan input-input w yang dapat dibaca oleh P dan pada waktu yang sama mengosongkan stacknya.
Konstruksi PDA dari CFG Misalkan G = (V, , S, P) adalah sebuah CFG. Dari CFG tersebut dapat dibuat PDA P = (Q, , , , q0, Z0, F), yang menerima L(G) dengan final state (L(P) = L(G)).
Konstruksi dilakukan sebagai berikut: 1. Definisikan Q ={q0, q1, q2} Start state: q0 F = {q2}
2. Dalam keadaan awal, PDA mem-push Z0 pada top stack : - Jika top stack dari simbol stack adalah sutau non terminal (misal A), top stack tersebut diganti dengan bagian body dari produksi yang head-nya A. Misal A x, maka top stack diganti x. - Jika top stack dari simbol stack adalah sebuah terminal dan jika top stack tersebut menyamai simbol masukkan berikutnya, pop top stack tersebut.
3. Berdasarkan aturan tsb, dapat diperoleh 4 bentuk fungsi transisi: - (q0, , Z0) = {(q1, q0Z0)} - (q1, , A) = {(q1, x) | A x adalah sebuah produksi dalam CFG} untuk suatu non terminal A. - (q1, a, a) = {(q1, )} untuk setiap simbol terminal. - (q1, , Z0) = {(q2, Z0)}.
Deterministic PDA
Sebuah PDA P = (Q, , , , q0, Z0, F) adalah deterministic (DPDA) jika dan hanya jika ditemui kondisi-kondisi berikut: 1. (q, a, X) memiliki paling banyak satu anggota untuk suatu q dalam Q, a dalam atau a = , dan X dalam . 1. Jika (q, a, X) tidak kosong, untuk suatu a dalam , maka (q, , X) haruslah kosong.
PDA Deterministik
PDA : M = (Q, , ,S, Z , , F) Q = {q0 , q1 , q2 }, S={q0}, F = { q2 }, = {a, b, c}, = {A, B, Z }, Z={Z}, dan fungsi transisi :
State Input Top Hasil stack No State Input Top Hasil stack
No
1 2 3 4 5 6
q0 q0 q0 q0 q0 q0
a b a b a b
Z Z A A B B
7 8 9 10 11 12
q0 q0 q0 q1 q1 q1
c c c a b
Z A B A B Z
Karena state terakhir di q2, maka abcba di terima, dgn top stack Z
PDA Non-deterministik
NPDA : M = (Q, , ,S, Z , , F) Q = {q0 , q1 , q2 }, S={q0}, F = { q2 }, = {a, b}, = {A, B, Z }, Z= {Z}, dan fungsi transisi :
No State Inp Top Hasil stack No State Inp Top Hasil stack
1 2 3 4 5
q0 q0 q0 q0 q0
a b a b a
Z Z A A B
7 8 9
q0 q0 q0
a b
Z A B A B Z
10 q1 11 q1 12 q1
JAWAB
aba (q0,aba,Z)(q0,ba,AZ) (1.kiri) (q0,ba,AZ)(q0,a,BAZ) (4.kiri) (q0,a,BAZ)(q0,,ABAZ) (5.kiri) (q0,,ABAZ) ditolak aba (q0,aba,Z)(q0,ba,AZ) (1.kiri) (q0,ba,AZ)(q1,a,AZ) (4.kanan) (q1,a,AZ)(q1,,Z) (10) (q1,,Z)(q2,) finish di q2 (diterima)
Sebuah PDA dapat dibuat dari kumpulan aturan produksi dari suatu tata bahasa bebas konteks dengan langkah-langkah :
1.
= simbol terminal = semua simol variabel, terminal, dan Z (simbol awal stack) 2. Dimulai dengan mem-push Z pada top stack 3. Konstruksikan empat tipe transisi, yaitu :
(q
,,Z) = {(q2,SZ)} (q ,,A) = {(q ,w) | Aw adalah sebuah 2 2 aturan produksi } untuk semua variabel A (q ,a,a) ={(q ,)} untuk setiap simbol 2 2 terminal (q ,,Z) = {(q ,Z)} 2 3 Bila semua input telah dibaca dan top stack adalah Z, berarti string input sukses diterima oleh PDA (q3 state akhir)
1
Tahapan PDA untuk suatu tata bahasa bebas konteks dapat dinyatakan dalam bentuk deskripsi seketika (instantanoeous description). Perubahan dari suatu kondisi keberikutnya dipisahkan dengan | Konfigurasi pada suatu saat dinyatakan dengan triplet : (q,w,u)
Final State PDA ke Null Stack PDA Tupel Final State PDA M1= (Q,,,,S,F,Z) berubah menjadi M2 = (Q U {qs.qf}, , U {X}, , qs, , X)
Ada penambahan fungsi transisi :
(qs, , X) = {(S,ZX)} (q, , X) = {(qf,X)}
Null Stack PDA ke Final State PDA Tupel Final State PDA M1= (Q,,,,S,F,Z) berubah menjadi M2 = (Q U {qs.qf}, , U {X}, , qs, {qf}, X)
Ada penambahan fungsi transisi :
(qs, , X) = {(S,ZX)} (q, , X) = {(qf,X)}
Null Stack PDA ke Final State PDA Tupel Final State PDA M1= (Q,,,,S,F,Z) berubah menjadi M2 = (Q U {qs.qf}, , U {X}, , qs, {qf}, X)
Ada penambahan fungsi transisi :
(qs, , X) = {(S,ZX)} (q, , X) = {(qf,X)}