Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Push Down Automata (PDA)

Presentasi serupa


Presentasi berjudul: "Push Down Automata (PDA)"β€” Transcript presentasi:

1 Push Down Automata (PDA)
Galuh Wilujeng Saraswati, M.Cs Nurul Anisa Sri Winarsih, M. Cs

2 Push Down Automata (PDA)
PDA merupakan mesih otomata dari bebas konteks. Mempunyai memori penyimpanan yang tidak terbatas berupa stack/tumpukan Stack/tumpukan memiliki ciri ciri: Memiliki Top of Stack/puncak Aturan pengenisian LIFO(Last In First Out) Pop: pengambilan elemen dari stack Push: memasukan element ke dalam stack

3 Stack D A Bila dilakukan Opreasi Push, konsidi stack menjadi E D E
Top of Stack A D E Top of Stack Bila dilakukan Opreasi Pop, konsidi stack menjadi D E Top of Stack

4 7 tuple PDA 𝑄= himpunan State Ξ£= himpunan Simbol input
Ξ“= simbol-simbol stack Ξ”= fungsi transisi S= State awal F= Himpunan Final State Z= Simbol awal tumpukan/top of stack Komponen yang sama dengan FSA adalah 𝑄, Ξ£, S,F Tuple baru Ξ“, Z Ξ” memiliki kemiripan dengan 𝛿 FSA sebagai transisi

5 PDA Finate State Automata (FSA)
PDA bisa dianggap seperti FSA yg dilengkapi stack

6 Transisi PDA (FSA + stack) ada 2 jenis :
1. transisi memakai simbol input. Bergantung pada simbol pada top stack dan state Terdapat sejumlah pilihan yang memungkinkan untuk bergerak Setiap pilihan terdiri dari state berikutnya dan symbol (satu, beberapa atau kosong) untuk mengganti top of stack 2. transisi πœ€ Mirip dengan yang pertama (kecuali dikalukan tanpa membaca simbol input) Memungkinkan PDA memanipulasi isi stack atau berpindah state tanpa mebaca input.

7 Contoh 1 sebuah PDA (FSA + stack) null (𝜺) stack:
PDA (FSA + stack) soal#1 Contoh 1 sebuah PDA (FSA + stack) null (𝜺) stack: Memiliki fungsi transisi: Ξ” π‘ž 1 ,πœ€,𝑍 ={( π‘ž 2 ,𝑍)} Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} Ξ” π‘ž 1 ,𝑏,𝑍 ={( π‘ž 1 ,𝐡𝑍)} Ξ” π‘ž 1 ,π‘Ž,𝐴 ={( π‘ž 1 ,𝐴𝐴)} Ξ” π‘ž 1 ,𝑏,𝐴 ={( π‘ž 1 ,πœ€)} Ξ” π‘ž 1 ,π‘Ž,𝐡 ={( π‘ž 1 ,πœ€)} Ξ” π‘ž 1 ,𝑏,𝐡 ={( π‘ž 1 ,𝐡𝐡)} Kita bisa membaca fungsi transisi tsb: State π‘ž 1 dan top stack Z membaca input β€˜a’ = Konfigurasi mesin menjadi : state π‘ž 1 , A di push 𝑄= { π‘ž 1 , π‘ž 2 } Ξ£={π‘Ž,𝑏} Ξ“={𝐴,𝐡,𝑍} // simbol-simbol stack S= π‘ž 1 F={ π‘ž 2 } Z=𝑍 // top of stack Ξ“= simbol-simbol stack Z= Simbol awal tumpukan/top of stack

