03 - Modul #3 - Finite State Automata
03 - Modul #3 - Finite State Automata
INF-55201-209
MODUL #3
FINITE STATE AUTOMATA
Definisi Finite State Automata
Bukanlah mesin fisik tetapi suatu
model matematika dari suatu sistem
yang menerima input dan output
diskrit.
Definisi Finite State Automata
• Finite State Automata memiliki state yang
banyaknya berhingga dan dapat berpindah-
pindah dari suatu state ke state lain.
• Jenis automata ini tidak memiliki tempat
penyimpanan sehingga kemampuan
‘mengingatnya’ terbatas
• Finite Automata sangat cocok untuk memodelkan sistem
dengan jumlah state yang berhingga.
• Contoh :
– Sistem elevator
– Mesin untuk pengeluaran minuman kaleng ( Vending
Machine)
– Pengaturan lampu lalu lintas ( traffic light regulator)
– Sirkuit Switching di Komputer
– Neuron Nets
Implementasi FSA
• Seorang petani dengan seekor serigala, kambing dan seikat rumput
beradapadasuatusisi sungai.
• Tersedia hanya sebuah perahu kecil yang hanya dapat dimuati dengan petani
tersebut dengan salah satu serigala, kambing atau rumput.
• Petani tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai.
• Tetapi jika petani meninggalkan serigala dan kambing pada suatu
saat,makakambingakan dimakanserigala.
• Begitu pula jika kambing ditinggalkan dengan rumput, maka rumput
akandimakanoleh kambing.
• Mungkinkah ditemukan suatu cara untuk melintasi sungai tanpa menyebabkan
kambing atau rumput dimakan?
Mesin Automata untuk memeriksa
Pariti Ganjil
• Membuat sebuah Automata yang akan
memeriksa apakah suatu barisan input
memiliki bit 1 dalam jumlah ganjil atau genap
• Mesin ini akan mempunyai dua state,
– State EVEN ( Genap)
– State ODD ( Ganjil)
0 0
ᶴ(even,0)=even
1 ᶴ(even,1)=odd
even ODD
ᶴ(odd,0)=odd
ᶴ(odd,1)=even
1 ᶴ 0 1
EVEN EVEN ODD
• Lingkaran menyatakan state/kedudukan.
ODD ODD EVEN
• Label pada lingkaran adalah nama state tersebut.
• Busur menyatakan transmisi yaitu perpindahan kedudukan/state.
• Label pada busur adalah simbol input.
• Lingkaran didahului sebuah busur tanpa label menyatakan state awal.
• Lingkaran ganda menyatakan state akhir/final.
Mesin Automata untuk Memeriksa ParitiTUPEL:
Ganjil ᶴ 0 1 Q={EVEN,ODD}
S=EVEN
EVEN EVEN ODD
• State awal adalah EVEN F={ODD}
ODD ODD EVEN ∑={0,1}
• Himpunan state akhir yang menyatakan input diterima adalah {ODD}.
• Simbol input yang ada {0,1}.
101110000011001
Urutan state yang terjadi
EVEN 1 ODD 0 ODD 1 EVEN
Berakhir dengan state EVEN
maka “101” ditolak oleh mesin.
101110000011001 DITERIMA
Secara formal Finite State Automata dinyatakan oleh 5 tupel atau
M=(Q,∑,δ,S,F), dimana:
Contoh 1 DFA:
a a
b b
q0 b q1 q2
a
δ a b
TUPEL (M):
Latihan : Cek Input untai ‘abb’ dan ‘baba’ ?
Q = {q0, q1, q2} q0 q0 q1
∑ = {a, b}
q0_a_q0_b_q1_b_q2 = DITERIMA
S = q0 q1 q1 q2
F = {q2} q0_b_q1_a_q1_q2_a_q1 = DITOLAK
q2 q1 q2
DETERMINISTIC FINITE AUTOMATA
Konfigurasi secara formal dinyatakan : Fungsi transisi yang ada sebagai berikut :
Q = {q0,q1,q2} d(q0,a)=q0
∑ = {a,b} d(q0,b)=q1
S = q0 d(q1,a)=q1
F = {q2} d(q1,b)=q2
d(q2,a)=q1
d(q2,b)=q2
Tabel transisi tersebut menunjukan state-state berikutnya untuk
kombinasi state-state dan input. Tabel transisi sbb:
δ a b
q0 q0 q1
q1 q1 q2
q2 q1 q2
b a
a q0 q0
q1
b TUPEL (M):
Q = {q0, q1, q1}
∑ = {a, b}
S = q0
a F = {q1}
q2
b δ a b
q0 {q1,q2} q0
q1 q1 q0
a q2 q2 q1
Tabel transisi contoh 2 :
δ a b
q0 {q1,q2} q0
q1 q1 q0
q2 q2 q1
Contoh 3 Non-DFA:
a,b
q0 q0
q1
a,b
Tabel transisinya:
δ a b
q0 {q0,q1} {q1}
q1 {q1} {q1}
Contoh 4 Non-DFA: NFA
b
q0 a
q0
q1
a
Tabel transisinya:
δ a b
q0 {q1} {q0}
q1 {q0} Ø
Ekuivalensi Antar Deterministic Finite
Automata
• Dua Deterministic Finite Automata dikatakan
ekuivalen jika L(M1) = L(M2).
Dimana :
– M = deterministic Finite Automata
– L(M) = bahasa Jadi, misal untai/string ‘abb’ diterima oleh M1, maka
M1 akan ekivalen dengan M2 jika M2 juga menerima
Untai/string ‘abb’
Contoh 1: Ekuivalensi L(M1) = L(M2)
a
q0 q0
q1 a
a Untai/string?
M1 ‘a’,’aa’,’aaa’,
‘aaaaaaa’
a
q0 q0
q1 a M1=q0_a_q0_a_q1
M2=q0_a_q1_a_q1
M2
Contoh 2 : Ekuivalensi L(M3) = L (M4)
0
q0 q0
q1
0
DFA M3
0 q0
q1
DFA M4