AUTOMATA (NFA)
3.1 Pendahuluan
Model mesin ini mirip dengan model DFA hanya berbeda pada next state-nya saja. Pada
bab ini akan dibahas tentang model mesin finite state yang bertipe nondeterministic, diagram
transisinya, cara menggambarkan diagram transisi, dan cara menuliskan table transisi.
q 3 0 q 4
0,1
0
q 0
0,1
1
q 1
1 q 2
Perhatikan bahwa dalam table transisi, state-state dituliskan dalam kurung kurawal, yang
berarti bahwa hasil transisinya/state yang dituju adalah himpunan state-state.
Pada gambar 3.1 terlihat bahwa dari state q0 terdapat dua busur keluar yang berlabel input 0,
yaitu kembali ke q0 dan satu busur lagi menuju ke state q3. Demikian pula apabila mendapat
input 1, terdapat dua busur keluar yang berlabel input 1, yaitu kembali ke q0 dan satu
busur lagi menuju ke state q1. Pada state q1 hanya ada satu busur keluar yaitu yang berlabel
input 1, menuju ke state q2, sedangkan yang berlabel input 0 tidak ada. Pada state q3 tidak
terdapat input berlabel 1, hanya input berlabel 0 yang menuju ke sate q 4. Secara formula
dapat dituliskan:
1. (q0 ,0) = {q0, q3}, baca: transisi state q0 mendapat input 0, menuju ke state q 0,
dan state q3.
2. (q0 ,1) = {q0, q1}, baca: transisi state q0 mendapat input 1, menuju ke state q 0,
dan state q1.
3. (q1 ,1) = {q2}, baca: transisi state q1 mendapat input 1, menuju ke state q2.
4. (q3 ,0) = {q4}, baca: transisi state q3 mendapat input 0, menuju ke state q4.
5. (q2 ,0) = (q2 ,1) ={q2}, baca: transisi state q2 mendapat input 0, maupun
mendapat input 1 menuju ke state q2.
6. (q4 ,0) = (q4 ,1) ={q4}, baca: transisi state q4 mendapat input 0, maupun
mendapat input 1 menuju ke state q4.
Suatu string diterima NFA bila terdapat suatu urutan transisi berdasar input, dari state awal ke
state akhir. Suatu transisi berdasarkan input yang tidak berakhir pada state akhir dapat
dikatakan bahwa input yang dimaksud tidak diterima oleh mesin NFA tersebut. Untuk
mengetahui apakah suatu string diterima atau tidak harus dilakukan percobaan untuk semua
kemungkinan.
q0 0 q0 1 q0 0 q0 0 q0 1 q0
0 1 0 0 1
q3 q1 q3 q3 q1
q4 1 q4
a a
q 4
a q 4
q 4
Gambar 3.2 FSA M1 Gambar 3.3 FSA M2
Salah satu cara untuk mereduksi/mengurangi jumlah state dari suatu mesin FSA adalah dengan
mencari kombinasi state yang distinguishable . Prosedur menentukan pasangan status
indistinguishable
1. Hapus semua state yang tak dapat dicapai dari state awal.
2. Catat semua pasangan state (p,q) yang distinguishable, yaitu {(p,q) | p F q F}
3. Untuk semua state lakukan pencarian state yang distinguishable dengan aturan apabila (p,a)
= pa dan (q,a) = qa, jika pasangan (pa,qa) sudah tercatat sebagai pasangan yang
distinguishable, maka pasangan (p,q) tersebut juga dimasukkan sebagai distinguishable.
4. Untuk setiap pasangan (p,q) yang tidak termasuk dalam distinguishable, maka pasangan
tersebut adalah pasangan state yang indistinguishable.
5. Beberapa state yang saling indistinguishable dapat digabungkan ke dalam satu state.
6. Sesuaikan transisi dari dan ke state-state gabungan tersebut.
Contoh: Lakukan pengurangan/reduksi state dari gambar 3.4 di bawah ini
q 1
0 1
0 0 0,1
q 0 q 2 1 q 4
0
1 1
q 3
5 5!
C 10
Catatan : jumlah pasangan seluruhnya :
2 2 ! 3!
0 0,1
q 0
0,1 q 123
1 q 4
3.7 Rangkuman
Non-Deterministic Finite Automata adalah mesin FSA yang next statenya bisa 0, 1, atau lebih
untuk symbol input yang sama. Reduksi jumlah state dapat dilakukan asal tidak merubah fungsi
mesin FSA, dimana FSA sebelum dan sesudah dilakukannya reduksi dapat menerima bahasa
yang sama. State-state yang distinguishable adalah state-state yang tidak dapat disatukan ketika
dilakukan reduksi, sedangkan state-state yang indistinguishable adalah state yang tidak dapat
dibedakan atau dapat disatukan ke dalam satu state untuk meringkas jumlah state.
3.8 Latihan
1. 1. Gambarkan diagram transisi dari NFA berikut:
Q = {q0 , q1 , q2 }, = {0,1}, S = q0, F = { q1}
Table fungsi transisi
0 1
q0 {q0, q1} q1
q1 q1
q2 q0 {q1, q2}
1 0
start q 0 01 q 1
0 01 1 1 0 10
q 2
1 q 3
1
3. Bila L(M) adalah bahasa yang diterima oleh mesin NFA pada soal no. 1, tentukan apakah
string berikut termasuk L(M):
a. 11001100
b. 00101010
c. 11111111111
d. 0000000000
e. 101010101010
f. 011101110110
4. Bila L(M) adalah bahasa yang diterima oleh mesin NFA pada soal no. 2, tentukan apakah
string berikut termasuk L(M):
a. 11001100
b. 00101010
c. 11111111111
d. 0000000000
e. 101010101010
f. 011101110110