8 PDA (FSA + stack) jwb#1 Misal ingin mengetahui apakah string β€˜abba’ diterima oleh PDA (FSA + stack) null (𝜺) stack? Z Ξ” π‘ž 1 ,πœ€,𝑍 ={( π‘ž 2 ,𝑍)} Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} Ξ” π‘ž 1 ,𝑏,𝑍 ={( π‘ž 1 ,𝐡𝑍)} Ξ” π‘ž 1 ,π‘Ž,𝐴 ={( π‘ž 1 ,𝐴𝐴)} Ξ” π‘ž 1 ,𝑏,𝐴 ={( π‘ž 1 ,πœ€)} Ξ” π‘ž 1 ,π‘Ž,𝐡 ={( π‘ž 1 ,πœ€)} Ξ” π‘ž 1 ,𝑏,𝐡 ={( π‘ž 1 ,𝐡𝐡)} 1. Konfigurasi awal mesin state π‘ž 1 top stack Z, membaca input β€˜a’ fungsi transisinya Ξ” π‘ž 1 ,π‘Ž,𝑍 = π‘ž 1 ,𝐴𝑍 Konfigurasi mesin menjadi : state π‘ž 1 , A di push A Z 4. Membaca input a Ξ” π‘ž 1 ,π‘Ž,𝐡 = π‘ž 1 ,πœ€ 2. Membaca input b Fungsi transisinya Ξ” π‘ž 1 ,𝑏,𝐴 = π‘ž 1 ,πœ€ Konfigurasi mesin menjadi : state π‘ž 1 top stack di Pop Z Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} State π‘ž 1 dan top stack Z membaca input β€˜a’ = Konfigurasi mesin menjadi : state π‘ž 1 , A di push 5. Semua input sudah selesai di baca Fungsi transisinya Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝑍 Konfigurasi mesin menjadi : π‘ž 2 Z B Z 3. Membaca input b π›₯ π‘ž 1 ,𝑏,𝑍 = π‘ž 1 ,𝐡𝑍 Kesimpulan: State q2 berada dalam F (final state), maka β€˜abba’ diterima oleh PDA ini

9 Contoh 2 sebuah PDA (FSA + stack) stack kosong:
PDA (FSA + stack) soal#2 Contoh 2 sebuah PDA (FSA + stack) stack kosong: Memiliki fungsi transisi: Ξ” π‘ž 1 ,0,𝑍 ={( π‘ž 1 ,𝐡𝑍)} Ξ” π‘ž 1 ,0,𝐡 ={( π‘ž 1 ,𝐡𝐡)} Ξ” π‘ž 1 ,0,𝐺 ={( π‘ž 1 ,𝐡𝐺)} Ξ” π‘ž 1 ,2,𝑍 ={( π‘ž 2 ,𝑍)} Ξ” π‘ž 1 ,2,𝐡 ={( π‘ž 2 ,𝐡)} Ξ” π‘ž 1 ,2,𝐺 = π‘ž 2 ,𝐺 Ξ” π‘ž 2 ,0,𝐡 ={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 ={( π‘ž 2 ,πœ€)} Ξ” π‘ž 1 ,1,𝑍 ={( π‘ž 1 ,𝐺𝑍)} Ξ” π‘ž 1 ,1,𝐡 ={( π‘ž 1 ,𝐺𝐡)} Ξ” π‘ž 1 ,1,𝐺 ={( π‘ž 1 ,𝐺𝐺)} Ξ” π‘ž 2 ,1,𝐺 ={( π‘ž 2 ,πœ€)} 𝑄= { π‘ž 1 , π‘ž 2 } Ξ£={0,1,2} Ξ“={𝑍, 𝐡,𝐺} S= π‘ž 1 F= Ø Z=𝑍 Ξ“= simbol-simbol stack Z= Simbol awal tumpukan/top of stack ----- Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} State π‘ž 1 dan top stack Z membaca input β€˜a’ = Konfigurasi mesin menjadi : state π‘ž 1 , A di push

10 PDA (FSA + stack) jwb#2 Misal ingin mengetahui apakh string β€˜020’ diterima oleh PDA (FSA + stack) stack kosong? Z Ξ” π‘ž 1 ,0,𝑍 ={( π‘ž 1 ,𝐡𝑍)} Ξ” π‘ž 1 ,0,𝐡 ={( π‘ž 1 ,𝐡𝐡)} Ξ” π‘ž 1 ,0,𝐺 ={( π‘ž 1 ,𝐡𝐺)} Ξ” π‘ž 1 ,2,𝑍 ={( π‘ž 2 ,𝑍)} Ξ” π‘ž 1 ,2,𝐡 ={( π‘ž 2 ,𝐡)} Ξ” π‘ž 1 ,2,𝐺 = π‘ž 2 ,𝐺 Ξ” π‘ž 2 ,0,𝐡 ={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 ={( π‘ž 2 ,πœ€)} Ξ” π‘ž 1 ,1,𝑍 ={( π‘ž 1 ,𝐺𝑍)} Ξ” π‘ž 1 ,1,𝐡 ={( π‘ž 1 ,𝐺𝐡)} Ξ” π‘ž 1 ,1,𝐺 ={( π‘ž 1 ,𝐺𝐺)} Ξ” π‘ž 2 ,1,𝐺 ={( π‘ž 2 ,πœ€)} Konfigurasi awal mesin state π‘ž 1 top stack Z, membaca input β€˜0’ Ξ” π‘ž 1 ,0,𝑍 ={( π‘ž 1 ,𝐡𝑍)} B Z 2. Membaca input ’2’ Ξ” π‘ž 1 ,2,𝐡 ={( π‘ž 2 ,𝐡)} B Z Ξ“= simbol-simbol stack Z= Simbol awal tumpukan/top of stack ----- Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} State π‘ž 1 dan top stack Z membaca input β€˜a’ = Konfigurasi mesin menjadi : state π‘ž 1 , A di push 4. Tanpa membaca input (πœ€) Ξ” π‘ž 2 ,πœ€,𝑍 ={( π‘ž 2 ,πœ€)} Konfigurasi mesin menjadi : state π‘ž 2 , Z di pop, stack kosong 3. Membaca input β€˜0’ Ξ” π‘ž 2 ,0,𝐡 ={( π‘ž 2 ,πœ€)} Kesimpulan: Semua input sudah selesai dibaca. Stack kosong, berarti string tersebut diterima oleh PDA ini Z

