Upload
others
View
24
Download
0
Embed Size (px)
Citation preview
PERTEMUAN 6
TEORI BAHASA DAN OTOMATA
[TBO]
PENGGABUNGAN 2 FSA
Pada 2 mesin FSA dapat dilakukan penggabungan,disebut union serta konkatenasi.
Misalkan terdapat dua mesin NFA, M1 dan M2
Gambar 5: M1
Gambar 6: M2
OPERASI UNION Diketahui L(M1) adalah bahasa yang diterima oleh M1 dan
L(M2) adalah bahasa yang diterima oleh M2. Dilakukan operasi union berikut:
L(M3) = L(M1) L(M2)
atau dengan notasi lain:L(M3) = L(M1) + L(M2)
Bisa dibuat mesin M3 yang menerima bahasa L(M3)dengan cara:
Tambahkan state awal untuk M3, hubungkan dengan stateawal M1 dan state awal M2 menggunakan transisi
Tambahkan state akhir untuk M3, hubungkan dengan state-state akhir M1 dan state-state akhir M2 menggunakantransisi
HASIL UNION qs dan qf adalah state awal dan state final mesin baru
FSA
OPERASI KONKATENASI
Diketahui L(M1) adalah bahasa yang diterima olehM1 dan L(M2) adalah bahasa yang diterima oleh M2.
Dilakukan operasi konkatenasi berikut:
L(M4) = L(M1).L(M2)
Bisa dibuat mesin M4 yang menerima bahasaL(M4) dengan cara:
State awal M1 menjadi state awal M4
State-state akhir M2 menjadi state akhir M4
Hubungan state-state akhir M1 dengan state awalM2 menggunakan transisi
HASIL KONKATENASI qA0 dan qB1 adalah state awal dan state final mesin baru
FSA
ALUR PENGEMBANGAN FSA (1) FSA hasil operasi gabungan atau konkatenasi adalah sebuah
NFA -move. Untuk selanjutnya harus diubah menjadi NFAtanpa -move.
ALUR PENGEMBANGAN FSA (2)
NFA DENGAN -MOVE
Terdapat jenis otomata baru yang disebut NFA dengan-move ( disini bisa dianggap sebagai empty)
Pada NFA dengan -move (transisi ), diperbolehkanmerubah state tanpa membaca input
Disebut dengan transisi karena tidak bergantungpada suatu input ketika melakukan transisi
Mesin NFA dengan -move
Gambar 1
Penjelasan Gambar 1
Dari q0 tanpa membaca input dapat berpindah keq1
Dari q1 tanpa membaca input dapat berpindah keq2
Dari q4 tanpa membaca input dapat berpindah keq1
Salah satu kegunaan dari transisi ini adalahmemudahkan dalam mengkombinasikan finite stateautomata.
-Closure Untuk NFA -Move
-closure adalah himpunan state-state yang dapatdicapai dari suatu state tanpa membaca input.
Misal: -closure (q0) = himpunan-himpunanstate-state yang dapat dicapai dari state q0tanpa membaca input.
Maka dengan melihat gambar 1 -closure
(q0) = q0,q1,q2, artinya dari state q0 tanpamembaca input dapat mencapai state q0, q1, danq2.
Perhatikan Gambar 1
-closure untuk state seluruhnya bisa dilihat sebagaiberikut:
-closure (q0) = q0,q1,q2
-closure (q1) = q1,q2
-closure (q2) = q2
-closure (q3) = q3
-closure (q4) = q1,q2,q4
Mesin NFA dengan -move
Gambar 2
Perhatikan Gambar 2
Dari gambar 2 diketahui -closure untuk setiap stateadalah:
-closure (q0) = q0,q1,q3
-closure (q1) = q1,q3
-closure (q2) = q2,q4
-closure (q3) = q3
-closure (q4) = q4
Perhatikan: Pada suatu state yang tidak memilikitransisi , maka -closurenya adalah state itu sendiri.
Ekivalensi NFA -move ke NFA tanpa -move
Dari sebuah NFA dengan -move dapat diperolehNFA tanpa -move yang ekivalen. (Dalam materiini sebutan NFA saja mengacu pada NFA tanpa -move).
Contoh:
Bila terdapat NFA -move, seperti pada gambar 3.
Gambar 4 adalah NFA tanpa -move yang ekivalendengan NFA -move pada gambar 3.
Perhatikan Gambar 3 dan 4Gambar 3
Gambar 4
Penjelasan..
Perhatikan bahwa NFA -move semula menerimabahasa yang membuat string ’b’, selanjutnya bisadilihat bahwa NFA tanpa -move pada gambar 4 jugamampu menerima bahasa yang memuat string ‘b’.
Maka dapat dinyatakan bahwa kedua mesin tersebutekivalen, karena mampu menerima bahasa yangsama.
Tentu saja bila gambarnya tidak sesederhana itu,perlu dilakukan beberapa tahapan untukmendapatkan perubahan dari NFA -move ke NFAtanpa -move.
Tahapan Perubahan
1. Buat table transisi Non-deterministic Finite Automatadengan -move semula
2. Tentukan -closure untuk setiap state
3. Carilah setiap fungsi transisi hasil perubahan dariNFA -move ke NFA tanpa -move (sebut sajasebagai ’), dimana ’ didapatkan dengan rumus:
’(state, input)
=
-closure ((-closure(state), input))
Tahapan Perubahan Lanjt..
4. Berdasarkan hasil no.(3), buatlah table transisi dandiagram transisi dari NFA tanpa -move yang ekivalendengan NFA -move tersebut.
5. Menentukan state-state akhir untuk NFA tanpa -move tersebut, yaitu state-state akhir semuladitambah dengan state-state yang -closure –nyamenuju ke salah satu dari state akhir semula. Dalambahasa formalnya:
F’ = F q(-closure (q) F)
Misal: bila semula F= q0, q3, _closure q1, =q0, q2, maka F’=q0, q1, q3.
Tahapan 1
Tabel transisi dari NFA -move pada gambar 3
δ a b
q0
q1 {q2} {q3}
q2
q3
Tahapan 2
Dari NFA -move pada gambar 3 tentukan -closureuntuk setiap state (-closure bisa juga disingkatsebagai -cl):
-cl (q0) = q0,q1
-cl (q1) = q1
-cl (q2) = q2
-cl (q3) = q3
Tahapan 3 [1]
Cari ’ dengan memanfaatkan table transisi dan -closure yang diperoleh sebelumnya, sebagai berikut:’(q0,a), ’(q0,b), ’(q1,a), ’(q1,b), ’(q2,a), ’(q2,b),’(q3,a), dan ’(q3,b)
Perhatikan penjabaran pada slide selanjutnya !
Tahapan 3 [2]
’(q0,a) = -closure ((-closure(q0),a))= -closure ((q0,q1,a))= -closure ((q0,a) + (q1,a))= -closure ( + q2)= -closure (q2)= q2
’(q0,b) = -closure ((-closure(q0),b))= -closure ((q0,q1,b))= -closure ((q0,b) + (q1,b))= -closure ( + q3)= -closure (q3)= q3
Tahapan 3 [3]
’(q1,a) = -closure ((-closure(q1),a))
= -closure ((q1,a))
= -closure (q2)
= q2
’(q1,b) = -closure ((-closure(q1),b))
= -closure ((q1,b))
= -closure (q3)
= q3
Tahapan 3 [4]
’(q2,a) = -closure ((-closure(q2),a))
= -closure ((q2,a))
= -closure ()
=
’(q2,b) = -closure ((-closure(q2),b))
= -closure ((q2,b))
= -closure ()
=
Tahapan 3 [5]
’(q3,a) = -closure ((-closure(q3),a))
= -closure ((q3,a))
= -closure ()
=
’(q3,b) = -closure ((-closure(q3),b))
= -closure ((q3,b))
= -closure ()
=
Tahapan 4
Bisa dilihat table transisi dan diagram untuk NFA tanpa
-move dari hasil tahapan sebelumnya :
δ a b
q0 {q2} {q3}
q1 {q2} {q3}
q2
q3
Tahapan 5
Akhirnya ditentukan himpunan state akhir untuk NFAtanpa -move ini. Himpunan state akhir semulaadalah q3. Karena tidak ada state lain yang -closure-nya memuat q3, maka himpunan state akhirsekarang tetap q3.
Perhatikan: karena disini mesin NFA maka state
tidak perlu dimunculkan dalam diagram transisi.