Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2009 Versi: 1/0 Revisi.

Presentasi serupa


Presentasi berjudul: "1 Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2009 Versi: 1/0 Revisi."— Transcript presentasi:

1 1 Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2009 Versi: 1/0 Revisi

2 2 Konversi NFA - DFA Jika diketahui NFA N = (Q N, ,  N, q 0, F N ) Maka DFA A = (Q D, ,  D,{q D }, F D ) 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 : –Q D adalah himpunan subset dari Q N. Jika Q N memiliki n stata maka Q D memiliki 2 n stata –F D adalah Stata penerima pada D, yang merupakan subset dari stata pada N, yang memiliki sedikitnya 1 stata penerima pada N –Untuk setiap himpunan S  Q N dan untuk setiap simbol input a  , maka  D (S, a) = U p dlm s  N (P, a)

3 3 Konversi NFA - DFA Contoh : jika diketahui maka: NFA sbb : State01  q0{q0,q1}q2 q1q0q1 * q2q1{q0,q1} State01 { }--  q0 q1 * q2 {q0,q1} * {q0,q2} * {q1,q2} * {q0,q1,q2} {q0, q1}{q2} {q1}{q0} {q1}{q0, q1} {q1, q2} {q0,q1,q2} {q0, q1} {q0,q1,q2}

4 4 Konversi NFA – DFA (Cara 1) {q0} {q1} {q2} {q0,q1} {q1,q2} {q0,q2} { } , {q0,q1,q2} Start

5 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} , Start

6 6 Konversi NFA – DFA (Cara 2- penjabaran) 1.Stata Awal D = {q0} 2.  ({q0},0) = {q0,q1} 3.  ({q0},1) = {q2} 4.  ({q0,q1},0) = {q0,q1} 5.  ({q0,q1},1) = {q1,q2} 6.  ({q2},0) = {q1} 7.  ({q2},1) = {q0,q1} 8.  ({q1,q2},0) = {q0,q1} 9.  ({q1,q2},1) = {q0,q1} 10.  ({q1},0) = {q0} 11.  ({q1},1) = {q1} State01  q0{q0,q1}q2 q1q0q1 * q2q1{q0,q1}

7 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} , Start

8 8 Konversi NFA – DFA (Cara 2-tabel) State01  q0 State01  q0{q0,q1}q2 q1q0q1 * q2q1{q0,q1} {q2} {q0,q1}{q1,q2} {q1}{q0,q1} {q0}{q1} {q0,q1} *{q2} *{q1,q2} {q1}

9 9 Non Deterministic Finite Automaton dengan ε - move (ε - NFA) Finite Automata dengan  -move : Memungkinkan transisi atas input kosong (empty) . Definisi Formal NFA : M = (Q, (  U {  }), , q 0, F) Q, , q 0, 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 10 Non Deterministic Finite Automaton dengan ε - move (ε - NFA) Language Accepted : L yang diterima NFA dengan  -move : L(M) = {w  (q 0,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 q0q1q2q3q5 q4 Start ε, +, - ε 0,1,…,9..

11 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 12 Konversi ε – NFA - DFA Jika diketahui ε- NFA E = (Q E, ,  E, q 0, F E ) Maka DFA A = (Q D, ,  D,{q D }, F D ) dengan ketentuan sbb : –Q D adalah himpunan subset dari Q E. –q D = ECLOSE(q0) –F D adalah himpunan yang memiliki sedikitnya 1 stata penerima pada E –  D (S,a) untuk semua a dalam  dan himpunan S dalam Q D, maka : a. Diketahui S = {p1,p2,p3,…pk} b. Carilah U k i=1  E (Pi,a) simpan sebagai himpunan {r1,r2,r3,…rm) c. Maka  D (S,a) = U m j=1 ECLOSE(Rj)

13 13 Konversi ε – NFA - DFA Contoh eliminasi ε – NFA 1.Stata awal E = q0, stata awal D =ECLOSE(q0) Stata awal D = {q0,q1} 2.  ({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 14 Konversi ε – NFA - DFA 5.  ({q0,q1},0,1…,9) = {q1,q4}  ECLOSE(q1,q4) = {q1,q4}  ({q0,q1},0,1…,9) = {q1,q4} 6.  ({q1},.) = {q2}  ECLOSE(q2) = {q2}  ({q1},.) = {q2} 7.  ({q1},0,1,...,9) = {q1,q4}  ECLOSE(q1,q4) = {q1,q4}  ({q1},0,1,...,9) = {q1,q4}

15 15 Konversi ε – NFA - DFA 8.  ({q2},0,1,...,9) = {q3}  ECLOSE(q3) = {q3,q5}  ({q2},0,1,...,9) = {q3,q5} 9.  ({q1,q4},0,1,...,9) = {q1,q4}  ECLOSE(q1,q4) = {q1,q4}  ({q1,q4},0,1,...,9) = {q1,q4} 10.  ({q1,q4},.) = {q2,q3}  ECLOSE(q2,q3) = {q2,q3,q5}  ({q1,q4},.) = {q2,q3,q5}

16 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}  ECLOSE(q3) = {q3,q5}  ({q2,q3,q5},0,1,...,9) = {q3,q5}

17 17 Konversi ε – NFA - DFA {q0,q1}{q1}{q1,q4}{q2,q3,q5} {q2} Start +, -.. 0,1,…,9. {q3,q5} 0,1,…,9

18 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 a b a, b b ε ε

19 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 1.Eqclose (q0) = {q0, q1, q3} 2.  ({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 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 b b a a b a {q1,q3,q4} a b b


Download ppt "1 Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2009 Versi: 1/0 Revisi."

Presentasi serupa


Iklan oleh Google