430 likes | 1.42k Views
Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009 Versi : 1/0 Revisi. Pertemuan 2 FINITE AUTOMATA (DFA & NFA) . FINITE AUTOMATA. Sistem Finite State : • Finite Automaton (DFA) • Non-Deterministic Finite Automaton • Push Down Automata • Turing Machine
E N D
Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009 Versi : 1/0 Revisi Pertemuan 2FINITE AUTOMATA (DFA & NFA)
FINITE AUTOMATA Sistem Finite State : • Finite Automaton (DFA) • Non-Deterministic Finite Automaton • Push Down Automata • Turing Machine • Linear Bounded Automata ε- NFA NFA RE DFA
FINITE AUTOMATA Contoh Finite State System : System Elevator Switching circuit Program text editor Contoh : Manusia (m), serigala (w), kambing (g), sayur (c) menyeberang sungai : Keadaan awal : MWGC --- Keadaan akhir : --- MWGC
FINITE AUTOMATA g m Start MWGC- WC-MG MWC-G c W-MGC g MGW-C w g m -MWGC MG-WC G-MWC Final State
DETERMINISTIC FINITE AUTOMATA • Dinotasikan dengan DFA A= { Q, , , q0, F} Dimana : Q : Himpunan Hingga Stata : Himpunan Hingga simbol input : Fungsi transisi Q x Q q0 : Stata awal (q0 Q ) F : Himpunan Hingga Stata Penerima (F Q ) • Contoh : Diketahui DFA • Dimana • Lebih jelas bila direpresentasikan dalam tabel :
DETERMINISTIC FINITE AUTOMATA State 0 1 q0* q2 q1 q1 q3 q0 q2 q0 q3 q3 q1 q2 Contoh : DFA menerima string dimana jumlah ‘0’, dan jumlah ‘1’-nya genap L = {(11+ 00 + 0101 + 1010 + 0110 + 1001)*} State : { q0, q1, q2, q3 } Start state : q0 Final state : { q0 } Simbol input : {0, 1} Fungsi Transisi Dlm Tabel
DETERMINISTIC FINITE AUTOMATA Buatlah DFA yang menerima language L = {w | w merupakan string yang merupakan urutan 0 berjumlah genap yang diikuti 1 berjumlah genap} atau L = { (00)* (11)* } 0, 1 0 1 C 0 0 0 0 1 1 A B 1 1
DETERMINISTIC FINITE AUTOMATA (q, a) : dalam state ‘q’, membaca input ‘a’ Fungsi Transisi untuk String : Q * Q (q,) = q {tanpa membaca simbol input tidak bisa berganti state} Untuk semua string w dan input a, (q, wa) = ( (q,w),a) =p = (q,w) = (p,a) dan selalu sejalan : (q,a) = ( (q,),a) = (q,a)
DETERMINISTIC FINITE AUTOMATA (q,w) : adalah state dimana FA akan berada setelah membaca string w, dengan start state q; (q,w) = p, ada path berlabel w dari state q ke p. STRING YANG DITERIMA : String x diterima bila (q0,x) = p, p dalam F. LANGUAGE YANG DITERIMA : Language yang diterima oleh FA M adalah {x | (q0,x) dalam F} REGULAR LANGUAGE / SET : Language yang diterima oleh suatu FA.
DETERMINISTIC FINITE AUTOMATA 1 0 0, 1 1 1 0 q q q q 0 1 2 3 0 State 0 1 q0 q0 q1 q1 q0 q2 q2 q3 q2 *q3 q3 q3 Contoh : Q = {q0,q1,q2,q3} = {0,1} F = {q3} : digambarkan tabel berikut String Yang Diterima : 110 01101 00110111 String yang terbentuk dari 0 dan 1 dan mengandung 110 L = {(0+1)*110 (0+1)*} Start
<<Latihan>> Buatlah DFA yang menerima language dari alphabet {0,1} dengan ketentuan : 1. L ={(0+1)* 000 (0+1)*} 2. L =[(0+1)* 1001} 3. L = {(01 (0+1)*) + ((0+1)* 01)} 4. L = {(11)* (00)*} 5. L = {(0+1)* 1 (00+10+01+11)} 6. L = {(01+00)*} 7. L = {101 (0+1)*}
1 0,1 Start 0 0 0 q0 q1 q2 q3 1 1 0 1 1 0 Start 1 0 0 1 q0 q1 q2 q3 q4 1 0 1. L ={(0+1)* 000 (0+1)*} 2. L =[(0+1)* 1001}
0,1 1 q1 q2 0 0 Start q0 0 1 0 q4 1 q5 q3 0 1 1 3. L = {(01 (0+1)*) + ((0+1)* 01)}
0,1 0 q1 q2 1 1 1 1 Start 0 q0 0 q3 q4 0 4. L = {(11)* (00)*}
ε 1 0 1 0 0 1 0 1 10 11 00 01 0 0 1 0 1 1 1 0 1 0 1 000 001 010 011 100 101 110 111 1 0 1 0 1 1 0 0 1 0 0 1 5. L = {(0+1)* 1 (00+10+01+11)}
0 1 1 0 0 0 1 0 1 000 001 010 011 100 101 110 111 1 1 0 0 1 0 1 5. Disederhanakan menjadi :
011 1 0 1 1 101 1 110 0 111 Start 1 000 001 0 1 1 0 0 010 0 1 0 0 100 5. Atau :
q1 0, 1 0 0 1 Start 1 0 1 q3 q0 q1 q2 0, 1 0,1 q1 1 0 q0 q2 0,1 6. L = {(01+00)*} 7. L = {101 (0+1)*}
Non Deterministic Finite Automaton (NFA) 0 1 0 1 Start q0 0 q1 0 q2 1 1 • Nondeterministic finite automata (NFA) mempunyai fungsi transisi yang menetapkan nol atau lebih state untuk sebuah simbol input. • NFA menerima string jika hasil akhir penelusuran string berakhir di salah satu final state. • String diterima : Bila ada suatu path berlabel w dari start state ke salah satu final state, maka w diterima. • Contoh :
Non Deterministic Finite Automaton (NFA) • Contoh : Input : 01101 (q0, 01101) = ( (q0,0), 1101) = ({q0,q1}, 1101) = ({ (q0,1)U (q1,1)}, 101) = ({q2, q1},101) = ({ (q2,1)U (q1,1)}, 01) = ({q0,q1},01) = ({ (q0,0)U (q1,0)}, 1)= ({q0,q1},1) = { (q0,1)U (q1,1)} = {q2, q1} => Krn q2 merupakan stata penerima maka string tsb diterima
Non Deterministic Finite Automaton (NFA) 1 0 q0 q3 Start 0 1 0 q1 q4 0 1 1 q2 0 1 • Contoh : Input : 01001
Non Deterministic Finite Automaton (NFA) • Catatan : mungkin ada lebih dari satu path yang berlabel w tapi, harus ada salah satu path yang berakhir di final state, agar w dapat diterima.
Non Deterministic Finite Automaton (NFA) Definisi Formal NFA : M = (Q, , , q0, F) Q, , q0, F : seperti pada FA : Q Q • (q,a) : himpunan state p sehingga ada transisi berlabel a dari q ke p. Boleh lebih dari 1 next-state
Non Deterministic Finite Automaton (NFA) Transisi atas String : : Q * 2O 1. (q,) = {q} 2. (q,wa) = {pr dalam (q,w), p dalam (r,a)} : 2O* 2O : (P,w) = {q,w}, P Q Language Accepted / diterima : NFA M = (Q, , , q0, F), L (M) = {w (q0,w) elemen dari F} Theorem : • Bila L adalah L(M) untuk suatu NFA, maka L diterima suatu FA.
Non Deterministic Finite Automaton dengan -move ( NFA) q0 q1 q2 Start 1 2 0 Finite Automata dengan -move : • Memungkinkan transisi atas input kosong (empty) . • Contoh
Non Deterministic Finite Automaton dengan -move ( NFA) Fungsi Transisi : : O ( {}) 2O (q,a) : a mungkin atau a -Closure (q) : • Himpunan state p dimana ada path dari q ke p berlabel • Contoh : -Closure (q0) = {q0, q1, q2} • Bila P himpunan state : -closure (P) = -closure (q)
Non Deterministic Finite Automaton dengan -move ( NFA) Transisi dengan String : 1. (q,) = -closure (q) 2. (q,wa) = -closure (P), Dimana P = {puntuk semua r dalam (q,w), p dalam (r,a)} 3. (R,a) = (q,a) 4. (R,w) = (q,w) Dimana R : himpunan state Language Accepted : • L yang diterima NFA dengan -move : L(M) = {w(q0,w) dalam F}
Non Deterministic Finite Automaton dengan -move ( NFA) Contoh Untuk -NFA di atas : 1. (q0,0) = -closure (q0) = {q0,q1,q2} = -closure (({q0,q1,q2},0)) = -closure ((q0,0) (q1,0)(q2,0)) = -closure ({q0} ) = -closure ({q0}) = {q0,q1,q2} Accepted 2. (q0,01) = -closure ( (q0,0),1) = -closure (({q0,q1,q2},1)) = -closure ({q1}) = {q1,q2} Accepted
Ekuivalensi ε- NFA dan RE q0 q0 q1 q0 r q1
Ekuivalensi ε- NFA dan RE ε r1 ε q0 q1 r2 ε ε q0 ε ε ε q1 r1 r2 ε q0 ε ε q1 r1 ε
<<Latihan>> • Buatlah NFA yang menerima language dari alphabet {0,1} dengan ketentuan String dengan simbol ke-2 dari kanan adalah 1 • Buatlah ε- NFA dari RE berikut : a. (a + b)*. ab b. aa + (ab)* c. (aa)* b d. (01 + 1)* (01)*