Pertemuan 4 Non Deterministic Finite Automaton (NFA) Matakuliah

Download Report

Transcript Pertemuan 4 Non Deterministic Finite Automaton (NFA) Matakuliah

Matakuliah
Tahun
: T0162/Teori Bahasa dan Automata
: 2009
Pertemuan 4
Non Deterministic Finite Automaton
(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
Non Deterministic Finite Automata (NFA)
• Terdapat lebih dari satu transisi untuk input yang
sama dari suatu state.
• Contoh :
1
Start
0
q0
0
q3
0
q4
0 1
1
q1
1
q2
0
1
4
Non Deterministic Finite Automaton (NFA)
String w diterima :
• Bila ada suatu path berlabel w dari start
state ke salah satu final state, maka w
diterima.
• Contoh :
Input : 01001
5
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 diterima oleh NFA.
6
Non Deterministic Finite
Automaton (NFA)
Definisi Formal NFA :
M = (Q, , , q0, F)
dimana:
Q, , q0, F : seperti pada FA
 : Q    2Q
• (q,a) : himpunan state p sehingga ada
transisi berlabel a dari q ke p.
7
Non Deterministic Finite
Automaton (NFA)
•  NFA di atas
8
Non Deterministic Finite
Automaton (NFA)
Transisi atas String :
 : Q  *  2Q


1.  (q,) = {q}



(q,w), p dalam (r,a)}
2.  (q,wa) = {pr dalam
 : 2Q  *  2Q :


 {q,w}, P  Q
 (P,w) = q
p 
9
Non Deterministic Finite
Automaton (NFA)
Catatan : untuk input w = a
 (q,a) = (q,a)

Language Accepted / diterima :
NFA M = (Q, , , q0, F),
L (M) = {w  (q0,w)  F}
10
Non Deterministic Finite
Automaton (NFA)
Contoh :
NFA di atas dengan input : 01001

= {q0,q3}
 (q0,0)

= (  (q0,0),1)
 (q0,01)
= ({q0,q3},1)
= (q0,1)  (q3,1)
= {q0,q1}

 (q0,010)

 (q0,0100)

 (q0,01001)
= {q0,q3}
= {q0,q3,q4}
= {q0,q1,q4}
11
KONVERSI NFA MENJADI DFA
Theorem :
• Bila L adalah L(M) untuk suatu NFA,
maka L diterima suatu DFA.
Setiap NFA M = (Q, , , qo, F) dapat
dicari DFA ekuivalennya M1 = (Q1, 1,
1, q1o, F1), yaitu yang mempunyai
language yang sama.
12
KONVERSI NFA MENJADI DFA
Dimana :
Q1 =
Q =
Himpunan subset dari Q
1 =

q 1o =
qo
1 = 1([q1, q2, …, qi] a) = [p1, p2, …, pj]
jika dan hanya jika
 ({q1, q2, …, qi}, a) = {p1, p2,…, pj}
F1
=
Dibentuk dari seluruh state dalam
Q1 yang mengandung salah satu
state dalam F
13
Konversi NFA ke DFA
Contoh :
Ubah NFA berikut menjadi suatu DFA
NFA M = ({q0, q1}, {0, 1},  , q0, { q1})
Dimana fungsi transisi  :
(q0, 0)={ q0, q1};
 (q0, 1) = { q1 }
(q1, 0)=  ;
(q1, 1) = { q0, q1}
14
Konversi NFA ke DFA
Fungsi transisi pada DFA:
STATE
{q0}
{q0,q1}
{q1}
Input 0
{q0,q1}
{q0,q1}

Input 1
{q1}
{q0,q1}
{q0,q1}
Diagram transisi DFA:
0
{q0}
1
1
{q0,q1}
0,1
{q0}
{q1}
15
<< CLOSING>>
16