Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
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
Intersection: A B = { w | w A and w B }
Negation: A = { w Σ* | w A }
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!
0 0 1
1
NON-DETERMINISM
CONTOH Finite Automata Nondeterminitic (NFA)
MR mengenal LR
1 0,1
0
0 0 1
1
0,ε 0
ε 0
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
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
ε ε
ε
TEOREMA UNION untuk NFA
0 0
1
0
1
NFA SIMPLER THAN DFAs
An NFA that recognizes the language {1}:
1 0,1
Theorem: Setiap NFA mempunyai DFA yang
saling ekuivalen*
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,) ) * rR
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
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
ε 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 }
Concatenation: A B = { vw | v A dan w B }
NOT REGULAR
D = { w | w mempunyai kemunculan 01
dan 10 yang sama }
REGULAR!!!
THE PUMPING LEMMA
Mis. L bahasa regular |L| =
…
q0 qi qj q|w|