Push Down Automata (PDA) Pertemuan 11 Mahasiswa mampu menerapkan konsep & definisi mekanisme Kerja Push Down Automata (PDA)
Materi Mekanisme Kerja Push Down Automata (PDA) Push Down Automata (PDA) untuk suatu tata Bahasa Bebas Konteks
Mekanisme Kerja Push Down Automata (PDA) Agar dapat menggunakan model automata pada bahasa context free, maka diperlukan: Sebuah stack atau memori push down yang dapat menyimpan sederetan simbol dengan panjang yang sebarang dan tak berhingga. Selama proses pembacaan simbol pada stack, simbol teratas pada sebuah stack PDA memiliki kemungkinan sebagai berikut: Stack tidak dapat diubah, atau Simbol pada stack teratas akan dihapus (pop) dan digantikan dengan simbol yang lain (push).
Pushdown Automaton -- PDA String Masukan Tumpukan Keadaan
Simbol Tumpukan Awal Tumpukan Tumpukan Kepala Tumpukan atas Simbol khusus penanda posisi dasar Sudah ada saat waktu ke-0
7 tupel pada PDA M = (Q, ∑, Г, Δ, S, F, Z) Q = himpunan state ∑ = himpunan simbol input Г = simbol – simbol tumpukan / stack Δ = fungsi transisi S = state awal F = state akhir Z = simbol awal tumpukan
Contoh Q ={ q1, q2} ∑ ={a,b} Г = {A, B, Z} S = q1 F ={ q2} Z = Z Apakah string “abba” diterima? Δ( 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)}
Penyelesaian A Z 1. State awal q1, Top Stack Z, Input String “a” Δ( q1, a, z) = {( q1, Az)} push A 2. Input string “b” dengan tumpukan A Δ( q1, b, A) = {( q1, ε)} pop A 3. Input string “b” dengan tumpukan Z Δ( q1, b, z) = {( q1, Bz)} push B 4. Input string “a” dengan tumpukan B Δ( q1, a, B) = {( q1, ε)} pop B 5. Semua input telah selesai dibaca Δ( q1, ε, z) = {( q2, z)} Kesimpullan diterima : berakihir di state akhir {( q2, z)} Z B Z Z
Push Down Automata (PDA) untuk suatu tata Bahasa Bebas Konteks Contoh : D → aDA | bDb | c Dapatkah menerima string “aca” Dapat dikontruksikan PDA- nya : Terdapat 3 produksi : D → aDA D → bDb D → c Sehingga ada 3 state, maka : Q = {q0, q1, q2} S = q0 F= {q3 } ∑ = {a, b, c} Г = { D, a, b, c, Z} Fungsi transisi Г = { D, a, b, c, Z} : Transisi D : D → aDA | bDb | c Δ( q0, ε, z) = {( q1, Dz)} Δ( q1, ε, D) = {( q1, aDa)}, {( q1, bDb)}, {( q1, c)} 3. Transisi a, b, c Δ( q1, a, a) = Δ( q1, b, b)=Δ( q1, c, c) = {( q1, ε )} 4. Transisi Z Δ( q1, ε, z) = {( q2, z)}
Menerima string “aca” D → aDA ⟹ aca Δ( q0, ε, z) = {( q1, Dz)} Δ( q1, ε, D) = {( q1, aDa)} Δ( q1, a, a) = {( q1, ε )} Δ( q1, ε, D) = {( q1, c)} Δ( q1, c, c) = {( q1, ε )} Δ( q1, ε, z) = {( q2, z)} String di terima
Deskripsi Instan / Seketika Isi tumpukan saat ini Keadaan saat ini Input tersisa
deskripsi seketika untuk string “aca” ( q0, aca, z) |- ( q1, aca, Dz) |- ( q1, aca, aDaz) |- ( q1, ca, Daz) |- ( q1, ca, caz) |- ( q1, a, az) |- ( q1, ε, z) |- ( q2, ε, z)
Contoh PDA yang lain The States Simbol ‘pop’ Simbol Masukan Simbol ‘push’
Masukan atas Tumpukan Gantikan
Masukan Tumpukan atas Push
Masukan Tumpukan atas Pop
Masukan Tumpukan atas No Change
Tidak ada transisi setelah Tumpukan Kosong Masukan Tumpukan atas kosong Pop Keadaan HALTS Tidak ada transisi setelah
Transisi seperti ini dapat terjadi: Masukan Tumpukan Pop atas
PDA adalah non-deterministik
Contoh PDA PDA
Ide pokok: 2. Cocokkan ‘b’ sbg input dg ‘a’ dlm tumpukan 1. Push ‘a’ ke dalam tumpukan 3. Cocok!
Contoh Eksekusi: Waktu ke-0 Masukan Tumpukan Keadaan saat ini
Waktu ke-1 Masukan Tumpukan
Waktu ke-2 Masukan Tumpukan
Waktu ke-3 Masukan Tumpukan
Waktu ke-4 Masukan Tumpukan
Waktu ke-5 Masukan Tumpukan
Waktu ke-6 Masukan Tumpukan
Waktu ke-7 Masukan Tumpukan
Waktu ke-8 Masukan Tumpukan diterima
Suatu string diterima jika: Semua Masukan selesai dieksekusi DAN Keadaan terakhir merupakan keadaan yang diterima Pada keadaan akhir, isi tumpukan tidak diperdulikan (isi tumpukan dapat kosong)