Upload
regis
View
286
Download
21
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
1
Pertemuan 2 FINITE AUTOMATA (DFA & NFA)
Matakuliah : T0162/Teori Bahasa dan Automata
Tahun : 2009
Versi : 1/0 Revisi
2
FINITE AUTOMATA
Sistem Finite State :
• Finite Automaton (DFA)
• Non-Deterministic Finite Automaton
• Push Down Automata
• Turing Machine
• Linear Bounded Automata
ε- NFA
RE DFA
NFA
3
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
4
FINITE AUTOMATA
MWGC-Start WC-MG MWC-G
W-MGC
MGW-C
G-MWCMG-WC-MWGC
g m
c
g
wmg
FinalState
5
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 :
6
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
q0 q1
q2 q3
Start
0000
1
1
1
1
q2q1q3
q3q0q2
q0q3q1
q1q2q0*
10State
7
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)* }
1A
0 C
B
0 00 0
0, 1
1
1
1
1
8
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)
9
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.
10
DETERMINISTIC FINITE AUTOMATA
Contoh :
Q = {q0,q1,q2,q3} = {0,1}F = {q3} : digambarkan tabel berikut
String Yang Diterima :1100110100110111
String yang terbentuk dari 0 dan 1 dan mengandung 110L = {(0+1)*110 (0+1)*}
Start q0 q1 q2 q3
0
1 1
0, 1
0
0
1
q3 q3*q3
q3 q2q2
q0 q2q1
q0 q1q0
0 1State
11
<<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 q2q0 q3
1 0,1
1
1
000Start
q1 q2q0 q4
0
00Start 1q3
1
1
1
0
01
3. L = {(01 (0+1)*) + ((0+1)* 01)}
q0
q1 q2
q4q3 q5
Start
0
0,1
0
0
0
0
1
1 1
11
4. L = {(11)* (00)*}
q0
q1 q2
q3 q40 0
0
0
0,1
1
11 1
Start
5. L = {(0+1)* 1 (00+10+01+11)}
000
00
001
01
010 011
0
110 111
11
ε
101100
10
1
1
0
01
0
0
0
0
0
1 1
1 1
1
11 0
011
0
0
11
00
10
1
5. Disederhanakan menjadi :
000 001 010 011 110 1111011001 010
0
1
1
0
0 1
1
0
0
1
0
1
5. Atau :
000 001
010
011
110 111101
100
1
01
0
1
0
1 01
1
10
0
0
10
Start
6. L = {(01+00)*}
7. L = {101 (0+1)*}
q1 q2q010Start 1 q3
1
0, 1
0 q10
0, 1
0,1
0
0,1
1
q0
q1
q2
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
0
0
1
0
1
0
1
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 0 1
q0 {q0,q1} q2
q1 q0 q1
* q2 q1 {q0,q1}
Non Deterministic Finite Automaton (NFA)
• Contoh :
Input : 01001Start
1
1
10
0
0
q2
q1
q0 q3
q4
0
0
1
1
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.
q 0 q 0 q 0 q 0 q 0 q 0
q 3 q 1 q 3
q 4 q 4 : Diterima
q 3 q 0
0
0 0 0
0 0
0
1
1
1
1
1
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.
q p
Non Deterministic Finite Automaton dengan -move ( NFA)
Finite Automata dengan -move :• Memungkinkan transisi atas input kosong (empty) .• Contoh
q0 q2q1Start
0 21
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
Jenis RE Simbol RE ε- NFA
Simbol Hampa ε
ER Hampa atau { }
ER Umum r
q0
q0 q1
q1rq0
Ekuivalensi ε- NFA dan RE
Union r1 + r2
Concantenation r1r2
Kleene Closure R*
q0 q1r1 r2ε ε ε
q1
r1
r2
ε
ε
ε
ε
q0
ε
q0 q1r1ε ε
ε
<<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)*