MODUL V TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami NFA dengan e-move, dapat malakukan ekivalensi ke NFA tanpa e-move dan operasi gaungan/konkatenasi. Materi : NFA dengan e-move Ekivalensi NFA dengan e-move dan NFA tanpa e-move Gaungan dan Konkatenasi
NON-DETERMINISTIC FINITE AUTOMATA DENGAN -MOVE Non-deterministic Finite Automata dengan -move ( NFA -move ) Disini kita mempunyai jenis otomata aru yang diseut Non-deterministic Finite Automata dengan -move( disini isa dianggap seagai empty). Pada Nondeterministic Finite Automata dengan -move (transisi ), diperolehkan meruah state tanpa memaca input. Diseut dengan transisi karena tidak ergantung pada suatu inout ketika melakukan transisi. Contohnya isa dilihat pada gamar1 q 1 q 2 a q 3 q 4 Gamar 1. Mesin NFA dengan -move Penjelasan gamar 1 dari tanpa memaca input dapat erpindah ke q 1 dari q 1 tanpa memaca input dapat erpindah ke q 2 dari q4 tanpa memaca input dapat erpindah ke q 1 Salah satu kegunaan dari transisi ini memudahkan kita untuk mengkominasikan finite state automata. -closure untuk NFA -move. Sekarang kita akan menamah suatu pengertian aru yang diseut -closure. -closure adalah himpunan state-state yang dapat dicapai dari suatu state tanpa memaca input. Misalkan saja -closure( ) = himpunan-himpunan state-state yang
dapat dicapai dari state tanpa memaca input. Maka dengan melihat gamar - closure ( )=,q 1,q 2, artinya dari state tanpa memaca input dapat mencapai state, q 1, dan q 2. -closure untuk state lainnya isa dilihat seagai erikut: -closure (q 1 ) = q 1,q 2 -closure (q 2 ) = q 2 -closure (q 3 ) = q 3 -closure (q 4 ) = q 1,q 2,q 4 Contoh lain kita lihat pada gamar 2. a q 1 q 2 q 3 q 4 Gamar 2 Mesin NFA dengan -move Dari gamar 2 kita ketahui -closure untuk setiap state adalah: -closure ( ) =,q 1,q 3 -closure (q 1 ) = q 1,q 3 -closure (q 2 ) =q 2,q 4 -closure (q 3 ) = q 3 -closure (q 4 ) = q 4 * Perhatikan : pada suatu state yang tidak memiliki transisi, maka -closurenya adalah state itu sendiri.
Ekivalensi NFA -move ke NFA tanpa -move Dari seuah Non-deterministic Finite Automata dengan -move dapat kita peroleh Non- deterministic Finite Automata tanpa -move yang ekivalen. (Dalam uku ini seutan NFA saja mengacu pada NFA tanpa -move). Contohnya ila kita punya NFA, seperti pada gamar 3. a q 1 q 2 q 3 Gamar 3. NFA -move Gamar 4 adalah NFA tanpa -move yang ekivalen dengan NFA -move pada Gr. 3 a a q 1 q 2 q 3 Gamar 4. NFA -move
Perhatikan ahwa Non-deterministic Finite Automata -move semula menerima ahasa yang memuat string, selanjutnya kita lihat ahwa Non-deterministic Finite Automata tanpa -move pada gamar juga mampu menerima ahasa yang memuat string. Maka kita dapat menyatakan ahwa kedua mesin terseut ekivalen, karena mampu menerima ahasa yang sama. Tentu saja ila gamarnya tidak sesederhana itu, kita perlu melakukan eerapa tahapan untuk mendapatkan peruahan dari Non-deterministic Finite Automata - move ke Non- deterministic Finite Automata tanpa -move. Caranya secara umum adalah seagai erikut: 1. Buat tale transisi Non-deterministic Finite Automata dengan -move semula 2. Tentukan -closure untuk setiap state 3. Carilah setiap fungsi transisi hasil peruahan dari Non-deterministic Finite Automata -move ke Non-deterministic Finite Automata tanpa -move (kita seut saja seagai ) dimana didapatkan dengan rumus: (state, input) = _closure ((_closure(state, input)) 4. Berdasarkan hasil no (3), kita isa memuat tale transisi dan diagram transisi dari Non-deterministic Finite Automata tanpa -move yang ekivalen dengan Nondeterministic Finite Automata -move terseut. 5. Jangan lupa menentukan state-state akhir untuk Non-deterministic Finite Automata tanpa -move terseut, yaitu state-state akhir semula ditamah dengan state-state yang _closure nya menuju ke salah satu dari state akhir semula. Dalam ahasa formalnya: F = F q(-closure (q) F) Misal: ila semula F=, q 3, _closure q 1, =, q 2, maka F =, q 1, q 3. Tael transisi dari NFA - move pada gamar 3. a q 1 q 2 q 3 q 2 q 3
Dari Non-deterministic Finite Automata -move pada gamar kita isa tentukan - closure untuk setiap state (-closure isa juga kita singkat seagai -cl): _cl ( ) =,q 1 _cl (q 1 ) = q 1 _cl (q 2 ) = q 2 _cl (q 3 ) = q 3 Kemudian kita cari dengan memanfaatkan tale transisi dan -closure yang kita peroleh seelumnya, seagai erikut: (,a) = _closure ((_closure( ),a)) = _closure ((,q 1,a)) = _closure (q 2 ) = q 2 (,) = _closure ((_closure( ),)) = _closure ((,q 1,)) = _closure (q 3 ) = q 3 (q 1,a) = _closure ((_closure(q 1 ),a)) = _closure ((q 1,a)) = _closure (q 3 ) = q 3 (q 1,) = _closure ((_closure(q 1 ),)) = _closure ((q 1,)) = _closure (q 3 ) = q 3 (q 2,a) = _closure ((_closure(q 2 ),a)) = _closure ((q2,a)) = _closure () =
(q 2,) = _closure ((_closure(q 2 ),)) = _closure ((q 2,)) = _closure () = (q 3,a) = _closure ((_closure(q 3 ),a)) = _closure ((q 3,a)) = _closure () = (q 3,) = _closure ((_closure(q 3 ),)) = _closure ((q 3,)) = _closure () = Bisa kita lihat tale transisi untuk NFA tanpa -move dari hasil diatas: a q 2 q 3 q 1 q 2 q 3 q 2 q 3 Akhirnya kita tentukan himpunan state akhir untuk Non-deterministic Finite Automata tanpa -move ini. Himpunan state akhir semula adalah q 3. Karena tidak ada state lain yang -closure-nya memuat q 3, maka himpunan state akhir sekarang tetap q 3. Sekarang anda dapat menggamarkan Non-deterministic Finite Automata tanpa -move. Periksalah gamarnya dengan gamar *Perhatikan karena disini mesin Non-deterministic Finite Automata maka state tidak perlu kita munculkan dalam diagram transisi. Kita coa dengan contoh alin, perhatikan gamar 5.
a q 1 q 2 Gamar 5. NFA -move Lihat tale transisi untuk NFA -move pada gamar a B q 1 q 2 q 2 q 2 Kita tentukan -cl untuk setiap state dari gamar: _cl ( ) =,q 1 _cl (q 1 ) = q 1 _cl (q2) = q0,q1,q2 Selanjutnya kita tentukan seagai erikut: (q0,a) = _closure ((_closure(q0),a)) = _closure ((q0,q1,a)) = _closure (q0) = q0,q1 (q0,) = _closure ((_closure(q0),)) = _closure ((q0,q1,)) = _closure (q2) = q0,q1,q2
(q1,a) (q1,) (q2,a) (q2,) = _closure ((_closure(q1),a)) = _closure ((q1,a)) = _closure () = = _closure ((_closure(q1),)) = _closure ((q1,)) = _closure (q2) = q0,q1,q2 = _closure ((_closure(q2),a)) = _closure ((q0,q1,q2,a)) = _closure (q0) = q0,q1 = _closure ((_closure(q2),)) = _closure ((q0,q1,q2,)) = _closure (q2) = q0,q1,q2 Berdasarkan hasil diatas dapat kita uat tale transisi untuk NFA tanpa -move : a q0 q0,q1 q0,q1,q2 q1 q0,q1,q2 q2 q0,q1 q0,q1,q2 Akhirnya kita tentukan himpunan 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 memuat diagram transisi untuk Non-deterministic Finite Automata tanpa -move, yang dapat dilihat pada gamar 6:
a a q 1 a a q 2 Gamar 6. NFA tanpa -move yang ekivalen dengan Gamar 5. Contoh lain, perhatikan Non-deterministic Finite Automata -move pada gamar7. Non-deterministic Finite Automata tanpa -move yang ekivalen dengan gamar 7 isa kita lihat pada gamar 8 0 q 1 Gamar 7. NFA -move 0 0 q 1
Gamar 8. NFA tanpa-move Misalkan diketahui ahwa Non-deterministic Finite Automata -move semula (gamar7) menerima ahasa dengan ekspresi regular = 0*, maka dapat kita lihat ahwa Non-deterministic Finite Automata tanpa -move ekivalennya juga menerima ahasa yang sama. Perhatikan ahwa dalam menentukan state-state akhir kita juga memperhitungkan transisi-transisi seelum state akhir semula.