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

## 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).
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
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

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

## * 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

## Dari DFA M1 dan M2, NFA dapat dibuat dengan

menghubungkan semua state penerima di M1 ke
states awal M2
BAHASA REGULAR TERTUTUP
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
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| = 

## 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