Teori Bahasa dan Automata Non Deterministic Finite Automata dengan -move Penggabungan dan Konkatenasi FSA
Non DFA dengan - move (transisi ) Dapat merubah state satu ke state lain tanpa membaca input Tidak bergantung pada suatu input ketika melakukan transisi q0 q1 q4 q3 q2 b a dari q0 tanpa membaca input dapat berpindah ke q1 dari q1 tanpa membaca input dapat berpindah ke q2 dari q4 tanpa membaca input dapat berpindah ke q1
-closure untuk NFA -move himpunan-himpunan state-state yang dapat dicapai dari sebuah state tanpa membaca input. Dari diagram NFA dengan -move maka dihasilkan: -closure (q0)= q0,q1,q2 -closure (q1) = q1,q2 -closure (q2) = q2 -closure (q3) = q3 -closure (q4) = q1,q2,q4 q0 q1 q4 q3 q2 b a * State yg tidak memiliki transisi , maka -closurenya adalah state itu sendiri
Ekivalensi NFA -move ke NFA tanpa -move q1 q2 q0 b a q3 q1 q2 q0 q3 b a NFA dengan -move NFA tanpa -move Gambar diatas menunjukkan bahwa keduanya mampu menerima bahasa yang sama (ekivalen) NFA dengan -move awal menerima bahasa yang memuat string ’b’, dan NFA tanpa -move pada gambar diatas juga mampu menerima bahasa yang memuat string ‘b’.
NFA -move ke NFA tanpa -move Buat tabel transisi NFA dengan -move awal Tentukan -closure untuk setiap state Carilah setiap fungsi transisi hasil perubahan dari NFA dengan - move ke NFA tanpa -move (kita sebut saja sebagai ’) dimana ’ didapatkan dengan rumus: ’(state, input) = _closure ((_closure(state, input)) Berdasarkan hasil diatas, kita bisa membuat tabel transisi dan diagram transisi dari NFA tanpa -move yang ekivalen dengan NFA dengan -move tersebut. Jangan lupa menentukan state-state akhir untuk Non- deterministic Finite Automata tanpa -move tersebut, yaitu state-state akhir semula ditambah dengan state-state yang _closure –nya menuju ke salah satu dari state akhir semula. Dalam bahasa formalnya: F’ = F q(-closure (q) F)
NFA -move ke NFA tanpa -move Contoh: Buatlah NFA tanpa -move yang ekivalen dengan NFA -move dibawah ! q0 q1 a b q2
NFA -move ke NFA tanpa -move 1. Buat Tabel Transisi a B q0 q0 q1 q2 q2 2. Tentukan -closure untuk setiap state: _ closure (q0) = q0,q1 _ closure (q1) = q1 _ closure (q2) = q0,q1,q2
NFA -move ke NFA tanpa -move 3. Tentukan ’: ’(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 ((_closure(q1),a)) = _closure ((q1,a)) = _closure () = ’(q1,b) = _closure ((_closure(q1),b)) = _closure ((q1,b)) = _closure (q2) = q0,q1,q2 ’(q2,a) = _closure ((_closure(q2),a)) = _closure ((q0,q1,q2,a)) = _closure (q0) = q0,q1 ’(q2,b) = _closure ((_closure(q2),b)) = _closure ((q0,q1,q2,b)) = _closure (q2) = q0,q1,q2
NFA -move ke NFA tanpa -move 4. Buat Tabel Transisi untuk NFA tanpa -move a b q0 q0,q1 q0,q1,q2 q1 q2 5. Tentukan State Akhir - Himpunan state akhir semula adalah q0 - Cari _closure yang memuat state q0 _closure (q2) = q0,q1,q2 F = {q0,q2}
NFA -move ke NFA tanpa -move Hasil akhir diagram NFA tanpa e-move q0 b q1 ab q2
Penggabungan dan Konkatenasi FSA Pada dua mesin Finite State Automata kita dapat melakukan penggabungan antar kedua mesin tersebut yaitu dengan union dan konkatensi. Union L(M’) = L(M1) + L(M2) Konkatenasi L(M’’) = L(M1) L(M2)
Penggabungan dan Konkatenasi FSA Contoh: qA1 qA0 1 Mesin M1 qB1 qB0 1 Mesin M2 Tentukan : L(M’) = L(M1) + L(M2) dan L(M’’) = L(M1) L(M2)
Penggabungan dan Konkatenasi FSA q1 qA0 1 qS qB0 qB1 qA1 L(M’) = L(M1) + L(M2) qf qS qB0 qA1 1 L(M’’) = L(M1) L(M2)
Contoh Soal : Buatlah sebuah DFA yang menerima bahasa dengan penjelasan sebagai berikut: Bahasa yang memuat semua string yang berakhiran dengan “00”. Diketahui ∑ = (0,1). Bahasa yang memuat semua string yang memiliki minimal dua nol berurutan “00”. Diketahui ∑ = (0,1). * Buat ER NFA DFA