Dosen: Yessy Fitriani, ST.,M.Kom
Otomata adalah:
Suatu bentuk/model matematika yang memiliki fungsi-fungsi dari computer digital yaitu :
- Bisa memiliki penyimpanan sementara.
- Mampu membuat keputusan dalam
mentransformasikan input ke output.
- Terdiri dari sejumlah berhingga state (kedudukan)
- Perpindahan state satu ke yang lain berdasar input dan fungsi transisi
- Input pada otomata => bahasa yang harus dikenali
- Otomata membuat keputusan apakah input diterima atau tidak.
Finite State Automata
adalah mesin abstrak berupa sistem model matematika dengan masukan dan
keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler)
dan dapat diimplementasikan secara nyata.
Finite state automata (FSA) bukanlah mesin fisik tetapi suatu model
matematika dari suatu sistem yang menerima input dan output.
FSA merupakan
mesin automata dari bahasa regular (tipe 3). Suatu FSA memiliki state yang
banyaknya berhingga, dan dapat berpindah dari suatu state ke state lain.
Perubahan state dinyatakan oleh fungsi transisi.
FSA didefinisikan sebagai pasangan 5 tupel : (Q, ∑, δ, S, F).
Q : himpunan hingga state
∑ : himpunan hingga simbol input (alfabet)
δ : fungsi transisi, menggambarkan transisi state FSA akibat pembacaan simbol
input.
(Fungsi transisi ini biasanya diberikan dalam bentuk tabel.)
S : state AWAL (Start)
F : himpunan state AKHIR (Final)
Contoh FSA untuk mengecek
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
Dari contoh diatas,
maka:
Q = {Genap, Ganjil}
Σ = {0,1}
S = Genap
F = {Ganjil }
Klasifikasi
FSA
Ada dua jenis FSA :
1. Deterministic finite automata
(DFA)
Terdiri dari 1 transisi dari suatu state pada 1 simbol masukan.
2. Non
deterministik finite automata.(NFA)
Lebih dari 1 transisi dari suatu state dimungkinkan pada simbol masukan yang
sama.
- Kedua
finite automata tersebut mampu mengenali himpunan reguler secara presisi.
Dengan demikian kedua finite automata itu dapat mengenali string-string yang
ditunjukkan dengan ekspresi reguler secara tepat.
- DFA dapat
menuntun recognizer(pengenal) lebih cepat dibanding NDFA.
- Namun, DFA berukuran lebih besar dibanding NDFA yang ekivalen dengannya.
1.Deterministik (DFSA/DFA)
Pada setiap input, hanya ada satu keadaan (state) tujuan dari keadaan saat ini.
Contoh :
Pengujian untuk menerima bit string dengan banyaknya
0 genap, serta banyaknya 1 genap.
0011 : diterima
10010 : ditolak, karena banyaknya 0 ganjil
Diagram transisi-nya :
DFA nya:
Q = {q0 , q1 , q2 , q3 }
Σ = {0,1}
S = q0
F = { q0}
fungsi transisi adalah:
Contoh : diberikan
string 011 dan
1010, buktikan bahwa string tersebut diterima atau
ditolak !
δ (q0,011) = δ (q2,11)
= δ (q3,1)
= q2 Ditolak
δ (q0,1010) = δ (q1,010)
= δ (q3,10)
= δ (q2,0)
= δ (q0,empty) Diterima
2.Nondeterministik (NFSA/NFA)
Pada setiap input terdapat lebih dari satu keadaan tujuan dari keadaan saat ini.
Non-deterministic
◦ 1 keadaan + 1 input ≥ 1 keadaan.
◦ Atau, 1 keadaan + 1 input -> 0 keadaan
◦ Setiap DFA merupakan NFA.
Cara Kerja NFA :
- Misal: kita berada di keadaan q1 suatu NFA N1. Diberikan simbol input 1.
◦ Setelah membaca input
tersebut, mesin menuju semua keadaan
berikutnya yang
berlabel 1.
- Kemudian mesin membaca input berikutnya.
◦ Bila keadaan
berikutnya ada lebih dari
satu keadaan, ikuti semua keadaan
tersebut.
◦ Bila tidak ditemukan keadaan berikutnya, maka runtutan string tersebut mati.
- Jika salah satu dari cabang urutan string mencapai keadaan akhir/ final state/ keadaan yang diterima, NFA menerima string yang diberikan.
- Jika muncul keadaan dengan simbol empty,
maka tanpa membaca input lagi mesin menuju ke semua keadaan berikutnya yang dituju simbol empty.
Contoh :
sumber :
- slide TBO
- https://riskasimaremare.wordpress.com