11 PDA untuk Tata Bahasa Bebas Konteks/ Context Free Grammar (CFG)
PDA bisa dibuat untuk kumpulan aturan produksi dari suatu tata bahasa bebas konteks

12 Push Down Automata Bebas Konteks
PDA untuk CFG Push Down Automata Bebas Konteks Definisi 𝑄= himpunan State Ξ£= himpunan Simbol input Ξ“= simbol-simbol stack Ξ”= fungsi transisi S= State awal F= Himpunan Final State Z= Simbol awal tumpukan/top of stack Mesin ini dimulai dengan mem- push Z pada top stack. Pada langkah berikutnya: Jika top stack dari simbol stack adl suatu variable (missal A), kita menggantinya dengan ruas kanan dari A missal A->w, maka di ganti w jika top stack dari simbol tumpukan adl sebuah terminal dan jika ia menyamai simbol masukan berikutnya kita pop dari tumpukan.

13 #Lanjutan Contoh penerapan:
PDA untuk CFG soal#1 #Lanjutan Contoh penerapan: Misalkan sebuah tata bahasa bebas konteks dgn simbol awal D: D β†’ aDa|bDb|c Dapat dikonstruksi PDA-nya: Jawab 𝑄= { π‘ž 1 , π‘ž 2 , π‘ž 3 } Ξ£= π‘Ž,𝑏,𝑐 Ξ“= {D,a,b,c,Z} S= π‘ž 1 F= π‘ž 3 Ξ” π‘ž 1 ,πœ€,𝑍 ={( π‘ž 2 ,𝑆𝑍)}, untuk mempush simbol S ke stack Ξ” π‘ž 1 ,πœ€,𝐴 = π‘ž 2 ,𝑀 | A→𝑀 adl sebuah tata bahasa bebas kontek untuk semua variable A Ξ” π‘ž 1 ,π‘Ž,π‘Ž = π‘ž 2 ,πœ€ untuk setiap simbol terminal (untuk mempop pembandingan terminal) Ξ” π‘ž 2 ,πœ€,𝑍 ={( π‘ž 3 ,𝑍)}, bila selesai membaca string. Top stack adl Z berarti string input sukses diterima oleh PDA pasti simbol terminal Ξ“= simbol-simbol stack Z= Simbol awal tumpukan/top of stack lihat soal + Z pasti pasti

14 Soal#1) D β†’ aDa|bDb|c Dapat dikontruksi PDA-nya
PDA untuk CFG soal+jwb#1 Soal#1) D β†’ aDa|bDb|c Dapat dikontruksi PDA-nya Jawaban 𝑄= { π‘ž 1 , π‘ž 2 , π‘ž 3 } Ξ£= π‘Ž,𝑏,𝑐 Ξ“= {D,a,b,c,Z} S= π‘ž 1 F= π‘ž 3 Fungsi transisinya: Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝐷𝑍 Ξ” π‘ž 2 ,πœ€,𝐷 ={ π‘ž 2 ,π‘Žπ·π‘Ž , π‘ž 2 ,𝑏𝐷𝑏 ,( π‘ž 2 ,𝑐)} Ξ” π‘ž 2 ,π‘Ž,π‘Ž =Ξ”( π‘ž 2 ,𝑏,𝑏)= Ξ”( π‘ž 2 ,𝑐,𝑐)={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 Ξ“= simbol-simbol stack Z= Simbol awal tumpukan/top of stack ----- Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} State π‘ž 1 dan top stack Z membaca input β€˜a’ = Konfigurasi mesin menjadi : state π‘ž 1 , A di push Simbol awal Lihat soal, penerapan w Pola terminal Pasti

