q - Toko Elektronika

Download Report

Transcript q - Toko Elektronika

Matakuliah
Tahun
Versi
: T0162/Teori Bahasa dan Automata
: 2009
: 1/0 Revisi
Pertemuan 2
FINITE AUTOMATA (DFA & NFA)
1
FINITE AUTOMATA
Sistem Finite State :
•Finite Automaton (DFA)
•Non-Deterministic Finite Automaton
•Push Down Automata
•Turing Machine
•Linear Bounded Automata
ε- NFA
NFA
RE
DFA
2
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
3
FINITE AUTOMATA
Start
MWGC- 
g
WC-MG
m
MWC-G
c
W-MGC
g
MGW-C
 -MWGC
g
MG-WC
m
w
G-MWC
Final
State
4
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 :
5
DETERMINISTIC FINITE
AUTOMATA
Contoh :
DFA menerima string dimana
jumlah ‘0’, dan jumlah ‘1’-nya
genap
L = {(11+ 00 + 0101 +
1010 + 0110 + 1001)*}
State
: { q0 , q 1 , q 2 , q 3 }
Start state : q0
Final state : { q0 }
Simbol input : {0, 1}
Fungsi Transisi Dlm Tabel
1
Start
q0
q1
1
0
0
0
0
1
q2
q3
1
State
q0*
q1
q2
q3
0
q2
q3
q0
q1
1
q1
q0
q3
q2
6
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
0
1
C
0
A
0
0
1
1
1
B
1
7
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)
8
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.
9
DETERMINISTIC FINITE
AUTOMATA
Contoh :
Start
1
0
q0
1
q1
1
q2
0, 1
0
q3
0
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)*}
State
q0
q1
q2
*q3
0
q0
q0
q3
q3
1
q1
q2
q2
q3
10
<<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)*}
11
1. L ={(0+1)* 000 (0+1)*}
1
Start
q0
0,1
0
0
q1
0
q2
q3
1
1
2. L =[(0+1)* 1001}
1
0
Start
q0
1
1
q1
0
1
0
0
q2
0
q3
1
q4
3. L = {(01 (0+1)*) + ((0+1)* 01)}
0,1
1
q1
0
Start
q2
0
0
q0
1
q3
0
1
q4
0
1
1
q5
4. L = {(11)* (00)*}
q1
0,1
0
1
q2
1
1
1
Start
q0
0
0
q3
q4
0
5. L = {(0+1)* 1 (00+10+01+11)}
ε
1
0
1
0
0
0
1
00
0
000
1
0
1
11
1
0
0
001
1
010
011
1
1
0
10
01
1
1
100
0
1
0
101
110
1
0
0
111
1
1
0
0
1
5. Disederhanakan menjadi :
0
1
1
0
0
000
1
0
001
1
010
011
100
101
0
110
111
1
1
0
0
1
0
1
5. Atau :
011
0
1
1
1
1
101
Start
000
1
0
1
001
110
0
1
010
0
100
111
1
0
0
0
0
6. L = {(01+00)*}
0,1
q1
1
0
q0
q2
0,1
7. L = {101 (0+1)*}
0, 1
q1
0
0
1
Start
q0
1
0
q1
1
q2
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.
0
1
• Contoh :
0
1
Start
q0
0
0
q1
1
1
q2
Non Deterministic Finite Automaton
(NFA)
• Contoh :
Input : 01101
State
0
1
(q0, 01101)
q0 {q0,q1
q2
=  ( (q0,0), 1101)
}
=  ({q0,q1}, 1101)
q1
q0
q1
=  ({ (q0,1)U  (q1,1)}, 101)
* q2
q1
{q0,q1}
=  ({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)
• Contoh :
Input : 01001
1
0
Start
q0
0
q3
1
0
q1
q4
0
1
1
q2
0
1
Non Deterministic Finite
Automaton (NFA)
q0
0
q0
0
1
q0
1
q3
0
q0
0
q1
0
q0
0
q3
1
q0
1
q3
q0
0
q4
1
q4 : Diterima
• 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) = {pr dalam  (q,w), p dalam
(r,a)}
:  2O  *  2O :
(P,w) = 
 {q,w}, P  Q
qp
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
Start

q0
0

q1
1
q2
2
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 = {puntuk 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 Hampa
ER Hampa
ER Umum
ε- NFA
Simbol RE
ε
atau { }
q0
q0
r
q0
q1
r
q1
Ekuivalensi ε- NFA dan RE
Union
r1 + r2
ε
ε
r1
q0
q1
ε
Concantenation
r1r2
q0
Kleene Closure
ε
r2
ε
r1
ε
R*
r2
ε
q1
ε
q0
ε
r1
ε
ε
q1
<<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)*