Anda di halaman 1dari 43

NON-DETERMINISM

Sumber:www.cs.cmu.edu/~emc/flac09
By: Edmund Clarke
M = (Q, Σ, , q0, F) dg Q = {q0, q1, q2, q3}
Σ = {0,1}
 : Q  Σ → Q fungsi transisi *
q0  Q state awal
F = {q1, q2}  Q state penerima

0
q1
0,1
1
* 
q0
0
q0
1
q1
1
q1 q2 q2
q0
M q2
0 0 q2 q3 q2
1 q3 q0 q2
q3
deterministic (DFA)
A ^ finite automaton ^ ad. 5-tuple M = (Q, Σ, , q0, F)
Q = himpunan state (finite)
Σ = alfabet (finite)
 : Q  Σ → Q suatu fungsi transisi
q0  Q = state awal
F  Q = himpunan state penerima

M accepts untai w jika proses berhenti


lingkarang dengan 2 garis
deterministic DFA
A ^ finite automaton ^ is a 5-tuple M = (Q, Σ, , q0, F)
Q is the set of states (finite)
Σ is the alphabet (finite)
 : Q  Σ → Q is the transition function
q0  Q is the start state
F  Q is the set of accept states
Let w1, ... , wn  Σ and w = w1... wn  Σ*
Then M accepts w if there are r0, r1, ..., rn  Q, s.t.
1. r0=q0
2. (ri, wi+1 ) = ri+1, for i = 0, ..., n-1, and
3. rn  F
deterministic DFA
A ^ finite automaton ^ is a 5-tuple M = (Q, Σ, , q0, F)
Q is the set of states (finite)
Σ is the alphabet (finite)
 : Q  Σ → Q is the transition function
q0  Q is the start state
F  Q is the set of accept states

L(M) = set of all strings machine M accepts

A language L is regular if it is recognized by a


deterministic finite automaton,
i.e. if there is a DFA M such that L = L (M).
Bahasa Regular tertutup terhadap
OPERATIONS REGULAR
Union: A  B = { w | w  A or w  B }

Intersection: A  B = { w | w  A and w  B }

Negation: A = { w  Σ* | w  A }

Reverse: AR = { w1 …wk | wk …w1  A }


Penyandingan (Concatenation): A  B = { vw | v  A and w  B }

Star: A* = { w1 …wk | k ≥ 0 and each wi  A }


TEOREMA Reverse: reverse dari bahasa regular
a bahasa regular

REVERSE CLOSURE
Bahasa Regular tertutup pada operasi reverse
Misal L adalah bahasa regular dan M
mengenal L
 dan MR menerima LR
Jika M menerima w maka w digambarkan
melalui jalur pada pada M dari state awal
sampai state penerima
 Buat MR sebagaimana M dengan arah panah
berlawanan
MR belum tentu DFA!

Punya banyak state awal


