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.
d
0
1
q0
{ q0,q3}
{q0,q1}
q1
{e}
{q2}
q2
{q2}
{q2}
q3
{q4}
{e}
q4
{q4}
{q4}
NFA
Non-Deterministic Finite Automata 


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 q4. Secara formula dapat dituliskan:

1.      d(q0 ,0) = {q0, q3}, baca: transisi state q0 mendapat input “0”, menuju ke state q0, dan state q3.
2.      d(q0 ,1) = {q0, q1}, baca: transisi state q0 mendapat input “1”, menuju ke state q0, dan state q1.
3.      d(q1 ,1) = {q2}, baca: transisi state q1 mendapat input “1”, menuju ke state q2.
4.      d(q3 ,0) = {q4}, baca: transisi state q3 mendapat input “0”, menuju ke state q4.
5.      d(q2 ,0) = d(q2, 1) ={q2}, baca: transisi state q2 mendapat input “0”, maupun mendapat input “1” menuju ke state q2.
6.      d(q4 ,0) = d(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
string
Contoh String


 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 | n³0 }

FSA
Gambar FSA



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 :

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

d(q,w) ÏF sedangkan d(p,w) ÏF untuk semua w Î S*

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

d(q,w)ÎF sedangkan d(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 d(p,a) = pa dan d(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

DFA
Mesin DFA 5 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 (q1,q2), (q1,q3), (q2,q3) menghasilkan state hanya q­4, sehingga pasangan-pasangan ini disebut indistinguishable, dan dalam penggambaran dapat disatukan.
Catatan : jumlah pasangan seluruhnya :



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


DFA
DFA

Share on Google Plus

About Unknown

    Blogger Comment
    Facebook Comment

0 komentar:

Post a Comment