Anda di halaman 1dari 20

NON-DETERMINISTIC FINITE

AUTOMATA DENGAN ε-MOVE

Bab- 4
Sub Pokok Bahasan
 Non-determinictic Finite Automata dengan ε-
move
 ε-closure untuk suatu Non-determinictic Finite
Automata dengan ε-move
 Ekivalensi Non-deterministic Finite Automata
dengan ε-move Ke Non-deterministic Finite
Automata tanpa ε-move
 Penggabungan dan Konkatenasi Finite State
Automata
Non-deterministic Finite Automata
dengan ε-move
 Pada Non-deterministic Finite Automata dengan
ε-move(ε disini bisa dianggap sebagai
‘empty’).Pada Non-deterministic Finite Automata
dengan ε-move(transisi ε),diperbolehkan
merubah state tanpa membaca input disebut
dengan transisi ε karena tidak bergantung pada
suatu input ketika melakukan transisi
Contohnya bisa dilihat pada gambar 4.1

q0 є q1 є q2

a b є

q3 b q4

Gambar 4.1 Mesin NFA dengan ε-move

Penjelasan Gambar 4.1:


Dari q0 tanpa memaca input dapat berpindah ke q1
Dari q1 tanpa membaca input dapat berpindah ke q2
Dari q4 tanpa membaca input dapat berpindah ke q1

Salah satu kegunaan dari transisi ini memudahkan kita untuk


mengkombinasikan finite state automata
ε- closure untuk Non-deterministic
Finite Automata dengan ε-move

ε-closure adalah himpunan state-state yang dapat dicapai dari suatu state
tanpa membaca input. Misalkan ε -closure(q0) adalah himpunan state yang
dapat dicapai dari state q0 tanpa membaca input. Maka dengan melihatgambar
4.1 ε-closure(q0)={q0, q1, q2},artinya dar state q0 tanpa membaca input dapat
mencapai state q0,q1 dan q2. ε-closure untuk state lainya bisa dilihat sebagai
berikut:
ε-closure(q1) = {q1,q2}
ε-closure(q1) = {q2}
ε-closure(q3) = {q3}
ε-closure(q4) = {q1,q2,q4}
Contoh lain kita lihat ada gambar 4.2

q0 є q1 a q2

є є
b

q4
q3

Gambar 4.2 Mesin NFA dengan ε-move

Dari gambar 4.2 kita ketahui ε-closure untuk setiap state adalah:
ε-closure(q0)={q0,q1,q3}
ε-closure(q1)={q1,q3}
ε-closure(q2)={q2,q4}

ε-closure(q3)={q3}
ε-closure(q4)={q4}

*Perhatikan:pada suatu state yg tidak memiliki transisi ε,maka ε-closure-nya


adalah state itu sendiri
Ekivalensi Non-deterministic Finite Automata dengan ε-
move ke Non-deterministic Finite Automata tanpa ε- move

 Dari sebuah Non-determinictic Finite Automata dengan ε-move dapat kit


peroleh Non-determinictic Finite Automata tanpa ε-move yang ekivalen.(dari
sumber buku sebutan NFA saja mengacu kepada NFA tanpa ε-
move).Contohnya bila kita punya NFA ε-move,seperti pada gambar 4.3

 Gambar 4.3 NFA ε-move


Gambar 4.4 adalah NFA tanpa ε-move yang ekivalen dengan NFA ε-move pada
gambar 4.3

q0 є q1 a q2

є
b

q4
b

Gambar 4.4 NFA tanpa ε-move ekivalen gambar 4.3

Perhatikan bahwa Non-deterministic Finite Automata ε–move semula menerima


