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.
CONTOH MESIN OTOMATA Bentuk 1 q0 a q1 b q2 Bentuk 2 q0 + a q1 b q2 -
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. q0 a b q1 q2 Contoh DFA
Q = {q0, q1, q2 } = {a, b} S = q0 F = q2 δ(q0,a) = q0 δ(q0,b) = q1 Fungsi transisi yang ada : δ(q0,a) = q0 δ(q0,b) = q1 δ(q1,a) = q1 δ(q1,b) = q2 δ(q2,a) = q1 δ(q2,b) = q2
TABEL TRANSISI q0 a b q1 q2 δ 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 NFA q0 a b q1 a,b TABEL TRANSISI δ a b q0 q1 - q0,q1
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) State p dan q dikatakan distinguishable jika ada string w * sehingga sedemikian : δ (p,w) F dan δ (q,w) F State p dan q dikatakan indistinguishable jika ada string w * sehingga sedemikian : δ (p,w) F dan (q,w) F atau δ (p,w) F dan δ (q,w) F Indistinguishable (tidak dapat dibedakan)
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 FSA Buat tabel transisi dari FSA tersebut . Buat tabel yang menentukan pasangan distinguishable atau in distinguishable. Tentukan pasangan state (p,q) yang distinguishable. Untuk semua pasangan (p,q) yang mungkin dan w tentukan δ (p,w) = pa dan δ (q,w) = qb Jika pasangan (pa,qb) sudah tercakup di langkah 3 (distinguishable) maka pasangan (p,q) juga dikatakan distinguishable. Beberapa state yang saling indistinguishable dapat digabungkan ke da;am satu state. Sesuaikan transisi dari dan ke state-state gabungan tersebut.