Teori-Bahasa-dan-Otomata Lecture #6 Non Deterministik FINITE STATE AUTOMATA
Non Deterministic Finite Automata Non Deterministic finite automata (NFA) M = (Q, ∑, δ, S, F), dimana : Q : himpunan state/kedudukan ∑ : himpunan simbol input ∂ : fungsi transisi, dimana ∂ Q x (∑ ⋃ ) P(Q) P(Q) : set of all subsets of Q S : State awal (initial state) F : himpunan state akhir (Final State) Language L(M) : (x| ∂(S,x) di dalam F)
Non Deterministic Finite Automata ∑= {a, b,c} δ a b c S = q0 q 0 {q0 , q 1} {q0 , q2 } {q0 , q3 } F = {q4 } q 1 {q1 , q4 } {q1 } {q 1} q 2 {q2 } {q 2, q4 } {q 2} q3 {q3 } {q 3, q4 } q 4 q1 q4 a,b,c a c b q0 q3 q2
apakah kalimat-kalimat berikut diterima NFA di atas : ab, abc, aabc, aabb Jawab: δ(q0 ,ab) δ(q0,b) δ(q1 ,b) {q0, q2} {q1 } = {q0 , q1 , q2} Himpunan state TIDAK mengandung state AKHIR kalimat ab tidak diterima δ(q0 ,abc) δ(q0 ,bc) δ(q1 ,bc) { δ(q0 ,c) δ(q2 ,c)}δ(q1 , c) {{ q0 , q3 }{ q2 }}{ q1 } = {q0 , q1 , q2 ,q3 } Himpunan state TIDAK mengandung state AKHIR kalimat abc tidak diterima
Non Deterministic Finite Automata dengan ε-move NFA dengan ε-move (transisi ε), diperbolehkan merubah state tanpa membaca input. Disebut dengan ε-move karena tidak bergantung pada suatu input ketika melakukan transisi. ε-closure (q0)=himpunan state-state yang dapat dicapai dari state q0 tanpa membaca input. Pada suatu state yang tidak memiliki ε-move, maka ε-closure nya adalah state itu sendiri. ε-closure adalah himpunan state-state yang dapat dicapai dari suatu state tanpa membaca input.
ε-closure untuk state lainnya : ε-closure(q1) = {q1,q2 } b ε ε-closure(q0) = {q0, q1, q2 }, artinya dari state q0 tanpa membaca input dapat mencapai state q0, q1 dan q2. ε-closure untuk state lainnya : ε-closure(q1) = {q1,q2 } ε-closure(q2) = {q2 } ε-closure(q3) = {q3 } ε-closure(q4) = {q4 } Tanpa membaca input : q0 dapat berpindah ke q1 q1 dapat berpindah ke q2 q4 dapat berpindah ke q1
Merubah NFA (ε-move) ke NFA Buat tabel transisi NFA ε-move Cari ε-closure setiap state NFA. Cari setiap fungsi transisi rumus : ’(state,input)=-closure((-closure(state,input)) Buat tabel transisi NFA baru Tentukan state akhir. Jika State2x pada closure satu state merup final state maka state yg baru menjadi finel state. F’ = F {q | (-closure(q) F }
Ekivalensi NFA dengan ε-move ke NFA tanpa ε-move Ekivalen = mampu menerima bahasa yang sama. q2 a q2 q0 ε a a q1 q0 q1 b b b q3 q3
a b q0 q1 q2 q3 transisi-nya : -closure dari FSA tersebut -closure(q0) = [q0,q1] -closure(q1) = [q1] -closure(q2) = [q2] -closure(q3) = [q3]
Cari tabel transisi yang baru (’) : q0 -cl((-cl(q0),a)) -cl(({q0,q1},a)) -cl(q2) {q2} -cl((-cl(q0),b)) -cl(({q0,q1},b)) -cl(q3) {q3} q1 -cl((-cl(q1),a)) -cl(({q1},a)) -cl((-cl(q1),b)) -cl(({q1},b))
’ a b q2 -cl((-cl(q2),a)) -cl(({q3},a)) -cl() -cl((-cl(q2),b)) -cl(({q2},b)) q3 -cl((-cl(q3),a)) -cl((-cl(q3),b)) -cl(({q3},b))