Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pushdown Automata (PDA)

Presentasi serupa


Presentasi berjudul: "Pushdown Automata (PDA)"— Transcript presentasi:

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


Download ppt "Pushdown Automata (PDA)"

Presentasi serupa


Iklan oleh Google