bahasa yang memuat string ‘b’,selanjutnya kita liat bahwa Non-deterministic
Finite Automata tanpa ε-move pada gambar 4.4 juga mampu menerima bahasa
yang memuat string ‘b’.maka kita dapat menyatakan bahwa kedua mesin tsb
ekivalen,karena mampu menerima bahsa yang sama
Apabila gambarnya tidak sesederhana itu,kita erlu melakukan beberapa tahapan
untuk mendapatkan perubahan dari Non-determinictic Finite Automata ε-move ke
Non-determinictic Finite Automata tanpa ε-move.caranya secara umum adalah
sebagai berikut:
1. Buat label transisi Non-determinictic Finite Automata ε-move semula
2. Tentukan tahapan ε-closure untuk setiap state
3. Carilah setiap fungsi transisi hasil perubahan dari Non-determinictic Finite
Automata ε-move ke Non-determinictic Finite Automata tanpa ε-move(kita sebut
saja sebagai δ) dimana δ’didapatkan dengan rumus:
δ(state,input)= ε-closure (δ(ε-closure(state),input))
4. Berdasarkan hasil no.3,kta bisa membuat label transisi dan diagram dari ke Non-
determinictic Finite Automata tanpa ε-move yang ekivalen dengan ke Non-
determinictic Finite Automata ε-move tsb.
5. Jangan lupa menentukan state-state akhir untuk ke Non-determinictic Finite
Automata tanpa ε-move tsb,yaitu state-state yang ε-closure-nya menuju kesalah
satu dari state akhir semula. Dalam bahasa formalnya:

F’=F ∪ {q | (ε-closure(q) F)
Misal: bila semula F ={q0,q1}, ε-closure (q1}={q0,q2},
maka F’={q0,q1,q3}. δ a b
Tabel Transisi dari NFA ε-move pada gambar 4.3 q0 Ø Ø
Dari Non-determinictic Finite Automata ε-move pd gambar 4.3
kia bisa tentukan ε-closure untuk setiap state q1 q2 q3
(ε-closure bisa kita juga singkat sebagai ε-cl) q2 Ø Ø
ε-closure(q0) = {q0, q1}
ε-closure(q1) = {q1} q3 Ø Ø
ε-closure(q2) = {q2}
ε-closure(q3) = {q3}

kemudian kita cari δ’dengan memanfaatkan tabel transisi dan ε-closure yg kita
peroleh sebelumnya,sebagai berikut:
δ `(q0, a) = ε -closure(δ(ε -closure(q0), a))
= ε -closure(δ({q0, q1}, a))
= ε -closure(q2)
= {q2}
δ `(q0, b) = ε -closure(δ(ε -closure(q0), b))
= ε -closure(δ({q0, q1}, b))
= ε -closure(q3)
= {q3}
δ `(q1, a) = ε -closure(d(ε -closure(q1), a))
= ε -closure(d({q1}, a))
= ε -closure(q2)
= {q2}

δ `(q1, b) = ε -closure(d ε -closure(q1), b))


= ε -closure(d({q1}, b))
= ε -closure(q3)
= {q3}

δ `(q2, a) = e-closure(d(ε -closure(q2), a))


= ε -closure(d({q2}, a))
= ε -closure(Ø)

δ `(q2, b) = e-closure(d(ε -closure(q2), b))


= ε -closure(d({q2}, b))
= ε -closure(Ø)

δ`(q3, a) = ε -closure(d(ε -closure(q3), a))
= ε -closure(d({q3}, a))
= ε -closure(Ø)

δ`(q3, b) = ε -closure(d(ε -closure(q3), b))
= ε -closure(d({q3}, b))
= ε -closure(Ø)

Bisa kita lihat tabel transisi untuk NFA tanpa ε –move dari hasil diatas:
δ a b
q0 q2 q3

q1 q2 q3
q2 Ø Ø

q3 Ø Ø

akhirnya kita temukan tentukan himpunan state akhir untuk Non-deterministic


Finite Automata tanpa ε–move ini. Hmpunan state akhir semula adalah {q3}.
Karena tidak ada state lain yang ε –closure-nya memuat q3,maka himpunan state
akhir sekarang tetap {q3}.
Contoh lain gambar 4.5
a

q0 є q1 Gambar 4.5 NFA ε-move

b
є

q2
b

δ a b
lihat tabel transisi untuk NFA ε-move pada gambar 4.5

q0 {q0} Ø

