Pushdown Automata PDA HP 9 Dec 2015 Review


























- Slides: 26
Pushdown Automata (PDA) HP – 9 Dec 2015
Review: Finite Automata �Buatlah otomata utk mengenali bahasa: L = {0 i 1 j | i, j > 0} �DFA: start 1 0 0 Q 1 1 1 Q 23 0 Q 3 0, 1 2 TBO - PDA 9/26/2020
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’) 3 TBO - PDA 9/26/2020
Non Regular Language �Buatlah otomata utk mengenali bahasa: L = {0 i 1 j | i > j > 0} �DFA ? ? �Tidak ada mekanisme dalam FA utk menyimpan berapa banyak suatu simbol yg telah dibaca. CFL � Solusi: PDA 4 TBO - PDA 9/26/2020
PDA: Push. Down Automata �Mesin otomata yg dilengkapi dg storage tak terhingga (in-finite) dlm struktur Stack. �Mampu menyimpan sejumlah informasi pd pembacaan simbol 2 awal string & digunakan pd saat pembacaan simbol 2 berikutnya. �NFA- + Stack 5 �Meningkatkan kemampuan baca mesin TBO - PDA �Kelas bahasa yg dikenali meningkat 9/26/2020
PDA Tuple �PDA: (Q, , q 0, Z 0, F) Q q 0, , F otomata 6 TBO - PDA Z 0, stack 9/26/2020
State 1 State 2 input Stack. Awal / Stack. Akhir stack (State 1, Input, Stack Awal) (State 2, Stack Akh 7 TBO - PDA 9/26/2020
PDA Sample �Buatlah otomata utk mengenali bahasa: L = {ww. R | w. R adalah kebalikan dari w} Palindrom dg banyak karakter genap �PDA: 0, 1, ZZ /0 Z /1 Z 0 0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 start 8 TBO - PDA Q 0 0, 0/ 1, 1/ , Z 0/Z 0 , 0/0 , 1/1 Q 1 , Z 0/Z 0 Q 23 9/26/2020
PDA Sample (2) �PDA: (Q, , q 0, Z 0, F) �Q = {Q 0, Q 1, Q 2} � = {0, 1, Z 0} �F = {Q 2} 9 TBO - PDA � (Q 0, � (Q 0, � (Q 0, � (Q 1, 0, Z 0) = (Q 0, 0 Z 0) 1, Z 0) = (Q 0, 1 Z 0) 0, 0) = (Q 0, 00) 0, 1) = (Q 0, 01) 1, 0) = (Q 0, 10) 1, 1) = (Q 0, 11) , Z 0) = (Q 1, Z 0) , 0) = (Q 1, 0) , 1) = (Q 1, 1) 0, 0) = (Q 1, ) 1, 1) = (Q 1, ) , Z 0) = (Q 2, Z 0) 9/26/2020
� (Q 0, 0, Z 0) = (Q 0, 0 Z 0) �Kondisi (Q 0, 0 w, Z 0): sedang berada di state Q 0, memiliki input string “ 0 w” dan stack masih kosong (Z 0). �Dapat berubah menjadi (Q 0, w, 0 Z 0): tetap di Q 0 dg mengkonsumsi input 0 (string menjadi hanya “w”) dengan kondisi stack bertambah menjadi 0 Z 0 � Contoh: 10 TBO - PDA String “ 010” menjadi “ 10” Stack menjadi: 0 9/26/2020
� (Q 0, , 1) = (Q 1, 1) �Kondisi (Q 0, w, 1): sedang berada di state Q 0, memiliki input string w dan stack dg TOP=1 �Dapat berubah menjadi (Q 1, w, 1): menuju Q 1 dg tanpa mengkonsumsi input ( -move) dengan kondisi stack juga tetap (TOP=1) 11 TBO - PDA 9/26/2020
PDA Solution �Contoh string: 1001 start Q 0 Q 1 Q 23 Stack: 12 TBO - PDA 9/26/2020
PDA Solution: Step 1 � 1001 1, Z 0/1 Z 0 start Q 0 Q 1 Q 23 Stack: 13 TBO - PDA 1 9/26/2020
PDA Solution: Step 2 � 1001 0, 1/01 start Q 0 Q 1 Q 23 0 Stack: 14 TBO - PDA 1 9/26/2020
PDA Solution: Step 3 � 1001 start Q 0 , 0/0 Q 1 Q 23 0 Stack: 15 TBO - PDA 1 9/26/2020
PDA Solution: Step 4 � 1001 0, 0/ start Q 0 Q 1 Q 23 Stack: 16 TBO - PDA 1 9/26/2020
PDA Solution: Step 5 � 1001 1, 1/ start Q 0 Q 1 Q 23 Stack: 17 TBO - PDA 9/26/2020
PDA Solution: Step 6 � 1001 start Q 0 Q 1 , Z 0/Z 0 Q 23 Stack: 18 TBO - PDA 9/26/2020
PDA Solution: Finish � 1001 Diterima start Q 0 Q 1 Q 23 Note: PDA NFA- , maka terdapat berbagai alternatif di setiap input, sehingga tinggal dipilih alternatif yg menuju final. Stack: 19 TBO - PDA 9/26/2020
Instantaneous Description (ID) �ID: Tuple 3 elemen (q, w, ): �q = state saat ini �w = input tersisa � = TOP, isi teratas dari stack Contoh: (Q 1, 011, X) �Kondisi saat ini sedang berada di Q 1 dengan input “ 011” dan isi stack berupa X �Akan bisa menjadi (Q 2, 11, 0 X) jika terdapat fungsi transisi dari Q 1 ke Q 2 dengan alfabet 0 dan syarat stack berisi X. (Q 1, 0, X) = (Q 2, 0 X) �Dapat ditulis: (Q 1, 011, X) ⊦ (Q 2, 11, 0 X) 20 TBO - PDA 9/26/2020
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 (q 0, w, Z 0) ⊦* (f, , ), dapat berupa bagaimanapun kondisi stack. �N(P) adalah himpunan string yang dapat mengosongkan stack (q 0, w, Z 0) ⊦* (q, , ), q dapat berupa state manapun. 21 TBO - PDA 9/26/2020
Exercise (1) �Jika PDA �P = ({q, r}, {0, 1}, {Z 0, X}, , q, Z 0, {r}) dengan fungsi transisi: � (q, 0, Z 0) = (q, XZ 0) � (q, 0, X) = (q, XX) � (q, 1, X) = (q, X) � (q, , X) = (r, ) � (r, 1, X) = (r, XX) � (r, 1, Z 0) = (r, ) 22 TBO - PDA // push X // no stack ops // pop X // push X // pop anything 9/26/2020
�Gambarlah PDA-nya. �Berawal dari ID = (q, w, Z 0), tunjukkan semua ID yang dapat dijangkau ketika: �w = 0 contoh: ID = (q, , XZ 0) �w = 01 �w = 0011 �w = 010 23 TBO - PDA 9/26/2020
Exercise (2) �Rancanglah sebuah PDA untuk menerima bahasa �L = {0 n 1 n | n>0} �L = {aibjck | i = j atau j = k} 24 TBO - PDA 9/26/2020
Exercise (3) � PDA P: ({q 0, q 1, q 2, q 3, f}, {a, b}, {Z 0, A, B}, , q 0, Z 0, {f}) dengan fungsi transisi: (q 0, a, Z 0) = (q 1, AAZ 0) (q 1, a, A) = (q 1, AAA) (q 0, b, Z 0) = (q 1, BZ 0) (q 2, a, B) = (q 3, ) (q 1, b, A) = (q 1, ) (q 3, , B) = (q 2, ) (q 2, b, B) = (q 3, BB) (q 3, , Z 0) = (q 2, AZ 0) 25 TBO - PDA (q 0, , Z 0) = (f, BZ 0) (q 1, , Z 0) = (q 0, Z 0) (q 2, , Z 0) = (q 0, Z 0) 9/26/2020
�Tentukan langkah eksekusi (ID) yang menunjukkan bahwa string “bab” ada dalam L(P). �Tentukan L(P) �Tentukan N(P) 26 TBO - PDA 9/26/2020