15 PDA untuk CFG soal stack +jwb#1
Berdasarkan aturan produksi, tata bahasa tersebut dapat menurunkan string β€˜aca’: D => aDa => aca Langkah-langkah pada PDA ketika menerima string tersebut adalah sebagai berikut: Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝐷𝑍 Ξ” π‘ž 2 ,πœ€,𝐷 = { π‘ž 2 ,π‘Žπ·π‘Ž , π‘ž 2 ,𝑏𝐷𝑏 ,( π‘ž 2 ,𝑐)} Ξ” π‘ž 2 ,π‘Ž,π‘Ž =Ξ”( π‘ž 2 ,𝑏,𝑏)= Ξ”( π‘ž 2 ,𝑐,𝑐)={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 Z 1. konfigurasi awal mesin : state q1, tanpa menerima input (πœ€), top of stack Z fungsi transisi : Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝐷𝑍 Konfigurasi mesin menjadi: state q2, D di push D Z 2. input : tanpa menerima input (πœ€) fungsi transisi : Ξ” π‘ž 2 ,πœ€,𝐷 ={ π‘ž 2 ,π‘Žπ·π‘Ž } konfigurasi mesin menjadi : state q2, pop top of stack, push β€˜aDa’ 3. input : menerima input β€˜a’ fungsi transisi : Ξ” π‘ž 2 ,π‘Ž,π‘Ž = {( π‘ž 2 ,πœ€)} konfigurasi mesin menjadi : state q2, pop top of stack D a Z a D Z

16 PDA untuk CFG soal stack +jwb#1
Berdasarkan aturan produksi, tata bahasa tersebut dapat menurunkan string β€˜aca’: D => aDa => aca Langkah-langkah pada PDA ketika menerima string tersebut adalah sebagai berikut: Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝐷𝑍 Ξ” π‘ž 2 ,πœ€,𝐷 = { π‘ž 2 ,π‘Žπ·π‘Ž , π‘ž 2 ,𝑏𝐷𝑏 ,( π‘ž 2 ,𝑐)} Ξ” π‘ž 2 ,π‘Ž,π‘Ž =Ξ”( π‘ž 2 ,𝑏,𝑏)= Ξ”( π‘ž 2 ,𝑐,𝑐)={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 4. input : tanpa menerima input (πœ€) fungsi transisi : Ξ” π‘ž 2 ,πœ€,𝐷 ={ π‘ž 2 ,𝑐 } konfigurasi mesin menjadi : state q2, pop top of stack, push β€˜c’ c a Z 5. input : menerima input β€˜c’ fungsi transisi : Ξ” π‘ž 2 ,𝑐,𝑐 = {( π‘ž 2 ,πœ€)} konfigurasi mesin menjadi : state q2, pop top of stack 7. input : tanpa menerima input (πœ€) fungsi transisi : Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 konfigurasi mesin menjadi : state q3 a Z tidak ada transisi lagi dari q3, karena sudah mencapai state akhir dan string input selesai dibaca, maka string β€˜aca’ diterima oleh PDA tersebut. 6. input : menerima input β€˜a’ fungsi transisi : Ξ” π‘ž 2 ,π‘Ž,π‘Ž = {( π‘ž 2 ,πœ€)} konfigurasi mesin menjadi : state q2, pop top of stack Z

17 Soal#2) S β†’ aBc|Bac , B β†’ b|c Dapat dikontruksi PDA-nya
PDA untuk CFG soal+jwb#2 Soal#2) S β†’ aBc|Bac , B β†’ b|c Dapat dikontruksi PDA-nya Jawaban 𝑄= { π‘ž 1 , π‘ž 2 , π‘ž 3 } Ξ£= π‘Ž,𝑏,𝑐 Ξ“= {S,B,a,b,c,Z} S= π‘ž 1 F= π‘ž 3 Fungsi transisinya: Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝑆𝑍 Ξ” π‘ž 2 ,πœ€,𝑆 ={ π‘ž 2 ,π‘Žπ΅π‘ , π‘ž 2 ,π΅π‘Žπ‘ } Ξ” π‘ž 2 ,πœ€,𝐡 ={ π‘ž 2 ,𝑏 , π‘ž 2 ,𝑐 } Ξ” π‘ž 2 ,π‘Ž,π‘Ž =Ξ”( π‘ž 2 ,𝑏,𝑏)= Ξ”( π‘ž 2 ,𝑐,𝑐)={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 pasti simbol terminal lihat soal+Z pasti pasti Ξ“= simbol-simbol stack Z= Simbol awal tumpukan/top of stack ----- Ξ” π‘ž 1 ,π‘Ž,𝑍 ={( π‘ž 1 ,𝐴𝑍)} State π‘ž 1 dan top stack Z membaca input β€˜a’ = Konfigurasi mesin menjadi : state π‘ž 1 , A di push Simbol awal Lihat soal, penerapan w Lihat soal, penerapan w Pola terminal Pasti

18 PDA untuk CFG soal stack +jwb#2
Berdasarkan aturan produksi, tata bahasa tersebut dapat menurunkan string β€˜acc’: S => aBc => acc Langkah-langkah pada PDA ketika menerima string tersebut adalah sebagai berikut: Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝑆𝑍 Ξ” π‘ž 2 ,πœ€,𝑆 = { π‘ž 2 ,π‘Žπ΅π‘ , π‘ž 2 ,π΅π‘Žπ‘ } Ξ” π‘ž 2 ,πœ€,𝐡 ={ π‘ž 2 ,𝑏 , π‘ž 2 ,𝑐 } Ξ” π‘ž 2 ,π‘Ž,π‘Ž =Ξ”( π‘ž 2 ,𝑏,𝑏)= Ξ”( π‘ž 2 ,𝑐,𝑐)={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 Z 1. konfigurasi awal mesin : state q1, tanpa menerima input (πœ€), top of stack Z fungsi transisi : Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝑆𝑍 Konfigurasi mesin menjadi: state q2, S di push S Z 2. input : tanpa menerima input (πœ€) fungsi transisi : Ξ” π‘ž 2 ,πœ€,𝑆 ={ π‘ž 2 ,π‘Žπ΅π‘ } konfigurasi mesin menjadi : state q2, pop top of stack, push β€˜aBc’ 3. input : menerima input β€˜a’ fungsi transisi : Ξ” π‘ž 2 ,π‘Ž,π‘Ž = {( π‘ž 2 ,πœ€)} konfigurasi mesin menjadi : state q2, pop top of stack B c Z a B c Z

19 PDA untuk CFG soal stack +jwb#2
Berdasarkan aturan produksi, tata bahasa tersebut dapat menurunkan string β€˜acc’: S => aBc => acc Langkah-langkah pada PDA ketika menerima string tersebut adalah sebagai berikut: Ξ” π‘ž 1 ,πœ€,𝑍 = π‘ž 2 ,𝑆𝑍 Ξ” π‘ž 2 ,πœ€,𝑆 = { π‘ž 2 ,π‘Žπ΅π‘ , π‘ž 2 ,π΅π‘Žπ‘ } Ξ” π‘ž 2 ,πœ€,𝐡 ={ π‘ž 2 ,𝑏 , π‘ž 2 ,𝑐 } Ξ” π‘ž 2 ,π‘Ž,π‘Ž =Ξ”( π‘ž 2 ,𝑏,𝑏)= Ξ”( π‘ž 2 ,𝑐,𝑐)={( π‘ž 2 ,πœ€)} Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 4. input : tanpa menerima input (πœ€) fungsi transisi : Ξ” π‘ž 2 ,πœ€,𝐡 ={ π‘ž 2 ,𝑐 } konfigurasi mesin menjadi : state q2, pop top of stack, push β€˜c’ c Z 5. input : menerima input β€˜c’ fungsi transisi : Ξ” π‘ž 2 ,𝑐,𝑐 = {( π‘ž 2 ,πœ€)} konfigurasi mesin menjadi : state q2, pop top of stack 7. input : tanpa menerima input (πœ€) fungsi transisi : Ξ” π‘ž 2 ,πœ€,𝑍 = π‘ž 3 ,𝑍 konfigurasi mesin menjadi : state q3 c Z tidak ada transisi lagi dari q3, karena sudah mencapai state akhir dan string input selesai dibaca, maka string β€˜acc’ diterima oleh PDA tersebut. 6. input : menerima input β€˜c’ fungsi transisi : Ξ” π‘ž 2 ,𝑐,𝑐 = {( π‘ž 2 ,πœ€)} konfigurasi mesin menjadi : state q2, pop top of stack Z

20 Alhamdulillah


Download ppt "Push Down Automata (PDA)"

Presentasi serupa


Iklan oleh Google