Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehIpank Satya Telah diubah "10 tahun yang lalu
1
Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA
Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009 Versi : 1/0 Revisi Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA
2
Konversi NFA - DFA Jika diketahui NFA N = (QN, , N, q0, FN)
Maka DFA A = (QD, , D,{qD}, FD) Simbol input untuk kedua FA sama dan stata awal D merupakan himpunan yang terdiri dari stata awal N saja. Komponen D yang lain dapat dibangun dengan ketentuan sbb : QD adalah himpunan subset dari QN. Jika QN memiliki n stata maka QD memiliki 2n stata FD adalah Stata penerima pada D, yang merupakan subset dari stata pada N, yang memiliki sedikitnya 1 stata penerima pada N Untuk setiap himpunan S QN dan untuk setiap simbol input a , maka D (S, a) = U p dlm s N (P, a)
3
Konversi NFA - DFA Contoh : jika diketahui maka : NFA sbb : State 1 { } - q0 q1 * q2 {q0,q1} * {q0,q2} * {q1,q2} * {q0,q1,q2} State 1 q0 {q0,q1} q2 q1 q0 * q2 {q0, q1} {q2} {q0} {q1} {q1} {q0, q1} {q0, q1} {q1, q2} {q0, q1} {q0,q1,q2} {q0, q1} {q0, q1} {q0, q1} {q0,q1,q2}
4
Konversi NFA – DFA (Cara 1)
{q0} {q1} {q2} {q0,q1} {q1,q2} {q0,q2} { } 0,1 1 {q0,q1,q2} Start
5
Konversi NFA – DFA (Cara 1)
Karena stata { }, {q0,q2}, {q0,q1,q2} tidak dapat dicapai dari stata awal, maka stata tersebut dapat dihilangkan, sehingga : {q0} {q1} {q2} {q0,q1} {q1,q2} 0,1 1 Start
6
Konversi NFA – DFA (Cara 2-penjabaran)
Stata Awal D = {q0} ({q0},0) = {q0,q1} ({q0},1) = {q2} ({q0,q1},0) = {q0,q1} ({q0,q1},1) = {q1,q2} ({q2},0) = {q1} ({q2},1) = {q0,q1} ({q1,q2},0) = {q0,q1} ({q1,q2},1) = {q0,q1} ({q1},0) = {q0} ({q1},1) = {q1} State 1 q0 {q0,q1} q2 q1 q0 * q2
7
Konversi NFA – DFA (Cara 2)
Langsung didapat gambar Sbb: Cara ke-2 dapat dilakukan jika stata pada NFA lebih dari 3, dengan maksud agar tidak perlu membuat subset terlalu banyak {q0} {q1} {q2} {q0,q1} {q1,q2} 0,1 1 Start
8
Konversi NFA – DFA (Cara 2-tabel)
State 1 q0 {q0,q1} q2 q1 q0 * q2 State 1 q0 {q0,q1} {q2} {q0,q1} {q0,q1} {q1,q2} *{q2} {q1} {q0,q1} *{q1,q2} {q0,q1} {q0,q1} {q1} {q0} {q1}
9
Non Deterministic Finite Automaton dengan ε - move (ε - NFA)
Finite Automata dengan -move : Memungkinkan transisi atas input kosong (empty) . Definisi Formal NFA : M = (Q, ( U {}), , q0, F) Q, , q0, F : seperti pada FA Fungsi Transisi : : Q ( {}) Q (q,a) : a mungkin atau a Basis : State q berada dalam ECLOSE(q) Induksi : Jika state p ada dalam ECLOSE(q), dan terdapat transisi dari state p ke state r berlabel maka r juga termasuk dalam ECLOSE(q)
10
Non Deterministic Finite Automaton dengan ε - move (ε - NFA)
Language Accepted : L yang diterima NFA dengan -move : L(M) = {w(q0,w) dalam F} Contoh : Diketahui ε-NFA yang menerima nilai desimal, yang terdiri dari tanda (+/-), digit, titik decimal dan digit. Salah satu dari digit boleh empty q0 q1 q2 q3 q5 q4 Start ε, +, - ε 0,1,…,9 .
11
Non Deterministic Finite Automaton dengan ε - move (ε - NFA)
Telusurilah string 5.6 (q0, 5.6) = ECLOSE(q0) = {q0,q1} (q0, 5) = (q0,5) U (q1,5) = {q1,q4} = ECLOSE(q1) U ECLOSE(q4) = {q1,q4} (q0, 5.) = (q1, .) U (q4, .) = {q2,q3} = ECLOSE(q2) U ECLOSE(q3) ={q2,q3,q5} (q0, 5.6) = (q2,6) U (q3,6) U (q5,6) = {q3} = ECLOSE(q3) = {q3,q5} Accepted
12
Konversi ε – NFA - DFA Jika diketahui ε- NFA E = (QE, , E, q0, FE)
Maka DFA A = (QD, , D,{qD}, FD) dengan ketentuan sbb : QD adalah himpunan subset dari QE. qD = ECLOSE(q0) FD adalah himpunan yang memiliki sedikitnya 1 stata penerima pada E D(S,a) untuk semua a dalam dan himpunan S dalam QD, maka : a. Diketahui S = {p1,p2,p3,…pk} b. Carilah Uki=1 E(Pi,a) simpan sebagai himpunan {r1,r2,r3,…rm) c. Maka D(S,a) = Umj=1 ECLOSE(Rj)
13
Konversi ε – NFA - DFA Contoh eliminasi ε – NFA Stata awal E = q0, stata awal D =ECLOSE(q0) Stata awal D = {q0,q1} ({q0,q1},+) = {q1} ECLOSE(q1) = {q1} ({q0,q1},+) = {q1} 3. ({q0,q1},-) = {q1} ECLOSE(q1) = {q1} ({q0,q1},-) = {q1} 4. ({q0,q1},.) = {q2} ECLOSE(q2) = {q2} ({q0,q1},.) = {q2}
14
Konversi ε – NFA - DFA ({q0,q1},0,1…,9) = {q1,q4} ECLOSE(q1,q4) = {q1,q4} 6. ({q1},.) = {q2} ECLOSE(q2) = {q2} ({q1},.) = {q2} ({q1},0,1,...,9) = {q1,q4}
15
Konversi ε – NFA - DFA 8. ({q2},0,1,...,9) = {q3} ECLOSE(q3) = {q3,q5} ({q2},0,1,...,9) = {q3,q5} ({q1,q4},0,1,...,9) = {q1,q4} ECLOSE(q1,q4) = {q1,q4} 10. ({q1,q4},.) = {q2,q3} ECLOSE(q2,q3) = {q2,q3,q5} ({q1,q4},.) = {q2,q3,q5}
16
Konversi ε – NFA - DFA 11. ({q3,q5},0,1,…,9) = {q3} ECLOSE(q3) = {q3,q5} ({q3,q5},0,1,…,9) = {q3,q5} 12. ({q2,q3,q5},0,1,...,9) = {q3} ({q2,q3,q5},0,1,...,9) = {q3,q5}
17
Konversi ε – NFA - DFA . {q0,q1} {q1} {q1,q4} {q2,q3,q5} {q2} Start
+, - . 0,1,…,9 {q3,q5} Konversi ε – NFA - DFA
18
Konversi ε – NFA - DFA Contoh :
Diketahui RE : (ab)* a + (a+b)* b, gambarkan ε – NFA, telusuri string abba dan konversikan ke DFA Jawab : a q1 q2 q4 q3 q0 b a, b ε
19
Konversi ε – NFA - DFA Penelusuran string :
({q0}, abba) Eclose (q0) = {q0,q1,q3} ({q0,q1,q3}, a) = {q2,q3,q4} Eclose (q2,q3,q4) = {q2,q3,q4} ({q2,q3,q4},ab) = {q1,q3,q4} Eclose(q1, q3,q4) = {q1,q3,q4} ({q1,q3,q4},abb) = {q3,q4} Eclose(q3,q4) = {q3,q4} ({q3,q4},abba) = {q3} Eclose(q3) = {q3} rejected krn tidak ada q4 Konversi ke DFA Eqclose (q0) = {q0, q1, q3} ({q0, q1, q3}, a) = {q2,q3,q4} Eqclose(q2, q3,q4) = {q2,q3,q4} ({q0, q1, q3}, a) = {q2,q3,q4} 3. ({q0, q1, q3}, b) = {q3,q4} Eqclose(q3, q4) = {q3,q4} ({q0, q1, q3}, b) = {q3,q4} 4. ({q2, q3, q4}, a) = {q3} Eqclose(q3) = {q3} ({q2, q3, q4}, a) = {q3} 5. ({q2, q3, q4}, b) = {q1,q3,q4} Eqclose(q1, q3,q4) = {q1,q3,q4} ({q2, q3, q4}, b) = {q1,q3,q4} 6. ({q3, q4}, a) = {q3} Eqclose(q3) = {q3} ({q3, q4}, a) = {q3}
20
Konversi ε – NFA - DFA 7. ({q3, q4}, b) = {q3,q4} Eqclose(q3,q4) = {q3,q4} ({q3, q4}, b) = {q3,q4} 8. ({q3}, a) = {q3} Eqclose(q3) = {q3} ({q3}, a) = {q3} 9. ({q3}, b) = {q3,q4} Eqclose(q3,q4) = {q3,q4} ({q3}, b) = {q3,q4} 10. ({q1, q3, q4}, a) = {q2,q3,q4} Eqclose(q2,q3,q4) = {q2,q3,q4} ({q1, q3, q4}, a) = {q2,q3,q4} 11. ({q1, q3, q4}, b) = {q3,q4} Eqclose(q3,q4) = {q3,q4} ({q1, q3, q4}, b) = {q3,q4} a {q2,q3,q4} q3 {q3,q4} {q0,q1,q3} b {q1,q3,q4}
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.