1 / 35

14. PUSH DOWN AUTOMATA

14. PUSH DOWN AUTOMATA. 14.1 Push Down Automata (PDA) Merupakan mesin otomata dari bahasa bebas konteks . Perbedaan PDA dengan Otomata Hingga terletak Pada kemampuan memori . Otomata hingga mempunyai memori yang terbatas , sedangkan PDA mempunyai memori yang tidak terbatas ,

lela
Download Presentation

14. PUSH DOWN AUTOMATA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 14. PUSH DOWN AUTOMATA

  2. 14.1 Push Down Automata (PDA) Merupakanmesinotomatadaribahasabebas konteks. Perbedaan PDA denganOtomataHinggaterletak Padakemampuanmemori. Otomatahingga mempunyaimemori yang terbatas, sedangkan PDA mempunyaimemori yang tidakterbatas, berupastack. Stackadalahkumpulandarielemen-elemensejenis dengansifatpenambahanelemendanpengambilan Elemenmeleluisuatutempat yang disebut top of stack.

  3. Aturanpengisianataupengeluaranelemenstack menganutsistem LIFO (Last In First Out). Pengasmbilanelemendari stack dikenaldenganistilah pop. Sedangkanmemasukkanelemenkedalam stack dikenaldenganistilahpush. Contohsebuahstack Top-stack  A D D E E Biladilakukanoperasipop, makakondisi stack menjadi: Top-stack 

  4. Biladilakukanoperasipush B, makakondisi stack menjadi: B Top-stack  D E

  5. Sebuah PDA dinyatakandalam 7 tupel: • M = (Q, , , , S, F, Z) • Q = himpunanstate • = himpunansimbol input • = simbol-simboltumpukan / stack • = fungsitransisi • S = stateawal, S  Q • F = himpunanfinal state, F  Q • Z = simbolawaltumpukan / top stack, Z   • Dari komponendiatasdapatdisimpulkanbahwa: • - DefinisiuntukQ, , S, F samadengan yang adapada • Otomatahingga. • Tupelbaruadalah , Z yang berhubungandenganstack. •  memilikikemiripandengan  padaotomatahingga • denganbeberapaperbedaan (akandijelaskankemudian)

  6. PDA dapatdianggapsebagaiotomatahingga yang dilengkapidenganstack. Sebuah PDA yang menerimainput, selainbisa berpindahstatejugabisamelakukanoperasipada stack. Kondisiataukonfigurasi PDA padasuatusaat dinyatakandenganstatedanstack. Jenistransisipada PDA; Membacasimbolinput Tanpamembacasimbolinput.

  7. Membacasimbol input Pada PDA yang membacasimbol input, terdapat sejumlahpilihan yang mungkin, bergantungpada simbol input, simbolpadatop-stack, danstate. Setiappilihanterdiridari state berikutnyadan simbol-simbol (bisasatu, bebeapa, ataukosong) untuk menggantisimbolpadatop-stack. Penggantiansimbolpadatop-stackbisaberupapush, untuksatuataubeberapasimbol, atauberupapop untuksimbolkosong. Setelahmembuatpilihan, kemudian PDA membaca simbolinputberikutnya.

  8. 2. Tanpamembacasimbol input Jenistransisitanpamembaca input adalahtransisi yang dilakukantanpamembaca input atau. Transisiinimemungkinkan PDA memanipulasiisi stackatauberpindahstatetanpamembacainput. Jenis-jenis PDA: PDA null stack, yaitu PDA yang melakukan penerimaaninputdenganstackkosong. 2. PDA final state,yaitu PDA yang melakukan penerimaan input yang pilihantransisinya menyebabkan PDA mencapaifinal state.

  9. Contoh 14.1 • Sebuah PDA • Q = {q1, q2} • = {a, b} • = {A, B, Z} • S = q1 • Z = Z • F = {q2} PDA tersebutmemilikifungsitransisi: (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)}

  10. Kita bisamembacafungsitransisitsb. sebagaiberikut. (q1, a, Z) = {(q1, AZ)} Mesindengankonfigurasi: State q1dantop-stack Z membacainput ‘a’ Z Konfigurasimenjadi: State q1 , push A kestack, A menjaditop-stack A Z

  11. (q1, b, A) = {(q1, )} Mesindengankonfigurasi: State q1dantop-stack A membacainput ‘b’ A Konfigurasimenjadi: State q1 , pop A daristack, elemendibawah A menjaditop-stack

  12. (q1, , Z) = {(q2, Z)} Mesindengankonfigurasi: State q1dantop-stack Z tanpamembacainput. Z Z Konfigurasimenjadi: State q2, stacktidakberubah

  13. Contoh 14.2 • Sebuah PDA • Q = {q1, q2} • = {a, b} • = {A, B, Z} • S = q1 • Z = Z • F = {q2} PDA tersebutmemilikifungsitransisi: (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)} Tentukanapakah PDA diatasdapatmenerima string ‘abba’ Penyelesaian:

  14. Fungsitransisi: (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)} Konfigurasiawalmesin: state q1 , top-stack Z, membacainput ‘a’. Fungsitransisinya: (q1, a, Z) = {(q1, AZ)} Konfigurasimesinmenjadi: stateq1danpush A Z A Z

  15. 2. Membacainput ‘b’. Fungsitransisinya: (q1, b, A) = {(q1, )} Konfigurasimesinmenjadi: stateq1dantop-stackdipop Fungsitransisi: (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)} Z 3. Membacainput ‘b’. Fungsitransisinya: (q1, b, Z) = {(q1, BZ)} Konfigurasimesinmenjadi: stateq1dan B dipush B Z

  16. 4. Membacainput ‘a’. Fungsitransisinya: (q1, a, B) = {(q1, )} Konfigurasimesinmenjadi: stateq1dantop-stackdipop Fungsitransisi: (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)} Z 5. Semua input sudahselesaidibaca. Fungsitransisinya: (q1, , Z) = {(q2, Z)} Konfigurasimesinmenjadi: state q2 State q2beradadalam F (final state), maka‘abba’ diterimaoleh PDA Z

  17. Contoh 14.3 Sebuah PDA Q = {q1, q2} ;  = {0, 1, 2} ; = {Z, B, G} ; S = {q1 , q2} ; Z = Z ; F =  PDA tersebutmemilikifungsitransisi: (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q2, 1, Z) = {(q1, GZ)} (q2, 1, B) = {(q1, GB)} (q2, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} Tentukanapakah PDA diatasdapatmenerima string ‘020’ Penyelesaian:

  18. Z B (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q2, 1, Z) = {(q1, GZ)} (q2, 1, B) = {(q1, GB)} (q2, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z Konfigurasiawalmesin: stateq1 , top-stack Z, menerimainput ‘0’. Fungsitransisinya: (q1, 0, Z) = {(q1, BZ)} Konfigurasimesinmenjadi: stateq1danpush B

  19. 2. Membaca input ‘2’ Fungsitransisinya: (q1, 2, B) = {(q2, B)} Konfigurasimesinmenjadi: state q2danstack tetap B (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q2, 1, Z) = {(q1, GZ)} (q2, 1, B) = {(q1, GB)} (q2, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z

  20. 3. Membaca input ‘0’ Fungsitransisinya: (q2, 0, B) = {(q2, )} Konfigurasimesinmenjadi: state q2dan B dipop (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q2, 1, Z) = {(q1, GZ)} (q2, 1, B) = {(q1, GB)} (q2, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z

  21. 4. Tanpamembaca input (  ) Fungsitransisinya: (q2, , Z) = {(q2, )} Konfigurasimesinmenjadi: state q2dan Z dipop Stack kosong (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q2, 1, Z) = {(q1, GZ)} (q2, 1, B) = {(q1, GB)} (q2, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z

  22. 14.2 PDA untuksuatutatabahasabebaskonteks PDA adalahmerupakanpenerimabahasa-bahasa bebaskonteks, sehinggadarisuatutatabahasa bebaskontekskitadapatmemperolehsebuah PDA, begitujugasebaliknya. Sebuah PDA bisadibuatuntukkumpulanaturan Produksidarisuatutatabahasabebaskonteks. Langkah-langkahnyaadalahsebagaiberikut: 1. Definisikan: Q = {q1, q2, q3} S =q1 F = { q3}  = simbol terminal

  23. Untuk yang berhubungandenganstack, tentukan : • = semuasimbolvariabel, simbol terminal, dan • Z (simbolawalstack) • 2. Mesininidimulaidenganmem-push Z pada top stack. Padasetiaplangkahberikutnyadilakukan • salahsatudariduahalberikut: • Jikatop-stackadalahvariabel , misal A, kitagantikandenganruaskanandari A, misal A w, • makakitagantidengan w. • Jikatop-stackadalah terminal, dansamadengansimbolmasukanberikutnya, makakitapopdaristack.

  24. 3. Berdasarkanaturandiatas, kitadapatmengkonstruksiempattipetransisiberikut. •  (q1 , , Z) = {(q2, SZ)} untukmem-push simbolawal (S) kestack. •  (q2, , A) = {(q2 , w) | A  w adlahsebuahsimbolproduksidalamtatabahasabebaskonteksitu} untuksemuavariabel A. •  (q2, a, a) = {(q2 , )} untuksetiapsimbol terminal (untukmem-poppembandingan terminal yang sama) •  (q2, , Z) = {(q3, Z)}, bilaselesaimembacasemuainputdantop-stackadalah Z, berartistringinputsuksesditerimaoleh PDA ( q3stateakhir)

  25. Contoh14.4 • Sebuahtatabahasabebaskonteks, D  aDa | bDb | c • PDA nyadapatdikonstruksimenjadi: • Q = {q1, q2, q3 } • S = q1 • F = { q3 } • = {a, b, c} • = {D, a, b, c, Z} • Fungsitransisinya: • (q1, , Z) = {(q2, DZ)} • (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} • (q2, a, a) =  (q2, b, b) =  (q2, c, c) = {(q2, )} • (q2, , Z) = {(q3, Z)}

  26. Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘aca’ dari D  aDa  aca Karenatatabahasabebaskonteksbisamenurunkanstring ‘aca’ , maka PDA jugaharusdapatmenerimauntaitersebut. Langkahpemeriksaan:

  27. Konfigurasiawalmesin: state q1 , top-stack Z, tanpamenerimainput (). Fungsitransisinya: (q1, , Z) = {(q2, DZ)} Konfigurasimesinmenjadi: state q2danpush D

  28. 2. Tanpamenerimainput (). Fungsitransisinya: (q2, , D) = {(q2, aDa)} Konfigurasimesinmenjadi: state q2 d, pop top-stack push ‘aDa’

  29. 3. Menerimainput ‘a’ Fungsitransisinya: (q2, a, a) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack

  30. 4. Tanpamenerimainput (  ) Fungsitransisinya: (q2, , D) = {(q2, c)} Konfigurasimesinmenjadi: state q2 d, pop top-stack, push c

  31. 5. Menerimainput ’c’ Fungsitransisinya: (q2, c, c) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack

  32. 6. Menerimainput ’a’ Fungsitransisinya: (q2, a, a) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack

  33. 7. Tanpamenerimainput () Fungsitransisinya: (q2, , Z) = {(q3, Z)} Konfigurasimesinmenjadi: state q3 Tidakadatransisilagidari q3 . Karenaq3state akhirdansemua input sudahselesaidibaca, sehinggamenandakanuntai ‘aca’ diterimaoleh PDA tersebut.

  34. 14.3 Deskripsiseketikapada PDA Langkah 1 s.d. 7 padacontohsoal 14.4, dapatjugadinyatakandalamsuatunotasi yang disebutdeskripsiseketika (instantaneous description). Deskripsiseketikatersebutdigunakanuntukmenyatakansecara formal konfigurasi PDA padasuatusaat. Perubahandarisuatukondisikekondisiberikutnyadipisahkandengantanda ‘┣’. Konfigurasisuatusaatdapatdinyatakandengan triplet: (q, w, u) Dimana q menyatakanstate, w adalahstring yang belumdibaca, sedangkan u adalahisistackdengansimbolterkiriadalahpop-stack.

  35. Tahapannomor 1 s.d. 7 dapatdinyatakansebagaiberikut: (q1 , aca, Z) (q2, aca, DZ) (q2, aca, aDaZ) (q2, ca, DaZ) (q2, ca, caZ) (q2, a, aZ) (q2 , , Z) (q3, , Z)

More Related