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
Posting Komentar