Anda di halaman 1dari 15

Finite Automata (FA)

Suatu Finite Automata (FA) atau kadang disebut


Finite State Automaton (FSA) adalah mesin abstrak
yang dapat mengenali bahasa regular.

FA didefinisikan (Q,,s,F,) dimana:

•Q merupakan himpunan berhingga dari state (status)


• adalah himpunan alfabet dari simbol input.
• s  Q merupakan sebuah state yang berlaku
sebagai state awal (start state).
• F  Q yang merupakan state akhir (final state)
•  adalah fungsi transisi yang memetakan
Q x  ke Q , ditulis (Q,) = Q
Contoh 5: Diketahui sebuah FA M = (Q,,s,F,) dimana Q = {q0, q1, q2},  = {a,b}, s = q0, F = {q-
0} dan  :
a b
q0 q1 q2
q1 q2 q0
q2 q2 q2
FA tersebut dapat dinyatakan dalam bentuk digraf sebagai berikut:
Dalam definisi suatu FA terdapat sejumlah status
akhir. Apabila sebuah string masukan membawa status
FA mulai dari status awal ke salah satu status akhir
maka string tersebut diterima atau dikenali oleh FA
tersebut. Dan sebuah bahasa L dikatakan diterima oleh
sebuah FA jika semua string elemen bahasa L diterima
oleh FA tersebut.
STRING DITOLAK
• Bila di cek mulai dari awal state tidak
berakhir di State Akhir
• Bila symbol pada String tidak ada di fungsi
transisi State yang bersangkutan
FSA ( Finite State Automata )
 DFA (Deterministik Finite Automata)
 NFA (Non Deterministik Finite Automata)

CIRI DFA
 Semua symbol didalam ∑ digunakan untuk setiap STATE
sebanyak satu
 Tidak menggunakan symbol Lamda

CIRI NFA
 Boleh menggunakan symbol Lamda
 Symbol didalam ∑ boleh digunakan sebagian atau tidak
didalam suatu STATE
 Menggunakan symbol yang sama lebih dari satu
FINITE AUTOMATA DAN BAHASA REGULAR
Dalam definisi suatu FA terdapat sejumlah status akhir. Apabila sebuah string masukan
membawa status FA mulai dari status awal ke salah satu status akhir maka string tersebut
diterima atau dikenali oleh FA tersebut. Dan sebuah bahasa L dikatakan diterima oleh sebuah
FA jika semua string elemen bahasa L diterima oleh FA tersebut.

Contoh 6 : Perhatikan FA pada contoh 5, string ab diterima oleh FA tersebut karena jika kita
mulai dari status awal q0 membaca input a, kita akan menuju status q1. Kem udian dari q1
membaca b, menuju status q0. Disini pembacaan inpu selesai, dan berhenti di status akhir (final
state). Sehingga ab diterima oleh FA tersebut.

Contoh 7 : String aab tidak diterima oleh FA pada contoh 5. Mengapa? String apa saja yang
diterima oleh FA tesebut? Bahasa apa yang diterima oleh FA tersebut?

NONDETERMINISTIC FINITE AUTOMATA


FA pada contoh 5 merupaka Deterministic Finite Automata, dimana banyaknya transisi dari satu
status ke status lainnya satu dan hanya satu. Nondeterministic Finite Automata adalah FA yang
banyaknya fungsi transisi () dari satu state ke state lainnya nol, satu atau lebih dari satu state.

Contoh 8 : Berikut ini adalah NFA M = (Q,,s,F,) dimana Q = {q0, q1, q2}, ={a,b}, s=q0, F =
{q0} dan  :

a b
Q0 {q1} {}
Q1 {} {q0,q2}
Q2 {q0} {}
Atau dalam bentuk digraf :

b
q0 q1

b b

q2
Ekivalensi NFA dan DFA
Jika terdapat sebuah NFA M = (Q,,s,F,) yang menerima bahasa L, maka ada DFA
M’=(Q’,’, s’,F’,’) yang juga menerima bahasa L , dimana :
(1) ’ = 
(2) s’ = s
(3) Jika Q = {q0, q1, …, qn} maka mula-mula Q’ = { [q0],[q1],…,[qn]}
(4) Jika (qi,a) = {qj, qk, …} dan a  , maka ’([qi],a) = [qj, qk, …] dan [qj, qk, …] menjadi
state baru dan digabungkan ke Q’
(5) Setiap state baru dalam Q’ yang diperoleh, dicari transisi untuk setiap input dalam ’.
Dimana ’([qj, qk, …],a) = (qj,a)  (qk,a)  …
F’ terdiri dari semua state di Q’ yang mengandung state di F
Carilah sebuah DFA M’=( Q’,’,s’,F’,’) yang ekivalen dengan NFA M=(Q,,s,F,) pada
contoh

b
q0 q1

a b

q2

(1) (q0,a) = {q1}  ’(q0,a) = [q1]


