Anda di halaman 1dari 8

3 NON-DETERMINISTIC FINITE

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.

3.2 Tujuan Khusus


Setelah mempelajari bab ini mahasiswa diharapkan mampu:
1. Menyebutkan defenisi Non-Deterministic Finite Automata (NFA)
2. Membedakan jenis Deterministic Finite automata dan Non-deterministic Finite state
automata
3. Menggambarkan model mesin NFA

3.3 Non-Deterministic Finite Automata (NFA)


Mesin model Non-Deterministic Finite Automata (NFA) sangat mirip dengan DFA,
hanya berbeda pada fungsi transisinya yaitu dapat memiliki 0, atau lebih fungsi transisi. Pada
gambar diagram transisi/state terlihat untuk input yang sama busur panah keluar dari suatu state
bisa saja tidak ada, bisa hanya satu, bisa ada dua atau lebih.
Contoh: {Q = ({q0 , q1 , q2 , q3, q4 }, = {0,1}, S= q0 , F = { q2 , q4}}, dengan tabel fungsi
transisi sebagai berikut.
0 1
q0 { q0,q3} {q0,q1}
q1 {} {q2}
q2 {q2} {q2}
q3 {q4} {}
q4 {q4} {q4}
0,1

q 3 0 q 4
0,1
0
q 0
0,1
1
q 1
1 q 2

Gambar 3.1 Mesin NFA

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.

Contoh : string 01001

q0 0 q0 1 q0 0 q0 0 q0 1 q0

0 1 0 0 1

q3 q1 q3 q3 q1

q4 1 q4

3.4 Ekivalensi Antar Deterministic Finite Automata


Misalkan terdapat dua buah FSA, M1 dan M2, yang masing-masing menerima bahasa
L(M1) untuk mesin M1 dan L(M2) untuk mesin M2, maka disebut ekuivalen apabila kedua FSA
tersebut menerima bahasa yang sama yaitu L(M1) = L(M2)
Contoh : FSA yang menerima bahasa {an | n0 }

a a

q 4
a q 4
q 4
Gambar 3.2 FSA M1 Gambar 3.3 FSA M2

3.5 Reduksi Jumlah State pada FSA


Untuk suatu bahasa regular, kemungkinan ada banyak mesin FSA yang dapat menerima
bahasa tersebut, perbedaannya hanyalah pada jumlah state yang dimiliki oleh FSA-FSA yang
saling ekivalen tersebut. Suatu FSA akan lebih praktis apabila memiliki jumlah state yang lebih
sedikit.
Dua buah state dari FSA disebut indistinguishable (tidak dapat dibedakan) apabila :

(q,w)F sedangkan (p,w) F dan

(q,w) F sedangkan (p,w) F untuk semua w *


Dua buah state dari FSA disebut distinguishable (dapat dibedakan) bila terdapat w *
sedemikian hingga:

(q,w)F sedangkan (p,w)F dan

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

Gambar 3.4 Mesin DFA dengan 5 buah state


1. Hapus state yang tidak tercapai dari state awal semua dapat dicapai
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
0 1 0 1
(q0,q1) q1 q3 q2 q4 distinguishable
(q0,q2) q1 q3 q1 q4 distinguishable
(q1,q2) q2 q4 q3 q4 indistinguishable
(q0,q3) q1 q3 q2 q4 distinguishable
(q1,q3) q2 q4 q2 q4 indistinguishable
(q2,q3) q1 q4 q2 q4 indistinguishable
Perhatikan pasangan state ketika mendapat input 1, untuk pasangan (q 1,q2), (q1,q3), (q2,q3)
menghasilkan state hanya q4, sehingga pasangan-pasangan ini disebut indistinguishable, dan
dalam penggambaran dapat disatukan.

5 5!
C 10
Catatan : jumlah pasangan seluruhnya :
2 2 ! 3!

3.6 Prosedur Reduksi DFA


Tentukan pasangan status indistinguishable.
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.
sesuaikan transisi dari dan ke state-state gabungan.
Contoh
pasangan status indistinguishable (q1,q2), (q1,q3) dan (q2,q3).
q1,q2,q3 ketiganya dapat digabung dalam satu state q123
Menyesuaikan transisi, sehingga DFA menjadi

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}

2. Gambarkan table fungsi transisi mesin NFA di bawah ini

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

5.a. Gambarkan diagram transisi dari DFA berikut:


Q = {q0 , q1 , q2 , q3 , q4 , q5}, = {0,1}, S = q0, F = { q3, q4}
Table fungsi transisi
0 1
q0 q1 q2
q1 q2 q3
q2 q2 q4
q3 q3 q3
q4 q4 q4
q5 q5 q4
b. Lakukan reduksi jumlah state dan gambarkan hasilnya.

Anda mungkin juga menyukai