1 / 37

FINITE STATE AUTOMATA

FINITE STATE AUTOMATA. Teknik Informatika STTA 2013. Yenni Astuti , S.T., M.Eng. Jenis FSA. Deterministik pada setiap input, hanya ada satu keadaan ( state ) tujuan dari keadaan saat ini . Nondeterministik

irish
Download Presentation

FINITE STATE 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. FINITE STATE AUTOMATA TeknikInformatika STTA 2013 YenniAstuti, S.T., M.Eng.

  2. Jenis FSA • Deterministik padasetiap input, hanyaadasatukeadaan (state) tujuandarikeadaansaatini. • Nondeterministik padasetiap input terdapatlebihdarisatukeadaantujuandarikeadaansaatini.

  3. D-FSA • Himpunan keadaan (Q). • Himpunansimbol input () • Fungsi transisi (), memuatsatukeadaanasaldansatusimbol input dansatukeadaan tujuan. • Keadaan awal (q0)merupakan salah satu dari Q. • Himpunankeadaan final atau yang diterima, dinotasikandengan F (FQ)

  4. 5-TUPLE D-FSA DFSA A, terdiriatas 5 tuple, yaitu: A = (Q, , , q0, F)

  5. Notasi Lain DFSA • Diagram Transisi • Tiap keadaan merupakan simpul • Tiap keadaan q  Q dan tiap simbol a , dituliskan sebagai (q,a) = p. Artinya, diagram transisi memiliki panah dari q ke p, yang berlabel a. • Keadaan awal (q0) ditandai dengan adanya panah tanpa sumber. • Simpul yang menjadi keadaan final ditandai dengan lingkaran bergaris tepi ganda

  6. Notasi Lain DFSA • Tabel Transisi • Representasi daftar dari suatu fungsi • Baris menunjukkan keadaan dan kolom menunjukkan input. • Isi dari baris menunjukkan keadaan q dan isi dari kolom input a menunjukkan keadaan (q,a)

  7. Contoh: DFSA yang dapat menerima string berakhiran 01 A = ({q0, q1, q2}, {0,1}, , q0, {q2}) dengan fungsi transisi  diberikan dalam bentuk tabel: 0,1 1 0 q0 q1 q2 0 1

  8. Perluasan Fungsi Transisi untuk String • DFSA mendefinisikan bahasa sebagai himpunan semua string yang hasilnya dalam bentuk urutan transisi keadaan dari keadaan awal sampai keadaan final (yang diterima)

  9. Perluasan Fungsi Transisi untuk String (lanj.) • Fungsi Transisi Diperluas • Mendeskripsikan yang terjadi ketika suatu keadaan dimulai dan sembarang urutan input diikuti. • Jika  adalah fungsi transisi, maka fungsi transisi diperluas dinotasikan dengan • Fungsi transisi diperluas merupakan fungsi saat keadaan q untuk masukan berupa string w, dan menghasilkan keadaan p (keadaan yang dicapai otomaton ketika memulai di keadaan q dan memproses urutan input w)

  10. Definisi Formal dari Fungsi Transisi Diperluas Basis: (q, ) = q Jika kita berada pada keadaan q dan tidak membaca adanya input, maka kita tetap berada di keadaan q.

  11. Definisi Formal dari Fungsi Transisi Diperluas Induksi: Misal w adalah string yang berbentuk xa; yakni a merupakan simbol terakhir dari w, dan x merupakan string selain simbol terakhir. Maka: (q,w) = ((q,x), a) • Untuk memproses (q,w), pertama proses dahulu (q,x), hasilnya adalah keadaan yang otomaton tempati setelah memproses semua simbol selain simbol terakhir dari w. • Misal, keadaan ini adalah p, yakni (q,x) = p • Maka (q,w) adalah yang kita peroleh dengan melakukan transisi dari keadaan p dengan input a (simbol terakhir dari w)

  12. Contoh Desain suatu DFSA yang dapat menerima bahasa: L = {w | w memiliki jumlah 0 ganjil dan jumlah 1 ganjil}

  13. Bahasa dari DFSA Bahasa dari DFSA A = (Q, , , q0, F), dinotasikan dengan L(A), didefinisikan sebagai L(A) = {w | (q0,w) berakhir di F} Bahasa dari A merupakan himpunan semua string w yang memiliki keadaan awal q0 dan berakhir di keadaan final (yang diterima) Jika L adalah L(A) dari suatu DFSA, maka L adalah bahasa reguler

  14. Nondeterministik Finite State Automata (NFSA) • Suatu NFSA memilikikelebihanyakniberada di beberapakeadaanpadasaat yang sama. • Kelebihaniniseringdiekspresikansebagaikemampuanuntuk “menebak” sesuatumengenaiinputnya. • Tiap NFSA menerimasuatubahasa yang jugadapatditerimaolehsuatu DFSA. • NFSA lebihsederhanadaripada DFSA.

  15. NFSA(lanj.) • NFSA dapatselaludiubahke DFSA, namunmenghasilkanjumlahkeadaanbaru yang jumlahnyaeksponensial (kasus yang jarangterjadi) • Perbedaanantara DFSA dan NFSA adalahjenisfungsitransisinya () • Pada NFSA,  merupakanfungsi yang memuatsatukeadaan, dansimbol input (sepertifungsitransisi DFSA), namunmenghasilkanhimpunannolataulebihdarisatukeadaan (daripadamenghasilkantepatsatukeadaan, seperti yang harusdilakukan DFSA)

  16. Contoh: NFSA yang dapat menerima semua string berakhiran 01 0,1 q0 q1 q2 0 1

  17. Definisi Formal NFSA 5-tuple NFSA dituliskansebagai A = (Q, , , q0, F) • Q adalahhimpunanterbatasataskeadaan •  adalahhimpunanterbatasatassimbol input • q0  Q adalahkeadaanawal • F (F  Q) adalahhimpunankeadaan final (yang diterima) •  (fungsitransisi) adalahfungsi yang mengandungsatukeadaandari Q dansimbol input dalam  untukmenujukebeberapakeadaandalam Q.

  18. Definisi Formal NFSA (lanj.) Satu-satunya perbedaan antara NFSA dan DFSA adalah banyaknya hasil yang diperoleh dari 

  19. Contoh: NFSA yang dapatmenerimasemua string berakhiran 01 A = ({q0, q1, q2}, {0,1}, , q0, {q2}) Denganfungsitransisi () diberikandalambentuktabel: 0,1 q0 q1 q2 0 1

  20. FungsiTransisiDiperluas Basis: (q,) = {q} Tanpamendapatsimbol input, kitatetapberada di keadaansemula. Induksi: • Misalkan w adalah string dalambentukxa; dengan a merupakansimbolterakhirdari w, dan x suatu string yang adadalam w selainsimbolterakhir. • Misalkan(q,x) = {p1, p2, …, pk} • Bila • Maka: (q,w) = {r1, r2, …, rm} • Kita kerjakan(q,w) denganmengerjakan(q,x) kemudianikutitransisidarikeadaan yang dihasilkankekeadaan yang berlabel a.

  21. Contoh: NFSA yang dapatmenerimasemua string berakhiran 01 Untuk w = 00101 • (q0,) = {q0} • (q0,0) = {q0,0} = {q0, q1} • (q0,00) = {q0,0}  {q1,0} = {q0, q1}   = {q0, q1} • (q0,001) = {q0,1}  {q1,1} = {q0}  {q2} = {q0, q2} • (q0,0010) = {q0,0}  {q2,0} = {q0, q1}   = {q0, q1} • (q0,00101) = {q0,1}  {q1,1} = {q0}  {q2} = {q0, q2} 0,1 q0 q1 q2 0 1

  22. Bahasa NFSA Bahasasuatu NFSA A = (Q, , , q0, F) dinotasikandengan L(A) yang didefinisikansebagai L(A) = {w | (q0,w)  F   } Bahasadari A merupakanhimpunan string w * sehingga(q0,w) mengandungsetidaknyasatukeadaan yang diterima. Meskipun w dapatmenujusuatukeadaan yang tidakditerimaatautidakmenujukesuatukeadaanmanapun, tidakmenghalangi w untukditerimaoleh NFSA.

  23. Ekivalensi DFSA dan NFSA • Setiapbahasa yang dapatdideskripsikanoleh NFSA, dapatdideskripsikan pula olehsuatu DFSA. • Padaprakteknya, DFSA memilikijumlahkeadaan yang samadengan NFSA, meskipuntransisinyalebihbanyak. • Padakasustertentu, DFSA dapatmemiliki 2nkeadaan (untuk NFSA dengan n keadaan)

  24. Bukti: DFSA dapatmelakukansemua yang dilakukan NFSA Pembuktianmelibatkankonstruksi yang disebutkonstruksihimpunanbagiankarenamelibatkanpembuatansemuahimpunanbagiandarihimpunandarikeadaan – keadaan NFSA. Dari NFSA ke DFSA • Kita memiliki NFSA N = (QN, , N, q0, FN) • Tujuannyauntukmembuat DFSA D = (QD, , D, {q0}, FD) sehingga L(D) = L(N)

  25. KonstruksiHimpunanBagian • Input alfabetnyasama • Himpunankeadaanawal di D merupakanhimpunan yang memuatkeadaanawaldari N. • QDmerupakanhimpunandarihimpunanbagiandari QN, yakni QDmerupakanhimpunanpangkatdari QN. Jika QNmemiliki n keadaan, QDmemiliki 2nkeadaan. Tidaksemuakeadaandapatdiaksesdarikeadaanawal. • FDmerupakanhimpunandarihimpunanbagian S dari QNsehingga S  FN  . Sehingga FDmerupakansemuahimpunandarikeadaan N yang memuatsetidaknyasatukeadaan yang diterimadarikeadaan N. • Untuktiaphimpunan S  QN danuntuktiapsimbol input a  D(S,a) = • UntukmenghitungD(S,a), kitalihatsemuakeadaan p dalam S, perhatikanperubahankeadaan N dari p ketikadiberikan input a, danambilgabungandarikeseluruhankeadaantersebut.

  26. Contoh 0,1 QN = {q0, q1, q2}, maka QD = {, {q1}, {q2}, {q0, q1}, {q0,q2}, {q1,q2},{q0,q1,q2}} sehingga QDmemiliki 8 keadaan (tiapkeadaanberkaitandenganhimpunanbagiandari QN) q0 q1 q2 0 1

  27. Contoh (lanj.) 0,1 q0 q1 q2 0 1

  28. Contoh: dengannamabaru • Catatan: keadaan D berkaitandenganhimpunanbagiandarikeadaan N, namunkitadapatnotasikankeadaan D menggunakan A – F.

  29. Transformasikan NFSA berikut menjadi DFSA.

  30. Langkah ke – 1.Membuat state DFSA Himpunan state yang baru : Q’ = {, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}

  31. Langkah ke – 2.Membuat Initial State DFSA Initial state yang baru : q0’= {1,3}

  32. Langkah ke – 3.Membuat Final State DFSA Final state yang baru : F’= {{1}, {1,2}, {1,3}, {1,2,3}}

  33. Langkah ke – 4.Membuat Diagram Transisi DFSA  = a b  1 2 3 a, b a, b

  34. Langkahke – 5.PenghapusanState tak-perlu

  35. Langkahke – 5.Penghapusanstatetak-perlu

  36. Langkahke – 5.Penghapusanstatetak-perlu

  37. Langkahke – 5.Penghapusanstatetak-perlu

More Related