(q0,b) = {}  ’(q0,b) = [ ] (state baru)
(1) ’ =  = {a,b}
(2) s’ = s = [q0] (q1,a) = {}  ’(q1,a) = [ ]
(3) Qmula-mula = {[q0],[q1],[q2]}(q1,b) = {q0,q2}  ’(q1,b) = [q0, q2] (state ba
(q2,a) = {q0}  ’(q2,a) = [q0]
(q2,b) = {}  ’(q2,b) = [ ]
maka Q’ = {[q0],[q1],[q2], [],[q0, q2]}
(1) ’( [] , a) = []
’( [] , b) = []
’( [q0, q2], a ) = (q0,a)  (q2,a) = {q1}  {q0} = {q0,q1}  [q0,q1]
’( [q0, q2], b ) = (q0,b)  (q2,b) = {}  {} = {}  []
’( [q0, q1], a ) = (q0,a)  (q1,a) = {q1}  {} = {q1}  [q1]
’( [q0, q1], b ) = (q0,b)  (q1,b) = {}  {q0,q2} = {q0,q2}

Tidak ada state baru.


(2) F’ = {[q0], [q0,q2],{qo,q1}}
Maka kita mendapatkan sebuah DFA M’ = (Q’,’,s’,F’,’) dengan Q’ = {[q0], [q1], [q2],
[], [q0,q1], [q0,q2]}, ’ = {a,b}, s’ = [q0], F’ = {[q0], [q0,q2], [qo,q1]}, dan ’ :

a b
[q0] [q1] []
[q1] [] [q0,q2]
[q2] [q0] []
[] [] []
[q0,q2] [q0,q1] []
[q0,q1] [q1] [q0,q2]
FINITE AUTOMATA DENGAN TRANSISI HAMPA (-TRANSITION)
Adalah NFA yang mempunyai transisi yang tidak bergantung dari suatu input tertentu.
Atau dengan kata lain, dapat berpindah dari satu state ke state lain tanpa membaca
input apapun.
Contoh :

q0
 q1
-CLOSER
Untuk sebuah state q  Q dari NFA M=(Q,,s,F,) dengan transisi-, didefinisikan
penutup- (-closer) dari q dimana :
-cl(q) = {p | p  Q dan p dapat dicapai dari q tanpa input apapun}
sedangkan
n
-cl({qi1 , qi2, qi3, …, qik}) =   cl (q
k 1
ik )
dimana a  ., qi  Q. dan
d(q,a) = {p | p Q dimana ada transisi dari q ke p dengan input a}
n
d ({qi1 , qi 2 ,..., qik }, a)  d (qik , a)
k 1
Setiap state punya tran sisi- ke state itu sendiri, meskipun tidak digambarkan
ELIMINASI TRANSISI-
Jika NFA M=(Q,,s,F,) dengan transisi-, maka terdapat NFA lain M’=(Q’,’,s’,F’,’) tanpa
transisi- yang mendefinisikan bahasa yang sama dimana :

’(q,a) = -cl (d (-cl (q), a))


dan
F’ = F  { q | (-cl(q)  F)   }

Contoh 10 : Hilangkan transisi- dari NFA berikut :


b a

q0
 q1
Dari gambar diatas kita dapat menentukan bahwa  = {a,b}, F = {q1} dan
d(q0,a) = {} -cl(q0) = {q0, q1}
d(q0,b) = {q0} -cl(q1) = {q1}
d(q1,a) = {q1}
d(q1,b) = {}
Maka :
(1) ’(q0,a)
 -cl(q0) = {q0, q1}
 d({q0, q1},a) = d(q0,a)  d(q1,a) = {}  {q1} = {q1}
 -cl(q1) = {q1}
 maka ’(q0,a) = {q1}
(2) ’(q0,b)
 -cl(q0) = {q0, q1}
 d({q0, q1},b) = d(q0,b)  d(q1,b) = {q0}  {} = {q0}
 -cl(q0) = {q0, q1}
 maka ’(q0,b) = {q0, q1}
Dari gambar diatas kita dapat menentukan bahwa  = {a,b}, F = {q1} dan
d(q0,a) = {} -cl(q0) = {q0, q1}
d(q0,b) = {q0} -cl(q1) = {q1}
d(q1,a) = {q1}
d(q1,b) = {}
Maka :
(1) ’(q0,a)
 -cl(q0) = {q0, q1}
 d({q0, q1},a) = d(q0,a)  d(q1,a) = {}  {q1} = {q1}
 -cl(q1) = {q1}
 maka ’(q0,a) = {q1}
(2) ’(q0,b)
 -cl(q0) = {q0, q1}
 d({q0, q1},b) = d(q0,b)  d(q1,b) = {q0}  {} = {q0}
 -cl(q0) = {q0, q1}
 maka ’(q0,b) = {q0, q1}
Click icon to add picture
(1) ’(q1,a)
 -cl(q1) = {q1}
 d(q1,a) = {q1}
 -cl(q1) = {q1}
 maka ’(q1,a) = {q1}
(2) ’(q1,b)
 -cl(q1) = {q1}
 d(q1,b) = {}
 -cl({}) = {}
 maka ’(q1,a) = {}
(3) F’ = {q1}  {q0, q1} = {q0, q1}
Jadi NFA tanpa transisi- adalah :
b a

a, b
q0
q0 q1

Anda mungkin juga menyukai