Pertemuan 5 Non Deterministic Finite Automata with Transition (NFA-

Download Report

Transcript Pertemuan 5 Non Deterministic Finite Automata with Transition (NFA-

Matakuliah
Tahun
: T0162/Teori Bahasa dan Automata
: 2009
Pertemuan 5
Non Deterministic Finite Automata
with  Transition (NFA- )
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• << TIK-99 >>
• << TIK-99>>
2
Outline Materi
•
•
•
•
•
Materi 1
Materi 2
Materi 3
Materi 4
Materi 5
3
NFA with -transition
Finite Automata dengan -transition :
• Memungkinkan transisi atas input kosong
(empty) dari state q .
Contoh: NFA- untuk RE : 0*1*2*
q0
0

q
q10
1

qq20
2
4
Tabel transisi untuk NFA- diatas :
q0
q1
q2
0
{q0}


1

{q1}

2


{q2}

{q1}
{q2}

5
-Closure
-Closure dari state q adalah himpunan state p
dimana terdapat path dari q ke p berlabel  saja.
Pada NFA-  diatas, dapat dinyatakan:
-Closure(q0) = {q0,q1,q2}
-Closure(q1) = {q1,q2}
-Closure(q2) = {q2}
Jika dari state q tidak ada perpindahan state
dengan input , maka -Closure(q) = {q} ,
bukan 
6
• Bila P himpunan state :
-closure (P) =  -closure (q)
qp

• 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)}
7
•
•
(R,a) =  (q,a)
qR

 (R,w)

= qR

 (q,w)
dimana R : himpunan state
8
NFA with -transition
Language Accepted :
• L yang diterima oleh NFA dengan
-move :

L(M) = {w (q0,w) dalam F}
• Contoh :
Untuk NFA di atas :
9
Non Deterministic Finite
Automaton (NFA)
= -closure (q0) = {q0,q1,q2}
= -closure ((  (q0,),0))
= -closure (({q0,q1,q2},0))
= -closure ((q0,0) (q1,0)
(q2,0)
= -closure ({q0}    )
= -closure ({q0}) = {q0,q1,q2}
Karena q2 adalah final state maka input 0
diterima.




(q0,)
(q0,0)
10
Non Deterministic Finite
Automaton (NFA)
Selanjutnya :

 (q0,01) = -closure ((  (q0,0),1))
= -closure (({q0,q1,q2},1))
= -closure ({q1}) = {q1,q2}
Jadi input 01 diterima.
11
Theorem :
• Jika L diterima NFA dengan
-transition, maka L diterima NFA tanpa
-Transition.
 Setiap NFA- dapat dicari NFA ekuivalen
 Setiap NFA- dapat dicari DFA ekuivalen
12
Membentuk DFA dari NFA dengan 
Algoritma :
Input : suatu NFA
Output : suatu DFA yang menerima
language yang sama
13
Konversi NFA-epsilon ke DFA
WHILE there’s an unmarked state X = (S1, S2, …, Sn) dari D DO
BEGIN
mark X;
FOR each input symbol a DO
BEGIN
Let T be the set if states to which
there is a transition on a from some
state Si in X;
y := - CLOSURE(T);
IF y has not been added to the set of
states of D THEN
make y an “unmarked” state of D;
add a transition form X to Y labeled a
if not already present
END
END
14
Contoh 1: Dari NFA- untuk RE 0*1*2* diatas,
dapat dicari fungsi transisi dri DFA ekuivalen
berikut :
0
{q0,q1,q2} {q0,q1,q2}
{q1,q2}
{q2}
-
1
{q1,q2}
2
{q2}
{q1,q2}
-
{q2}
{q2}
Start state = -Closure(q0) = {q0,q1,q2}
Final state = {{q0,q1,q2}, {q1,q2}, {q2}}
15
Contoh 2 :

q2
Start
q0


q1
a
q3

q6

q4
b
q5

q7
a
q8
b
q9
b
q10


16
DFA yang dihasilkan :
17
Untuk menyederhanakan penggambaran diagram
transisi, nama state dapat diganti.
Start State A
State B
State C
State D
State D
= - CLOSURE(q0)
= { q0, q1, q2, q4, q7}
= { q1, q2, q3, q4, q6, q7, q8 }
= { q1, q2, q4, q5, q6, q7 }
= { q1, q2, q4, q5, q6, q7, q9 }
= { q1, q2, q4, q5, q6, q7, q10 }
18
Konversi dari RE ke NFA-Epsilon
Teorema :
Setiap Regular Expression R dapat dibuat
NFA-  M, sehingga L(M) = L(R).
Bukti:
1. R = 
2. R = 
3. R = a
19
3. RE : R+S
4. RE : R.S
5. RE : R*
20
Contoh : Buatlah NFA-  untuk RE :
(0+1)*1(0+1)
Jawab:
21
<< CLOSING>>
22