download

Matakuliah
Tahun
Versi
: T0162/Teori Bahasa dan Automata
: 2005
: 1/0
Pertemuan 5
KONVERSI NFA MENJADI DFA
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
KONVERSI NFA MENJADI DFA
• Jika L merupakan suatu bahasa yang
diterima oleh NFA, pasti dapat dibuat
suatu DFA yang akan menerima bahasa L
• Jika terdapat NFA M = (Q, , , qo, F)
maka dapat dibuat DFA M1 = (Q1, 1, 1,
q1o, F1) yang ekivalen dengan NFA
tersebut
4
KONVERSI NFA MENJADI DFA
Q1 =
=
1 =
q1o =
1 =
Q
Seluruh subset dari himpunan
state Q

qo
1([q1, q2, …, qi] a) = [p1, p2, …,
pj]
jika dan hanya jika
 ({q1, q2, …, qi}, a) = {p1, p2,…, pj}
5
KONVERSI NFA MENJADI DFA
F1 =
Dibentuk dari seluruh state dalam
Q1 yang mengandung salah satu
state dalam F
Contoh :
Ubah NFA berikut menjadi suatu DFA
NFA M = ({q0, q1}, {0, 1}, , q0, { q1})
6
KONVERSI NFA MENJADI DFA
Dimana fungsi transisi  :
 (q0, 0)
 (q0, 1)
 (q1, 0)
 (q1, 1)
=
=
=
=
{ q0, q1}
{ q1 }

{ q0, q1}
7
KONVERSI NFA MENJADI DFA
• Optimisasi state dalam DFA yang
dihasilkan
• Aturan : State-state yang tak pernah
dilalui dari start state, dapat dihilangkan
• Latihan : Lakukan optimasi state dalam
DFA yang dihasilkan dari konversi NFA
sebelumnya
8
KONVERSI NFA MENJADI DFA
Membentuk DFA dari NFA dengan 
Algoritma :
Input : suatu NFA
Output : suatu DFA yang menerima
language yang sama
9
KONVERSI NFA MENJADI 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
10
KONVERSI NFA MENJADI DFA
Contoh :

q2
Start
q0
q3
q1
q6
q4
q7
q8
q9
q10
q5

11
KONVERSI NFA MENJADI DFA
DFA yang dihasilkan :
12
KONVERSI NFA MENJADI DFA
Start State A
= - CLOSURE(q0)
= { q0, q1, q2, q4, q7}
State B
= { q1, q2, q3, q4, q6, q7, q8 }
State C
= { q1, q2, q4, q5, q6, q7 }
State D
= { q1, q2, q4, q5, q6, q7, q9 }
State D
= { q1, q2, q4, q5, q6, q7, q10 }
13
<< CLOSING>>
14