a
a b
b b
q0 q1 q2
Gambar 3.1
Perhatikan bahwa pada table transisi DFA diatas kita mempunyai sebuah state berikutnya
yang unik untuk setiap pasangan state-input. Jadi untuk sebuah state dan input yang
berlaku, kita bisa menentukan tepat satu state berikutnya. Suatu string x dinyatakan diterima
bila δ(S,x) berada pada state akhir. Biasanya secara formal dikatakan bila M adalah sebuah
Finite State Automata, M=(Q, ∑, δ, S, F) , menerima bahasa yang disebut L(M), yang
merupakan himpunan {xІ δ(S,x) didalam F}. Misal pada gambar 3.1 kita input-kan string
‘abb’ pada mesin tersebut, maka :
δ(q0,abb) = δ(q0, bb) = δ(q1, b) = q2
karena q2 termasuk di state akhir, maka ‘abb’ berada pada L(M).
Namun jika gambar 3.1 dimasukkan string ‘baba’ maka :
δ(q0, baba) = δ(q1, aba) = δ(q1, ba) = δ(q2, a) = q1
karena q1 tidak termasuk dalam state akhir, maka ‘baba’ tidak berada dalam L(M).
contoh lain pada gambar 3.2
0
1
q0 q1 q2
1 1
Gambar 3.2
Buat table transisinya…?
gambar 3.3
a b
q0 q1
q1 q1 q0
Terlihat dari q0 tidak ada state berikutnya bila menerima input ‘b’ atau dinyatakan dengan
Kita lihat contoh berikutnya :
a
b
a
q1
q0
b
a b
q2
Gambar 3.4
Terlihat dari q0 bila menerima input ‘a’ maka akan berpindah ke state q1 atau q2. Bila
disajikan dalam table transisi sebagai berikut :
a b
q0 {q1, q2} {q0}
q1 {q1} {q0}
q2 {q2} {q1}
a
q0 q1
a q1
q0
Untuk suatu bahasa regular kemungkinan ada sejumlah DFA yang dapat
menerimanya. Perbedaannya umumnya adalah pada jumlah state yang dimiliki oleh
otomata-otomata yang saling ekivalen tersebut.
Tentunya secara praktis FSA dengan jumlah state yang lebih sedikit merupakan FSA yang
paling efisien.
Untuk mendapatkan FSA yang efisien maka perlu dievaluasi dan direduksi jumlah
state dari FSA tersebut dengan tidak mengurangi kemampuan semula dalam menerima
suatu bahasa.
Setiap pasangan state didalam suatu FSA dapat dikelompokan atas :
indistinguishable state
distinguishable state
Distinguishable state adalah pasangan state yang dapat dibedakan, sedangkan
indistinguishable state adalah pasangan state yang tidak dapat dibedakan.
Untuk state-state yang indistinguishable pada prinsipnya dapat digabungkan menjadi satu
state. Reduksi jumlah state dapat dilakukan dengan pendekatan tersebut.
InDistinguishable State
Dua buah state p dan q dari sebuah FSA dikatakan indistinguishable jika :
dan
δ (q, w) F begitu pula δ (p, w) F
untuk semua w ∑*
Distinguishable State
Dua buah state p dan q dari sebuah FSA dikatakan distinguishable jika ada string w
∑* sedemikian sehingga :
δ (q, w) F sedangkan δ (p, w) F
Relasi-relasi
Pasangan dua buah state memiliki salah satu kemungkinan : distinguishable atau
indistinguishable tetapi tidak kedua-duanya. Dalam hal ini terdapat sebuah relasi :
IMPLEMENTASI REDUKSI
Implementasi reduksi state dari suatu FSA dapat dilakukan sebagai berikut :
1. Hapuslah semua state tidak dapat dicapai dari state awal (useless state)
2. Indentifikasi state-state yang indistinguishable dan gabungkan
4. Semua pasangan state yang tidak termasuk sebagai state yang distinguishable, adalah
state-state indistinguishable.
5. Beberapa state yang indistinguishable dapat digabungkan menjadi satu state.
6. Sesuaikan transisi dari state-state gabungan tersebut.
q1
0 1
0 0 0,1
q0 q4
1
q2
1 0
0 1
q3 q5
1
0,1
0, 1 1
q0 q12 q4
3
Kedua mesin sebelum dan sesudah direduksi akan tetap menerima bahasa yang
sama.
Latihan
1. Gambarkan diagram transisi dari DFA berikut :
Q = { q0, q1, q2 }
∑ = { a, b }
S = q0
F = { q0 }
Fungsi transisi dari DFA berikut :
δ a b
q0 q1 q2
q1 q2 q0
q2 q2 q2
δ 0 1
q0 {q0, q3} {q0, q1}
q1 ø {q2}
q2 {q2} {q2}
q3 {q4} ø
q4 {q4} {q4}