390 likes | 804 Views
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
E N D
FINITE STATE AUTOMATA TeknikInformatika STTA 2013 YenniAstuti, S.T., M.Eng.
Jenis FSA • Deterministik padasetiap input, hanyaadasatukeadaan (state) tujuandarikeadaansaatini. • Nondeterministik padasetiap input terdapatlebihdarisatukeadaantujuandarikeadaansaatini.
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 (FQ)
5-TUPLE D-FSA DFSA A, terdiriatas 5 tuple, yaitu: A = (Q, , , q0, F)
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
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)
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
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)
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)
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.
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)
Contoh Desain suatu DFSA yang dapat menerima bahasa: L = {w | w memiliki jumlah 0 ganjil dan jumlah 1 ganjil}
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
Nondeterministik Finite State Automata (NFSA) • Suatu NFSA memilikikelebihanyakniberada di beberapakeadaanpadasaat yang sama. • Kelebihaniniseringdiekspresikansebagaikemampuanuntuk “menebak” sesuatumengenaiinputnya. • Tiap NFSA menerimasuatubahasa yang jugadapatditerimaolehsuatu DFSA. • NFSA lebihsederhanadaripada DFSA.
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)
Contoh: NFSA yang dapat menerima semua string berakhiran 01 0,1 q0 q1 q2 0 1
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.
Definisi Formal NFSA (lanj.) Satu-satunya perbedaan antara NFSA dan DFSA adalah banyaknya hasil yang diperoleh dari
Contoh: NFSA yang dapatmenerimasemua string berakhiran 01 A = ({q0, q1, q2}, {0,1}, , q0, {q2}) Denganfungsitransisi () diberikandalambentuktabel: 0,1 q0 q1 q2 0 1
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.
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
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.
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)
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)
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) = • UntukmenghitungD(S,a), kitalihatsemuakeadaan p dalam S, perhatikanperubahankeadaan N dari p ketikadiberikan input a, danambilgabungandarikeseluruhankeadaantersebut.
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
Contoh (lanj.) 0,1 q0 q1 q2 0 1
Contoh: dengannamabaru • Catatan: keadaan D berkaitandenganhimpunanbagiandarikeadaan N, namunkitadapatnotasikankeadaan D menggunakan A – F.
Langkah ke – 1.Membuat state DFSA Himpunan state yang baru : Q’ = {, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
Langkah ke – 2.Membuat Initial State DFSA Initial state yang baru : q0’= {1,3}
Langkah ke – 3.Membuat Final State DFSA Final state yang baru : F’= {{1}, {1,2}, {1,3}, {1,2,3}}
Langkah ke – 4.Membuat Diagram Transisi DFSA = a b 1 2 3 a, b a, b