Beberapa state bisa punya
jalur lebih dari satu untuk satu
input simbol, atau tidak punya
jalur sama sekali.
M mengenal L
L = {w{0,1} | untai yang mengandung 001
0 0,1
1

0 0 1
1
NON-DETERMINISM
CONTOH Finite Automata Nondeterminitic (NFA)
MR mengenal LR
1 0,1
0

0 0 1
1

LR = bahasa yang mengandung 100?


Mesin dikatakan menerima jika terdapat jalan ke
state penerima
CONTOH NFA- ε
(Nondeterministic Finite Automata with ε transition)
0,1
0,1

0,ε 0

Pada setiap state, satu atau lebih atau tidak ada


ruas panah menuju state lain untuk masing-masing
  Σ atau berlabel ε (hampa)
EXAMPLE
1
1 0,1

ε 0

Possibly many start states


EXAMPLE
1

0
L(M)={1,00}
Non-deterministic finite automaton (NFA)
adalah 5-tuple N = (Q, Σ, , Q0, F)

Q = himpunan state
Σ = alfabet
 : Q  Σε → 2Q adalah fungsi transisi
Q0  Q ad. the himpunan state awal
F  Q ad. himpunan accept states

2Q = himpunan semua subset Q dan Σε = Σ  {ε}


Mis. w Σ* dan w = w1... wn untuk wi  Σε (ε ad.
Kata hampa/empty string)

Maka N menerima w terdapat r0, r1, ..., rn  Q 


1. r0  Q0
2. ri+1  (ri, wi+1 ) untuk i = 0, ..., n-1, dan
3. rn  F

L(N) = bahasa yang dikenal (recognized) oleh N


= set of all strings machine N accepts

Bahasa L dikenal NFA N jika L = L (N).


1
q2 q4

0
N = (Q, Σ, , Q0, F)
ε
q3 Q = {q1, q2, q3, q4}
0 Σ = {0,1}
Q0 = {q1, q2}
q1
F = {q4}  Q
(q2,1) = {q4}
00  L(N)? (q3,1) = 
01  L(N)? (q1,0) = { q3}
Proses deterministik Proses
Non-Deterministik

reject

accept or reject accept


MULTIPLE START STATES

Disini multiple start state oleh NFA diperkenankan,


namun banyak yang memperkenankan hanya satu
state awal
NFA dengan banyak start states dapat diubah
menjadi dengan satu state awal dengan cara :

ε ε
ε
TEOREMA UNION untuk NFA

0 0

1
0
1
NFA SIMPLER THAN DFAs
An NFA that recognizes the language {1}:

A DFA that recognizes


the language {1}: 0,1
0

1 0,1
Theorem: Setiap NFA mempunyai DFA yang
saling ekuivalen*

Corollary: Suatu bahasa adalah bahasa


regular jika dan hanya jika dapat dikenal oleh
(recognized) oleh suatu NFA

Corollary: L regular iff LR regular

* N equivalen dengan M jika L(N) = L (M)


FROM NFA TO DFA
Input: N = (Q, Σ, , Q0, F)
Output: M = (Q, Σ, , q0, F)

Idea:

Q = 2Q
reject

accept
FROM NFA TO DFA
Input: N = (Q, Σ, , Q0, F)
Output: M = (Q, Σ, , q0, F)

Q = 2Q
 : Q  Σ →
Q
(R,) =  ε( (r,) ) * rR

q0 = ε(Q0)
F = { R  Q | f  R for some f  F }
*
Untuk R  Q, ε-closure dari R, ε(R) = {q yang dapat
dijangkau dari bebrapa r  R dengan menelusuri ≥ 0 ruas ε },
CONTOH

0,1
0,1

0,ε 0
q0 q1 q2

ε({q0}) = {q0 , q1}


Dik: NFA N = ( {1,2,3}, {a.b},  , {1}, {1} )
Construct: DFA M yang equivalen dengan N

N
1
a
a b
ε

a,b
2 3

ε({1}) = {1,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N
N  a b
1 
a {1}
a b
ε {2}
{3}

2 a, b 3

ε({1}) = {1,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1 
a {1}
a b
ε {2}
{3}
a, b {1,2}
2 3
{1,3}
q0 = ε({1}) = {1,3} {2,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1 
a {1}
a b
ε {2}
{3}
2 a, b {1,2}
3
{1,3}
q0 = ε({1}) = {1,3} {2,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1   
a {1}
a b
ε {2}
{3}
a, b {1,2}
2 3
{1,3}
q0 = ε({1}) = {1,3} {2,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1   
a {1}  {2}
a b
ε {2}
{3}
a, b {1,2}
2 3
{1,3}
q0 = ε({1}) = {1,3} {2,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1   
a {1}  {2}
a b
ε {2} {2,3} {3}
{3}
a, b {1,2}
2 3
{1,3}
q0 = ε({1}) = {1,3} {2,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1   
a {1}  {2}
a b
ε {2} {2,3} {3}
{3} {1,3} 
a, b {1,2} {2,3} {2,3}
2 3
{1,3} {1,3} {2}
{1,2,3}
q0 = ε({1}) = {1,3} {2,3} {3}
{1,2,3} {1,2,3} {2,3}
N = ( Q, Σ, , Q0, F )
Dik: NFA N = ( {1,2,3}, {a,b},  , {1}, {1} )
Buat: DFA M = (Q, Σ, , q0, F) yang equivalen dg N

N  a b
1   
a {1}  {2}
a b
ε {2} {2,3} {3}
{3} {1,3} 
a, b {1,2} {2,3} {2,3}
2 3
{1,3} {1,3} {2}
{1,2,3}
q0 = ε({1}) = {1,3} {2,3} {3}
{1,2,3} {1,2,3} {2,3}
BAHASA REGULAR TERTUTUP
TERHADAP CONCATENATION

Dari DFA M1 dan M2, NFA dapat dibuat dengan


menghubungkan semua state penerima di M1 ke
states awal M2
BAHASA REGULAR TERTUTUP
TERHADAP OPERASI STAR
Jika L bahasa regular dan M DFA untuk L

NFA N dapat dibentuk untuk mengenal


(recognizes) L* dengan cara, sebagaimana contoh
berikut: ε
1
0
0,1

ε 1

0 0

1 ε
Secara formal, membentuk NFA N untuk mengenal
(recognizes) L* dari M yang mengenal L, sbb
Input: M = (Q, Σ, , q1, F)
Output: N = (Q, Σ, , {q0}, F)
Q = Q  {q0}
F = F  {q0}
{(q,a)} if q  Q and a ≠ ε
{q1} if q  F and a = ε
(q,a) = {q1} if q = q0 and a = ε
 if q = q0 and a ≠ ε
 else
BAHASA REGULAR TERTUTUP TERHADAP
OPERASI REGULAR
Union: A  B = { w | w  A atau w  B }

Intersection: A  B = { w | w  A dan w  B }

Negation: A = { w  Σ* | w  A }

Reverse: AR = { w1 …wk | wk …w1  A }

Concatenation: A  B = { vw | v  A dan w  B }

Star: A* = { w1 …wk | k ≥ 0 dan setiap wi  A }


TERDAPAT BAHASA YANG TIDAK
MASUK KELOMPOK
REGULAR
bukan
B = {0n1n | n ≥ 0}  bahasa
regular!
BERIKUT YANG REGULAR?
 = {0,1}
C = { w | w mempunyai sejumlah 1 dan 0 yang
sama}

NOT REGULAR

D = { w | w mempunyai kemunculan 01
dan 10 yang sama }

REGULAR!!!
THE PUMPING LEMMA
Mis. L bahasa regular |L| = 

maka terdapat positif integer P 

jika w  L dan |w| ≥ P


maka w = xyz, untuk:
1. |y| > 0
2. |xy| ≤ P
3. xyiz  L untuk setiap i ≥ 0
Misal M adalah DFA mengenal L
P banyaknya state di M
Asumsikan w  L sedemikian sehingga |w| ≥ P
Akan ditunjukkan w = xyz
1. |y| > 0
2. |xy| ≤ P
3. xyiz  L for any i ≥ 0
x


q0 qi qj q|w|

Pasti ada j > i sedemikian sehingga qi = qj


Gunakan PUMPING LEMMA
Untuk membuktikan bahwa B = {0n1n | n ≥ 0}
tidak regular
Hint: Jika diasumsikan B adalah regular, coba
pumping s = 0P1P
Jika B regular, s dapat di-split menjadi s = xyz,
dimana untuk sembarang i ≥ 0, xyiz juga anggota B

Jika y semua 0: xyyz mempunyai jumlah 0 lebih dari 1


Jika y semua 1:xyyz mempunyai jumlah 1 lebih dari 0
Jika y terdiri dari 1 dan 0: xyyz mpunyai 1 sebelum 0
bukan 0n1n
 Asumsi B regular salah
Tugas 11/13 Maret 2020
• Dik  = { a, b, c}
• 1. Tentukan Otomata hingga (DFA/NFA, NFA-
) yang menerima bahasa L atas  yang berupa
untai yang berakhir dengan ac, selain
membuata diagram state-nya, buat fungsi
transisi dalam bentuk tabel
• 2. Tentukan L*
Catatan: berkelompok tidak lebih dari 5, jawaban
kirim ke sulistyo@staff.gunadarma.ac.id

Anda mungkin juga menyukai