Finite State Automata




FSA (Finite State Automata)


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 => Q : state AWAL
F => Q : himpunan state AKHIR
Contoh : FSA untuk mengecek parity ganjil

Q ={Gnp, Gjl} diagram transisi
∑ = {0,1}

Tabel transisi

δ            0         1
Gnp     Gnp     Gjl
Gjl       Gjl      Gnp

S = Gnp, F = {Gjl}

Ada dua jenis FSA :
Deterministic finite automata (DFA)
Non deterministik finite automata (NFA)

DFA : transisi state FSA akibat pembacaan sebuah simbol bersifat tertentu.

δ  : Q X ∑ => Q

NFA : transisi state FSA akibat pembacaan sebuah simbol bersifat tak tentu.

δ : Q X ∑ => 2Q


DFA :
Q = {q0, q1, q2}

δ diberikan dalam tabel berikut :

∑= {a, b}            δ         a         b
S = q0                q0        q0        q1
F = {q0, q1}      q1        q0        q2
                           q2        q2        q2


Kalimat yang diterima oleh DFA : a, b, aa, ab, ba, aba, bab, abab, baba

Kalimat yang ditolak oleh DFA  : bb, abb, abba

DFA ini menerima semua kalimat yang tersusun dari simbol a dan b yang tidak mengandung substring bb.

Contoh :

Telusurilah, apakah kalimat-kalimat berikut diterima DFA di atas :

abababaa   =>  diterima

aaaabab     => diterima

aaabbaba   =>  ditolak

Jawab :

δ (q0,abababaa) => δ (q0,bababaa) => δ (q1,ababaa) => δ (q0,babaa) => δ (q1,abaa) => δ (q0,baa) => δ (q1,aa) => δ (q0,a) => q0
Tracing berakhir di q0 (state AKHIR) Þ kalimat abababaa diterima
δ (q0, aaaabab) => δ (q0,aaabab) => δ (q0,aabab) => δ (q0,abab) => δ (q0,bab) => δ(q1,ab) => δ (q0,b) => q1
Tracing berakhir di q1 (state AKHIR) Þ kalimat aaaababa  diterima

Kesimpulan :

Sebuah kalimat diterima oleh DFA di atas jika tracingnya berakhir di salah satu state AKHIR.

NFA :

Berikut ini sebuah contoh NFA (Q, ∑, δ, S, F), dimana :

Q = {q, q, q,q, q}     δ diberikan dalam tabel berikut :

∑= {a, b,c}        δ               a                b               c
S = q                  q           {q, q}        {q, q}       {q, q}
F = {q}              q           {q, q}          {q}           {q}
                          q             {q}          {q, q}        {q}
                          q             {q}             {q}        {q, q}

Kalimat yang diterima NFA di atas : aa, bb, cc, aaa, abb, bcc, cbb
Kalimat yang tidak diterima NFA di atas : a, b, c, ab, ba, ac, bc
Sebuah kalimat di terima NFA jika :
Salah satu tracing-nya berakhir di state AKHIR, atau
Himpunan state setelah membaca string tersebut mengandung state AKHIR
Contoh :

Telusurilah, apakah kalimat-kalimat berikut diterima NFA di atas :

ab, abc, aabc, aabb

Jawab :

δ(q,ab) =>δ(q,b) => δ(q ,b) => {q, q} => {q} = {q, q, q}
Himpunan state TIDAK mengandung state AKHIR  kalimat ab tidak diterima

δ(q,abc) => δ(q,bc) => δ(q ,bc) => { δ(q,c) => δ(q,c)} => δ(q, c)
{{ q, q}=>{ q}}=>{ q} = {q, q, q,q}

Himpunan state TIDAK mengandung state AKHIR  kalimat abc tidak diterima


Komentar

Postingan populer dari blog ini

Hirarki Chomsky

Contoh Soal Teori Bahasa dan Otomata (Grammar dan Bahasa)