AUTOMATA
4. Non-deterministic Finite Automata
1 9/9/2018
Finite Automata
Suatu model komputer dengan jumlah memory yang sangat
terbatas (Model komputasional yang paling sederhana)
Jenis :
– Deterministik Finite Automata
“Deterministik” setiap input alphabet/simbol dari
suatu state hanya akan bertransisi ke satu state lain.
Atau dengan kata lain deterministik tidak ambigu dalam
menentukan next state.
– Non-Deterministik Finite Automata
“Non-Deterministrik” setiap input alphabet/simbol dari
suatu state mungkin akan bertransisi ke lebih dari satu
state lain.
Contoh Non-Deterministik
Lihat bahwa dari q0, akan muncul kerancuan jika
menerima input 0 (akan ke q0 atau q1).
Non-Deterministik Finite Automata[1] - Sifat
NFA memiliki kemampuan untuk berada di satu state pada
saat yang bersamaan.
0 1
q0 {q0, q1} {q0}
q1 {} {q2}
q2 {} {}
Fungsi Transisi yang Diperluas
Fungsi tansisi yang ada di definisi formal dapat
diperluas menjadi bentuk yang menerima
beberapa input sekaligus. [Ullman]
Perluasan aturan transisi itu terangkum dalam :
1. ’ (q0, λ) = {q0}
2. ’ (q0, 0) = {q0, q1}
3. ’ (q0, 00) = ’ (q0, 0) ’ (q1, 0) = {q0, q1} {} =
{q0, q1}
4. ’ (q0, 001) = …
5. ’ (q0, 0010) = …
6. ’ (q0, 00101) = …
Bahasa dari NFA
Jika A = (Q, , ,q0,F) adalah NFA, maka L(A) =
{w | ’ (q0, w) F ≠ {} }
Sehingga L(A) adalah himpunan untaian string w
dari * sehingga ’ (q0, w) memuat sedikitnya
satu final / accepted state.
Ekuivalensi DFA dengan NFA [1]
Pada banyak bahasa, kita lebih mudah membangun ke
dalam NFA, bila dibandingkan DFA.
Ada Fakta mengejutkan, untuk setiap NFA selalu bisa di
deskripsikan oleh satu bentuk DFA.
Jumlah state yang dimiliki NFA kira-kira sama dg jumlah
state DFA.
Di kasus yang paling buruk, jumlah state DFA adalah 2n,
dari n state di NFA.
Ekuivalensi DFA dengan NFA [2]
Jika kita memiliki NFA N= (QN, , N,q0,FN), maka kita bisa
membangun L(D) = L(N), dengan DFA D= (QD, , D, {q0},
FD)
QD adalah powerset dari QN. Lihat jumlah state QD adalah 2n
jika kita memiliki n state di QN. (kadang tidak semua state
di pakai)
FD adalah himpunan himpunan bagian S dari QN, sehingga S
FN = {}. FDadalah seluruh himpunan state N yang
memasukkan setidaknya satu accepted state N.
Ekuivalensi DFA dengan NFA [3]
Dari definisi-definisi di atas, kita dapatkan aturan
transisi berikut ini :
0 1 0 1
{} {} {} A A A
{q0} {q0, q1} {q0} B E B
{q1} {} {q2} C A D
{q2} {} {} D A A
{q0, q1} {q0, q1} {q0, q2} E E F
{q0, q2} {q0, q1} {q0} F E B
{q1, q2} {} {q2} G A D
{q0, q1, q2} {q0, q1} {q0, q2} H E F
Ekuivalensi DFA dengan NFA [4]
Dari semua state yang didapat, hanya ada 3 state
saja yang bisa di capai yakni B, E, dan F.
Untuk menghindari pembuatan transisi yang tidak
pernah dicapai, dapat dilakukan dengan “Lazy
Evaluation”
Ekuivalensi DFA dengan NFA [5]
’ ({q0}, 0) = {q0, q1}, dan ’ ({q0}, 1) = {q0}
1 0
0 1
B E F
0
1
Latihan [1]
0 1 0
q0 q1 q2 q3
Latihan [2]
Ubah NFA berikut menjadi Deterministik Finite
Automata, dan gambar state diagram yang
dihasilkan.
r
0 1
0
0 1
p q t
0
0, 1
s
Latihan [3]
Bila kita memiliki mesin M1 dan M2 seperti di
bawah, maka tentukan hasil operasi :
– M1 ˚ M2
– M2 U M1
– M2*
0, 1 0, 1
a b c d
1 0
M1 M2
Latihan [4]
Yang menjadi pembeda antara deterministik dan
non deterministik adalah :
a. Ada/tidak transisi epsilon.
b. Fully Defined.
c. Ambigu / tidak dalam menentukan next state.
d. a, b, dan c benar.
e. b, dan c benar.
Latihan [5]
Jika kita memiliki mesin seperti gambar di bawah, maka
pada saat kita definisikan sebagai tupple (Q, , ,q0,F) akan
kita dapatkan:
a. Q : {q0, q1, q2}
b. : {0, 1}.
c. q0 sebagai initial state.
d. q2 sebagai final state.
e. semua jawaban benar.
THANK YOU
9/9/2018
21