q1 Ø {q2}
Kita tentukan ε_cl untuk seiap state dari gambar 4.5 q2 Ø {q2}
ε_cl(q0) = {q0,q1}
ε_cl(q1) = {q1}
ε_cl(q2) = {q0,q1,q2}
Selanjutnya kita tentukan δ’ sebagai berikut:
δ`(q0, a) = ε -closure(δ(ε -closure(q0), a))
= ε -closure(δ({q0, q1}, a))
= ε -closure(q0)
= {q0,q1}
δ`(q0, b) = ε -closure(δ(ε -closure(q0), b))
= ε -closure(δ({q0, q1}, b))
= ε -closure(q2)
= {q0,q1,q2}
δ`(q1, a) = ε -closure(d(ε -closure(q1), a))
= ε -closure(d({q1}, a))
= ε -closure(Ø)
= {Ø}
δ`(q1, b) = ε -closure(d ε -closure(q1), b))
= ε -closure(d({q1}, b))
= ε -closure(q2)
= {q0,q1,q2}
δ`(q2, a) = e-closure(d(ε -closure(q2), a))
= ε -closure(d({q0,q1,q2}, a))
= ε -closure(q0)
= {q0,q1}
δ `(q2, b) = e-closure(d(ε -closure(q2), b))
= ε -closure(d({q0,q1q2}, b))
= ε -closure(q2)
= {q0,q1,q2}

Berdasarkan hasil di atas dapat kita buat tabel transisi untuk NFA tanpa ε-move:

δ a b
q0 {q0,q1} {q0,q1,q2}
q1 Ø {q0,q1,q2}
q2 {q0,q1} {q0,q1q2}

akhirnya kita entukan state akhir untuk Non-deterministic Finite Automata tanpa
ε-move ini. Himpunan state akhir semula adalah {q0}. Kita lihat ε_cl(q2) =
{q0,q1,q2}.sehingga himpunan state akhir sekarang {q0,q2}
Sekarang kita dapat membuat diagram transisi untuk Non-deterministic Finite
Automata tanpa ε-move,yang dapat dilihat pada gambar 4.6

Gambar 4.6 Non-deterministic Finite Automata tanpa ε-move yang ekivalen


dengan gambar 4.5
Contoh lain,Perhatikan Non-deterministic Finite Automata ε-move pada gambar
4.7. Non-deterministic Finite Automata ε-move yang ekivalen dengan gambar 4.7
bisa kita lihat pada gambar 4.8

q0 є q1

Gambar 4.7 NFA ε-move


0

q0 0 q1

Gambar 4.7 NFA ε-move

Misalkan diketahui bahwa Non-deterministic Finite Automata ε-move semula


(gambar 4.7)menerima bahasa dengan eksoresi regular =0*,maka dapat kita
lihat bahwa Non-deterministic Finite Automata tanpa ε-move ekivaeln nya juga
menerima bahasa yg sama. Perhatikan bahwa dalam state –state akhir ,kita juga
memperhitngkan transisi-transisi ε sebelum state akhir semula
Penggabungan dan Konkatenasi
Finite State Automata
 Pada dua mesin Finite State Automata kita dapa melakukan penggabunga
disebut union,serta konkatenasi. Misalkan kita mempunyai dua buah mesin
NFA,M1 pada gambar 4.9 dan M2 ada gambar 4.10.
0

qA0 1 qA1

 Gambar 4.9 Mesin M1


1

qB0 1 qB1

 Gambar 4.10 Mesin M2


Bila diketahui L(M1) adalah bahasa yang diterima oleh M1 dan L(M2) adalah
bahasa yang diterima oleh M2 maka
Bila diketahui L1 adalah bahasa yang diterima oleh M1 dan L2 adalah bahasa
yang diterima oleh M2. Dilakukan operasi union berikut : L(M3) = L(M1) ∪ L(M2)
(atau notasi lain :L(M3)=L(M1)+L(M2)). Kita bisa membuat mesin M3 yang
menerima bahasa L(M3) dengan cara:
☻Tambahkan state awal untuk M3, hubungkan dengan state awal M1 dan
state awal M2 menggunakan transisi ε
☻Tambahkan state akhir untuk M3, hubungkan dengan state-state akhir M1
dan state-state akhir M2 menggunakan transisi ε
Kita lihat hasil operasi union ini pada gambar 4.11.
qs dan qr adalah state awal dan state final msin baru kita.
0

qA0 1 qA1
є є

qS q1
1
є є
qB0 1 qB1
Gambar 4.11 Mesin M3

0
Ditentukan L(M4) =L(M1) L(M2). Kita bisa membuat mesin M4 yang
menerima bahasa L(M4) dengan cara:

☻ State awal M1 menjadi state awal M4


☻ State-state akhir M2 menjadi state akhir m4
☻ Hubungkan state-state akhir M1 dengan state awal M2
menggunakan transisi ε

Kita lihat operasi konkatenasi ini pada gambar 4.12

0 1

qS 1 qA1 є qBO 1 q1

Gambar 4.12 Mesin M4