BAB II FINITE STATE AUTOMATA
Penerapan Finite State Automata. Finite State Automata/Otomata berhingga state (FSA), bukan suatu mesin fisik, tetapi suatu model matematika dari suatu sistem yang menerima input dan output diskrit. FSA merupakan mesin otomata dari bahasa reguler. FSA memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari suatu state ke state lain.
Perubahan state dinyatakan oleh fungsi transisi. Jenis otomata FSA tidak memiki tempat penyimpanan, sehingga kemampuan ‘mengingatnya’ terbatas. Teori mengenai Finite State Automata adalah suatu tool yang berguna untuk merancang suatu sistem.
Arti dari bentuk-bentuk, pada FSA Lingkaran menyatakan state/kedudukan. Label pada lingkaran adalah nama state. Busur menyatakan transisi yaitu perpindahan kedudukan/state. Label pada busur adalah simbol input. Lingkaran didahului sebuah busur tanpa label menyatakan state awal. Lingkaran ganda menyatakan state akhir/ final.
Secara formal FSA dinyatakan oleh 5 tupel Secara formal FSA dinyatakan oleh 5 tupel. M = (Q, , δ, S, F ), dimana : Q = himpunan state / kedudukan = himpunan simbol input / masukkan / abjad. δ = fungsi transisi. S = state awal / kedudukan awal (initial state). F = himpunan state akhir. Jumlah state akhir pada suatu FSA bisa lebih dari satu.
B. Deterministic Finite Automata(DFA) (Otomata Berhingga Deterministik) Pada DFA, dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukkan yang diterima. a a b b q0 q1 q2 b a Contoh 1.
Konfigurasi DFA contoh 1, secara formal dinyatakan sebagai berikut : Q = {q0, q1, q2 } = {a, b} S = q0 F = q2 Fungsi transisi yang ada : δ(q0,a) = q0 δ(q0,b) = q1 δ(q1,a) = q1 δ(q1,b) = q2 δ(q2,a) = q1 δ(q2,b) = q2
Tabel transisi dari fungsi transisi contoh 1. δ a b q0 q1 q2
Non Deterministic Finite Automata ( NFA ) Pada NFA dari suatu state bisa terdapat 0, 1 atau lebih busur keluar/ transisi berlabel simbol input yang sama. Perbedaan DFA dan NFA ada pada fungsi transisinya, dimana untuk setiap pasangan state input, bisa memiliki 0 atau lebih pilihan untuk state berikutnya.
Suatu string diterima oleh NFA bila terdapat suatu urutan transisi sehubungan dengan input string tersebut dari state awal menuju state akhir. Untuk NFA, semua kemungkinan yang ada harus dicoba, sampai terdapat satu yang mencapai state akhir. Jadi untuk membuktikan suatu string diterima oleh NFA, harus dibuktikan suatu urutan transisi yang menuju state akhir.
Contoh 1 NFA a a q0 q1 b
Reduksi Jumlah State pada FSA Untuk bahasa reguler, kemungkinan ada sejumlah DFA yang dapat menerima NFA, perbedaannya ada pada jumlah state yang dimiliki otomata-otomata tersebut. Pilih Otomata dengan jumlah state paling sedikit, dengan tidak mengurangi kemampuannya ‘semula’ untuk menerima suatu bahasa.
Distinguishable ( dapat dibedakan) Distinguishable ( dapat dibedakan). Indistinguishable (tidak dapat dibedakan). State p dan q dikatakan distinguishable jika ada string w * sehingga sedemikian : δ (q,w) F sedang δ (p,w) F State p dan q dikatakan indistinguishable jika ada string w * sehingga sedemikian : δ (q,w) F sedang δ (p,w) F δ (q,w) F sedang δ (p,w) F
Pasangan dua buah state memiliki salah satu kemungkinan dari distinguishable atau indistinguishable, tetapi tidak kedua-duanya. Jika p dan q indistinguishable, dan jika q dan r juga indistinguishable, maka p dan r juga indistinguishable, dan ketiga state tersebut indistinguishable
Cara untuk mereduksi state dari suatu DFA : Hapus semua state yang tidak dapat dicapai dari state awal, dengan jalan manapun. Catat semua pasangan state (p,q) yang distinguishable. Lakukan pencarian state yang distinguishable. Pasangan-pasangan state lain yang tidak termasuk ke dalam state distinguishable, dapat ditentukan sebagai state yang indistinguishable. Beberapa state yang saling indistinguishable, dapat digabungkan ke dalam satu state. Sesuaikan transisi dari dan ke state-state gabungan tersebut.