Pertemuan 2 FINITE AUTOMATA (DFA & NFA) Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009 Versi : 1/0 Revisi Pertemuan 2 FINITE AUTOMATA (DFA & NFA)
FINITE AUTOMATA ε- NFA RE DFA NFA Sistem Finite State : • Finite Automaton (DFA) • Non-Deterministic Finite Automaton • Push Down Automata • Turing Machine • Linear Bounded Automata ε- NFA RE DFA NFA
Contoh Finite State System : 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 Start Final State MWGC- WC-MG MWC-G W-MGC MGW-C -MWGC g m c w 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 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 q2 q1 q3 q0 q0* 1 State
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)* } 1 A C B 0, 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 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)*} q 1 2 3 0, 1 Start q3 q3 *q3 q3 q2 q2 q0 q2 q1 q0 q1 q0 0 1 State
<<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. L ={(0+1)* 000 (0+1)*} 2. L =[(0+1)* 1001} q1 q2 q0 q3 1 0,1 Start Start q1 q2 q0 q4 Start 1 q3
3. L = {(01 (0+1)*) + ((0+1)* 01)} q0 q1 q2 q4 q3 q5 Start 0,1 1
4. L = {(11)* (00)*} q0 q1 q2 q3 q4 0,1 1 Start
5. L = {(0+1)* 1 (00+10+01+11)} 000 00 001 01 010 011 110 111 11 ε 101 100 10 1
5. Disederhanakan menjadi : 000 001 010 011 110 111 101 100 1
5. Atau : 000 001 010 011 110 111 101 100 1 Start
6. L = {(01+00)*} 7. L = {101 (0+1)*} q1 q2 q0 1 Start q3 0, 1 0,1 1 1 q0 q1 q2 q1 q2 q0 1 Start q3 0, 1
Non Deterministic Finite Automaton (NFA) 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 : q0 q1 q2 1 Start
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 State 1 q0 {q0,q1 } q2 q1 q0 * q2 {q0,q1}
Non Deterministic Finite Automaton (NFA) Contoh : Input : 01001 Start 1 q2 q1 q0 q3 q4
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) Finite Automata dengan -move : Memungkinkan transisi atas input kosong (empty) . Contoh q0 q2 q1 Start 2 1
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}
Ekuivalensi ε- NFA dan RE Jenis RE Simbol RE ε- NFA Simbol Hampa ε ER Hampa atau { } ER Umum r q0 q0 q1 q1 r q0
Ekuivalensi ε- NFA dan RE Union r1 + r2 Concantenation r1r2 Kleene Closure R* q1 r1 r2 ε q0 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)*