BAB II FINITE STATE AUTOMATA
model matematika yang dapat menerima input dan mengeluarkan output ♦ Memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasar input dan fungsi transisi ♦ Tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini. ♦ Mekanisme kerja dapat diaplikasikan pada : elevator, text editor, analisa leksikal, pencek parity.
Penerapan Finite State Automata. Finite State Automata/Otomata berhingga state (FSA), bukan suatu mesin fisik, tetapi suatu model matematika dari suatu sistem yang dapat menerima input dan mengeluarkan output. FSA merupakan mesin otomata dari bahasa reguler. FSA memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari suatu state ke state lainnya berdasar input dan fungsi transisi.
Jenis otomata FSA tidak memiki tempat penyimpanan, sehingga kemampuan ‘mengingatnya’ terbatas, hanya bisa mengingat state terkini Teori mengenai Finite State Automata adalah suatu tool yang berguna untuk merancang suatu sistem.ex: elevator, text editor, analisa leksikal,pencek parity
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.
Contoh pencek parity ganjil Misal input : 1101 Genap 1 Ganjil 1 Genap 0 Genap 1 Ganjil diterima mesin Misal input : 1100 Genap 1 Ganjil 1 Genap 0 Genap 0 Genap ditolak mesin 1 Genap Ganjil 1
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 b q0 q1 q2 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/DFA 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 b q0 {q0,q1} { } q1 a a a q0 q1 b TABEL TRANSISI UNTUK NFA DI ATAS : δ a b q0 {q0,q1} { } q1 Note: { } dan jumlah state lebih dari satu menandakan NFA
Reduksi Jumlah State pada FSA Untuk bahasa reguler, kemungkinan ada sejumlah DFA yang dapat menerima NFA, perbedaannya pada jumlah state yang dimiliki otomata-otomata tersebut. UNTUK APA REDUKSI STATE?? 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 atau δ (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.
CONTOH: q1 1 0,1 q0 1 q2 q4 1 1 q3
LIHAT JAWAB NYA DON’K…. 1. Hapus state yang tidak tercapai -> tidak ada 2. Pasangan distinguishable (q0,q4), (q1,q4), (q2,q4), (q3,q4). 3. Pasangan sisanya (q0,q1), (q0,q2), (q0,q3), (q1,q2) (q1,q3) (q2,q3) pasangan State 1 State 2 Hasil 1 (q0,q1) q1 q3 q2 q4 Distinguishable (q0,q2) (q1,q2) Indistinguishable (q0,q3) (q1,q3) (q2,q3)
Catatan : jumlah pasangan seluruhnya : Prosedur Reduksi DFA 1. Tentukan pasangan status indistinguishable. 2. Gabungkan setiap group indistinguishable state ke dalam satu state dengan relasi pembentukan group secara berantai : Jika p dan q indistingishable dan jika q dan r indistinguishable maka p dan r indistinguishable, dan p,q serta r indistinguishable semua berada dalam satu group. 3. sesuaikan transisi dari dan ke state-state gabungan. Contoh 1. pasangan status indistinguishable (q1,q2), (q1,q3) dan (q2,q3). 2. q1,q2,q3 ketiganya dapat digabung dalam satu state q123 3. Menyesuaikan transisi, sehingga DFA menjadi
Bagaimana fungsi transisinya???... HASIL REDUKSI : 0,1 0,1 1 q0 q123 q4 Bagaimana fungsi transisinya???...
SELESAI