Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Pushdown Automata (PDA)
HP – 9 Dec 2015
2
Review: Finite Automata
Buatlah otomata utk mengenali bahasa: L = {0i1j | i,j > 0} DFA: 1 Q3 Q0 Q1 1 Q2 start 1 Q3 0,1 TBO - PDA 9/20/2018
3
Finite Automata Regular Language
Sebuah mesin finite automata (DFA dkk) sudah cukup utk merepresentasikan bahasa tersebut. Setelah membaca simbol kedua (‘1’), selanjutnya tidak ada hubungannya lagi dengan simbol pertama (‘0’) TBO - PDA 9/20/2018
4
Non Regular Language Buatlah otomata utk mengenali bahasa:
L = {0i1j | i > j > 0} DFA ?? Tidak ada mekanisme dalam FA utk menyimpan berapa banyak suatu simbol yg telah dibaca. CFL Solusi: PDA TBO - PDA 9/20/2018
5
PDA: PushDown Automata
Mesin otomata yg dilengkapi dg storage tak terhingga (in-finite) dlm struktur Stack. Mampu menyimpan sejumlah informasi pd pembacaan simbol2 awal string & digunakan pd saat pembacaan simbol2 berikutnya. NFA- + Stack Meningkatkan kemampuan baca mesin Kelas bahasa yg dikenali meningkat TBO - PDA 9/20/2018
6
PDA Tuple PDA: (Q, , , , q0, Z0, F) Q q0, , F Z0, stack
otomata TBO - PDA 9/20/2018
7
StackAwal / StackAkhir
State 1 State 2 input StackAwal / StackAkhir stack stack (State 1, Input, Stack Awal) (State 2, Stack Akhir) 9/20/2018 TBO - PDA
8
PDA Sample Buatlah otomata utk mengenali bahasa:
L = {wwR | wR adalah kebalikan dari w} Palindrom dg banyak karakter genap PDA: 0, Z0/0Z0 1, Z0/1Z0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 0, 0/ 1, 1/ Q3 Q0 Q1 Q2 start , Z0/Z0 , 0/0 , 1/1 , Z0/Z0 TBO - PDA 9/20/2018
9
PDA Sample (2) PDA: (Q, , , , q0, Z0, F) Q = {Q0, Q1, Q2}
= {0, 1} = {0, 1, Z0} F = {Q2} (Q0, 0, Z0) = (Q0, 0Z0) (Q0, 1, Z0) = (Q0, 1Z0) (Q0, 0, 0) = (Q0, 00) (Q0, 0, 1) = (Q0, 01) (Q0, 1, 0) = (Q0, 10) (Q0, 1, 1) = (Q0, 11) (Q0, , Z0) = (Q1, Z0) (Q0, , 0) = (Q1, 0) (Q0, , 1) = (Q1, 1) (Q1, 0, 0) = (Q1, ) (Q1, 1, 1) = (Q1, ) (Q1, , Z0) = (Q2, Z0) TBO - PDA 9/20/2018
10
(Q0, 0, Z0) = (Q0, 0Z0) Kondisi (Q0, 0w, Z0): sedang berada di state Q0, memiliki input string “0w” dan stack masih kosong (Z0). Dapat berubah menjadi (Q0, w, 0Z0): tetap di Q0 dg mengkonsumsi input 0 (string menjadi hanya “w”) dengan kondisi stack bertambah menjadi 0Z0 Contoh: String “010” menjadi “10” Stack menjadi: TBO - PDA 9/20/2018
11
(Q0, , 1) = (Q1, 1) Kondisi (Q0, w, 1): sedang berada di state Q0, memiliki input string w dan stack dg TOP=1 Dapat berubah menjadi (Q1, w, 1): menuju Q1 dg tanpa mengkonsumsi input (-move) dengan kondisi stack juga tetap (TOP=1) TBO - PDA 9/20/2018
12
PDA Solution Contoh string: 1001 Q3 Q0 Q1 Q2 start Stack: TBO - PDA
9/20/2018
13
PDA Solution: Step 1 1001 Q3 Q0 Q1 Q2 start 1 Stack: 1, Z0/1Z0
TBO - PDA 9/20/2018
14
PDA Solution: Step 2 1001 Q3 Q0 Q1 Q2 start 1 Stack: 0, 1/01 TBO - PDA
1 Stack: TBO - PDA 9/20/2018
15
PDA Solution: Step 3 1001 Q3 Q0 Q1 Q2 start , 0/0 1 Stack: TBO - PDA
1 Stack: TBO - PDA 9/20/2018
16
PDA Solution: Step 4 1001 Q3 Q0 Q1 Q2 0, 0/ start 1 Stack: TBO - PDA
9/20/2018
17
PDA Solution: Step 5 1001 Q3 Q0 Q1 Q2 1, 1/ start Stack: TBO - PDA
9/20/2018
18
PDA Solution: Step 6 1001 Q3 Q0 Q1 Q2 start , Z0/Z0 Stack: TBO - PDA
9/20/2018
19
PDA Solution: Finish 1001 Diterima Q3 Q0 Q1 Q2
Note: PDA NFA-, maka terdapat berbagai alternatif di setiap input, sehingga tinggal dipilih alternatif yg menuju final. Q3 Q0 Q1 Q2 start Stack: TBO - PDA 9/20/2018
20
Instantaneous Description (ID)
ID: Tuple 3 elemen (q, w, ): q = state saat ini w = input tersisa = TOP, isi teratas dari stack Contoh: (Q1, 011, X) Kondisi saat ini sedang berada di Q1 dengan input “011” dan isi stack berupa X Akan bisa menjadi (Q2, 11, 0X) jika terdapat fungsi transisi dari Q1 ke Q2 dengan alfabet 0 dan syarat stack berisi X. (Q1, 0, X) = (Q2, 0X) Dapat ditulis: (Q1, 011, X) ⊦ (Q2, 11, 0X) TBO - PDA 9/20/2018
21
Langauge of PDA Jenis PDA dari cara mengenal bahasa:
Diterima oleh Final State: suatu string diterima jika akhirnya mencapai final state. Diterima oleh Empty Stack: suatu string diterima jika akhirnya stack kosong. Dapat saling ditransformasi Jika P adalah sebuah PDA: L(P) adalah himpunan string yang dapat mencapai final state (q0, w, Z0) ⊦* (f, , ), dapat berupa bagaimanapun kondisi stack. N(P) adalah himpunan string yang dapat mengosongkan stack (q0, w, Z0) ⊦* (q, , ), q dapat berupa state manapun. TBO - PDA 9/20/2018
22
Exercise (1) Jika PDA P = ({q,r}, {0,1}, {Z0, X}, , q, Z0, {r}) dengan fungsi transisi: (q, 0, Z0) = (q, XZ0) // push X (q, 0, X) = (q, XX) // push X (q, 1, X) = (q, X) // no stack ops (q, , X) = (r, ) // pop X (r, , X) = (r, ) // pop X (r, 1, X) = (r, XX) // push X (r, 1, Z0) = (r, ) // pop anything TBO - PDA 9/20/2018
23
Gambarlah PDA-nya. Berawal dari ID = (q, w, Z0), tunjukkan semua ID yang dapat dijangkau ketika: w = 0 contoh: ID = (q, , XZ0) w = 01 w = 0011 w = 010 TBO - PDA 9/20/2018
24
Exercise (2) Rancanglah sebuah PDA untuk menerima bahasa
L = {0n1n | n>0} L = {aibjck | i = j atau j = k} TBO - PDA 9/20/2018
25
Exercise (3) (q0, b, Z0) = (q1, BZ0) (q0, , Z0) = (f, BZ0)
PDA P: ({q0, q1, q2, q3, f}, {a,b}, {Z0, A, B}, , q0, Z0, {f}) dengan fungsi transisi: (q0, a, Z0) = (q1, AAZ0) (q0, b, Z0) = (q1, BZ0) (q0, , Z0) = (f, BZ0) (q1, a, A) = (q1, AAA) (q1, b, A) = (q1, ) (q1, , Z0) = (q0, Z0) (q2, a, B) = (q3, ) (q2, b, B) = (q3, BB) (q2, , Z0) = (q0, Z0) (q3, , B) = (q2, ) (q3, , Z0) = (q2, AZ0) TBO - PDA 9/20/2018
26
Tentukan langkah eksekusi (ID) yang menunjukkan bahwa string “bab” ada dalam L(P).
Tentukan L(P) Tentukan N(P) TBO - PDA 9/20/2018
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.