Tr u thu c... : đ u câu chuy n
Ngôn ng hình th c và Ôtômat
(Formal Language & Automata)
PGS.TS. Phan Huy Khá
Khánh
Ch
ng 2
Ôtômat h u h n
\ Hình th c, hì
hình th c hoá
hoá
u
i l p t nhiên
u Mô t , quy
quy c, ch t ch (không th bác B )
u Nhu c u GQ v n đ : tin h c/CNTT (ICT)
\ Ngôn ng NN
u CC trao đ i, liên l c
u MT T n hi u chi v con ng
u
Hình th c hoá
hoá ngôn ng !
u
X lý (h c v ) NN :
¬ Phá
Phát
¬ Nh
i!
: (nó
(nói, vi t...) sinh câu – V N PH M s n sinh
n : (nghe, c m th ...) – ÔTÔMAT đoá
đoán nh n
2/56
2/56
Ch
ng 2
Mô t phi hì
hình th c ôtômat h u h n đ n đ nh
Ôtômat h u h n
\ M t ôtômat h u h n đ n đ nh, ký hi u M, vi t t t ôhhđđ
(DFA: Deterministic Finite State Automaton)
Automaton)
g m cá
các ph n t :
u B ng và
vào (Input Tape) :
\ Ôtômat h u h n đ n đ nh
u Mô t
u Mô hì
hình hó
hóa
u Bi u di n ôtômat h u h n
¬ Ch
\ Ôtômat h u h n không đ n đ nh
u Mô t
u Kh b tính không đ n đ nh
¬M
u
u
a câu c n x lý g m nhi u ô
i ô ch a m t ký t thu c m t b ng ch Σ nào đó
đó
M t đ u đ c (Read
(Read Head) đ c l n l t t ng ký t trong ô
M t t p h p h u h n cá
các tr ng thá
thái g m :
t tr ng thá
thái đ u (Initial State)
t s tr ng thá
thái trung gian
¬ M t tr ng thá
thái cu i hay đ t đ c (Accepting States)
¬M
\ Ôtômat h u h n và
và các bi u th c chí
chính qui
u Xây d ng cá
các ôtômat t các bi u th c chí
chính qui
u Xây d ng cá
các ngôn ng chí
chính quy t các ôtômat
¬M
u
M t hà
hàm chuy n ti p (Transition Function) :
¬ Chuy
n M sang tr ng thá
thái ti p theo
t tr ng thá
thái đang xé
xét và
và t ký t v a đ c đ
c trên b ng và
vào
3/56
3/56
4/56
4/56
Mô hì
hình c c u cá
các b ng t
Minh ho ôhhđđ
\ Ho t đ ng đoá
đoán nh n c a ôhh nh sau :
u
u
u
u
u
Câu và
vào w∈
w∈Σ* đ c đ t mút trá
trái trên b ng và
vào
Lúc đ u, đ u đ c v trí
trí w(1) mú
mút trá
trái nh t c a b ng
Ôhh đang tr ng thá
thái đ u q0
u đ c đ c l n l t t ng ký t c a w trên b ng,
ng,
di chuy n đ u đ c qua ph i và
và thay đ i tr ng thá
thái
Ôhh d ng khi m i ký t c a w đã đ c đ c h t và
và th a nh n câu,
ho c hó
hóc gi a ch ng (không th a nh n câu và
vào)
Câu và
vào w ∈ Σ*
B ng và
vào
a
b
a
a
b
a
a
Tr ng thá
thái qi
u đ c di chuy n qua ph i theo chi u m i tên
5/56
5/56
6/56
6/56
1
Mô t hình th c ôtômat h u h n đ n đ nh
Ví d m t s ôtômat
Máy bá
bán bá
báo 5xu/t
Ch
Ch
K
1 xu
2 xu
q11
1 xu
2 xu
q22
2 xu
1 xu
1 xu
q33
2 xu
Nh n K nh n bá
báo và
và v l i tr ng thá
thái ch
\ M t ôhh đ n đ nh đ c bi u di n hì
hình th c b i b n m :
u M = (Q, Σ, δ, q0, F)
F)
trong đó
đó :
Q
t p h p h u h n cá
các tr ng thá
thái (State)
Σ
b ng ch vào h u h n
δ = Q × Σ → Q là
là hàm chuy n ti p (Transition Function)
Red
Nh n nú
nút
T t
Nh n nú
nút
q0 ∈ Q
là tr ng thá
thái đ u (Initial State)
F⊆Q
là t p h p cá
các tr ng thá
thái cu i (Accepting States)
B t
Yellow
Yellow
Nút công t c thi t b đi n
Green
Green
C t đè
đèn tí
tín hi u giao thông
7/56
7/56
8/56
8/56
Bi u di n ôtômat
Ví d bi u di n ôtômat
\ Cho ôtômat M = (Q, Σ, δ, q0, F)
\ Xét ôtômat h u h n đ n đ nh M = (Q, Σ, δ, q0, F) :
u Σ = { 0, 1 }
u Q = { q0, q1, q2, q3 }
u F = { q0 }
u M i ô c a b ng bi u di n m t quan h δ :
δ(q, a) =q’
=q’
Ký t đ c vào
Tr ng thái
q , q’
q’ ∈ Q
\ Có th bi u di n M b ng cá
cách nh sau :
u Li t kê h t cá
các thà
thành ph n c a M
u L p b ng giá
giá tr c a hà
hàm d ch chuy n δ,
trong đó
đó có đá
đánh d u cá
các tr ng thá
thái đ u (q0) và
và cu i
u Dùng đ th
\ Th c t , ng
ng i ta th ng dù
dùng cách bi u di n đ th
khi s tr ng thá
thái c a ôtômat không quá
quá l n
\ Trong m t s tr ng h p ng i ta dù
dùng cách bi u di n
ph i h p li t kê thà
thành ph n và
và l p b ng giá
giá tr c a hà
hàm
d ch chuy n δ
0
1
q0
q2
q1
q1
q3
q0
q2
q0
q3
q3
q1
q2
9/56
9/56
10/56
10/56
Bi u di n ôtômat b ng đ th
Quy
c cá
cách v ôtômat :
\ Cho ôtômat M = (Q, Σ, δ, q0, F)
\ Cho ôtômat M = (Q, Σ, δ, q0,
q0, A)
\ Quy
c bi u di n M b ng đ th nh sau :
u M i tr ng thá
thái c a M là
là m t đ nh hì
hình tròn
u M i chuy n ti p là
là m t cung n i hai đ nh
u M i cung đ
c đá
đánh nhãn là
là ký t đ c đ c
u Chi u c a cung n i hai đ nh cho bi t s thay đ i tr ng thá
thái :
¬ N u δ(p, a) = q thì
thì cung n i t p sang q có
có nhãn là
là a∈Σ
¬ C ng có
có th vi t (p,
(p, a, q) ∈ δ
u Tr ng thá
thái đ u có
có g n m t d u nh n >
u Các tr ng thá
thái cu i đ c bi u di n b i cá
các vòng tròn ké
kép
11/56
11/56
p là tr ng thái đ u, p = q0
> p
p
p
a
a, b
q
q
δ(p, a) = q
q
δ(p, a) = q và δ(p, b) = q
q là tr ng thái cu i, q ∈ F
12/56
12/56
2
Ví d bi u di n ôtômat b ng đ th
Ôtômat đoá
đoán nh n câu và
vào
1
\
th c a ôtômat h u h n đ n đ nh M trong ví
ví d tr
nh sau :
c
q0
Ký t đ c vào
0
1
q0
q2
q1
q1
q3
q0
q2
q0
q3
q3
q1
q2
0
0
0
0
1
q2
0
110101
q0
13/56
13/56
110101
M110101
q1
110101
110101
110101
110101
Vì q0 ∈ F nên :
q0
q2
q3
q1
q0
D ng
Tuy nhiên, M không th a nh n câu và
ào w=110
vvào
(hay nh ng câu có
có m t s l con 0 (ho c con 1)
c M th a nh n
\ T i m i tr ng thá
thái qi, M ghi nh m t tì
tình tr ng nh t đ nh
c a câu và
vào đã đ c nh sau :
q0 : ph n đã đ c g m m t s ch n s 0 và
và m t s ch n s 1
q1 : ph n đã đ c g m m t s ch n s 0 và
và m t s l s 1
q2 : ph n đã đ c g m m t s l s 0 và
và m t s ch n s 1
q3 : ph n đã đ c g m m t s l s 0 và
và m t s l s 1
14/56
14/56
Khá
Khái ni m hì
hình tr ng (C u hì
hình)
\ Cho ôtômat hh M, m t hì
hình tr ng (Configuration) c a M :
u là c p (q, w)∈
ký hi u C = (q, w)
w)∈Q×Σ*
×Σ*
q∈Q, w ph n còn l i ch a đ c c a câu và
vào
\ Chuy n ti p (Transition) m t b c (one step) trong M
(q, w) M (q’
(q’, w’
w’), n u và
và ch n u (n
(n u) :
uw
= aw’, a ∈ Σ
u q’
= δ(q, a)
q
\ Chuy n ti p nhi u b
a
q’
*
M
c trong M, (q, w)
(q’
(q’, w’
w’) n u :
u
Ch nh ng câu có
có m t s ch n s 0 và
và m t s ch n s 1
m i đ c M th a nh n
u
∃ k ≥ 0 và
và các hì
hình tr ng (qi, wi), 0 ≤ i ≤ k sao cho :
u
(q, w) = (q0, w0)
u
Hay có
có th nói : M ch th a nh n nh ng câu
có m t s ch n s 0 và
và m t s ch n s 1
u
(q’
(q’, w’
w’) = (qk, wk)
u
∀i, 0 ≤ i
M
(qi+1, wi+1)
15/56
15/56
M đoá
đoán nh n câu c a ngôn ng
M
(q1, w1)
M
(q2, w2)
M
...
M
(qn, ε)
trong đó
đó q0 là
là tr ng thá
thái đ u, ε là câu r ng
\ M t câu w đ
(q0, w)
*
M
\ Ngôn ng đ
(q, ε), q ∈ F
L(M) = { w∈Σ
* ⏐ (q0, w)
w∈Σ*
*
M
c L(M) :
(q, ε), q ∈F }
1
\ Cho câu và
vào w = 110101
qq
00
\ Quá
Quá trì
trình đoá
đoán nh n nh sau
(ch v t ng tr ng đ u đ c) :
(q0, 110101)
c th a nh n b i ôtômat M n u :
c th a nh n b i M, vi t quy
16/56
16/56
Ôtômat đoá
đoán nh n câu và
vào
\ Ôtômat M đoá
đoán nh n (Recognition) câu và
vào w b ng cá
cách
th c hi n dãy chuy n ti p sau :
(q0, w)
0
0
0
q3
1
Tính ch t c a cá
các câu đ
q1
q1
1
δ(q0, 110101) ⇒ δ(q1, 10101)
1
⇒ δ(q0, 0101) ⇒ δ(q2, 101)
q2
q2
q3
q3
1
⇒ δ(q3, 01) ⇒ δ(q1, 1)
⇒ q0
ôtômat d ng và
và th a nh n w do đ c h t w và
và q0∈
q0∈F
q1
1
q0
q0
\ Quá
Quá trì
trình đoá
đoán nh n nh sau
(ch v t ng tr ng đ u đ c) :
1
Tr ng thái
\ Cho câu và
vào w = 110101
M
(q1, 10101)
M
(q0, 0101)
M
(q2, 101)
M
(q3, 01)
M
(q1, 1)
M
(q0, ε)
0
q1
q1
1
0
0
0
1
q2
q2
1
q3
q3
ôtômat d ng và
và th a nh n w do đ c h t w và
và q0∈
q0∈F
L(M) g m cá
các câu có
có m t s ch n s 0 và
và m t s ch n s 1
17/56
17/56
18/56
18/56
3
M t s ví d 1
\ L(M) là
là ngôn ng g m cá
các câu k t thú
thúc b i b
u L(M) = (a+b)*b
a
u Ví d aaabbb = a3b3 ∈ L(M)
M t s ví d 2
\ L(M) là
là ngôn ng không ch a hai ch a liên ti p
u Ví d bbaba ∈ L(M)
b
b
b
a
a
q0
\ Bài t p t i l p :
Ki m tra cá
các câu :
u
u
a
q1
q0
b
q1
a
q2
w = bababaab ∈ L(M) ?
w = bababaa ∈ L(M) ?
Dùng cá
cách vi t g n :
q0bababaab>q1ababaab> ...
b
G m nh ng câu
ccó
ó ““láo
láo nhá
áo cá
ác con
à bb”
”
nh
ccác
vvà
nháo
con aa và
r i k t thú
úc b i m t con b.
th
thúc
Trong cu c s ng : ““Anh
Anh ta
nnói
ói ““rr ng thì
àm
à llà”
à” gi a
thì llà
mà
lláo
áo nhá
áo cá
ác câu
nh
ccác
nháo
câu !
\ Bài t p t i l p :
Ki m tra cá
các câu :
u w = bababab ∈ L(M) ?
u w = aababb ∈ L(M) ?
19/56
19/56
Các ôtômat h u h n đ n đ nh
20/56
20/56
Ôtômat h u h n không đ n đ nh
\ Nh ng ôtômat h u h n v a xé
xét tr cc đây đ u đ n đ nh
v i đ c tí
tính :
u T i m i th i đi m, ôhh ch đ c duy nh t m t ký t a∈Σ, a≠ε
u V i m i tr ng thá
thái q, sau khi ôhh đ c xong a, luôn đ t đ c
m t tr ng thá
thái xá
xác đ nh q’
q’
Ngh a là
là chuy n ti p :
δ(q, a) = q’
q’ ⊆ Q
luôn đ n đ nh (hay TI N NH)
\ Ôtômat h u h n không đ n đ nh (ôhh
(ôhh kđđ)
kđđ)
(NFA - NonNon-deterministic FiniteFinite-State Automata)
có các đ c tí
tính :
u Cùng m t ký t , m t tr ng thá
thái có
có th có nhi u chuy n ti p,
ngh a là
là δ(q, a) = q’
q’ ⊆ Q
u T n t i chuy n ti p cho câu r ng δ(q, ε) = q’
q’ ⊆ Q
(ngh a là
là đ u đ c không ti n t i khi đ c câu và
vào)
u Có th có các chuy n ti p (nhó
(nhóm cá
các chuy n ti p)
cho cá
các ph n câu có
có đ dài l n h n 1,
ngh a là
là δ(q, u) = q’
q’ ⊆ Q, u ∈ Σ*, |u| > 1
21/56
21/56
Nh n xé
xét
\ M t ôhh kđđ đ
nh ngh a hì
hình th c ôhh kđđ
c đ nh ngh a hì
hình th c gi ng ôhh đđ
\ S khá
khác nhau th hi n :
u V i ôhh đđ là
là hàm chuy n ti p δ (Transition Function)
u V i ôhh kđđ là
là quan h chuy n ti p Δ (Transition Relation)
đ c đ nh ngh a t ng t ôhh đđ,
đđ, nh
nh ng l n nà
này vi c chuy n
ti p là
là không duy nh t
¬V
i m i tr ng thá
thái, có
có th có nhi u tr ng thá
thái ti p theo cho m i
ký t đ c và
vào, ch ng h n δ(q, a) cho q1 và
và q2
d ng b ba (p, σ, q)
q) đ nói r ng n u ký t đ c và
vào là
là σ thì
thì có
th chuy n t tr ng thá
thái p sang tr ng thá
thái q
¬S
¬T
22/56
22/56
\ Ôtômat h u h n không đ n đ nh là
là b n m :
M = (Q, Σ, Δ, q0, A)
A)
trong đó
đó :
Q là
là t p h p h u h n cá
các tr ng thá
thái
Σ là b ng ch h u h n
Δ ⊂ (Q × Σ* × Q) là quan h chuy n ti p
q0 ∈ Q là
là tr ng thá
thái đ u
F ⊆ Q là
là t p h p các tr ng thá
thái th a nh n
i m i th i đi m đ u đ c có
có th đ c m t ph n câu u ∈ Σ*
23/56
23/56
24/56
24/56
4
Ví d ôhh kđđ đoá
đoán nh n câu
Ví d ôhh kđđ
\ Cho ôhh kđđ :
u M = ( { q0, q1, q2, q3, q4 },
{ 0, 1 },
Δ,
q0,
{ q2, q4 })
u v i Δ đ
c cho nh sau :
0
1
{ q0, q3 }
{ q0, q1 }
q1
∅
{ q2 }
{ q2 }
q3
{ q4 }
∅
q4
{ q4 }
{ q4 }
0, 1
0
> q0
0
q3
1
q4
0, 1
q1
q0
q2
\ Cho w = 01001
ôhh kđđ M đoá
đoán nh n nh sau :
(q0, 01001)
M (q0, 1001)
M (q0, 001)
M (q3, 01)
M (q4, 1)
M (q4, ε)
Câu w đ
1
¬M
0, 1
{ q2 }
0
> q0
q3
0
1
0, 1
c M th a nh n vì
vì :
1
0, 1
tr ng thá
thái cu i
q2
L(M) = (0+1)*00(0+1)*+ (0+1)*11(0+1)*
25/56
25/56
26/56
26/56
Kh n ng có
có nhi u chuy n ti p
Ví d ôhh kđđ
0, 1
0
> q0
q3
0
1
M(q0,
q4
0, 1
M(q0,
1)
M(q0,
ε)
\ Ngôn ng đ c th a nh n b i ôtômat M :
L(M) = ((a
((a ∪ ab)
ab)* bbbbΣ
bbbbΣ*) ∪ ((a
((a∪ab)
ab)* abb(
abb(aa)
aa)* aΣ*)
01)
M(q0,
0, 1
001)
M(q3,
1)
M(q4,
1)
hóc !
1001)
M(q3,
01)
M(q4,
aa
ab
> q0
q2
M(q0,
ε
a
q1
1
q1
b
a
001)
bbb
q3
M(q3,
q2
ε)
b
M(q1,
(q0, 01001)
q4
q1
đ c h t câu
¬M
q2
0, 1
a, b
q4
1001)
27/56
27/56
28/56
28/56
Chuy n ti p trong ôhh kđđ
Ví d ôhh kđđ
Cho ôhh kđđ M
\ Ngôn ng đ c th a nh n b i ôtômat M :
L(M) = Σ*ab(
ab(ab)
ab)*
ngh a là
là t p h p cá
các câu k t thú
thúc ít nh t m t l n l p ab
Ví d , câu aaabab ∈ L(M)
\ Chuy n ti p m t b c trong M
(q, w) M (q’
(q’, w’
w’) n u :
w = uw’
uw’ : câu w b t đ u b i ti n t u ∈ Σ*
(q, u, q’
q’) ∈ Δ
a
> q0
a
ab
a
b
\ Chuy n ti p nhi u b c trong M
(q, w) M* (q’
(q’, w’
w’) n u :
q1
q2
b
29/56
29/56
u
∃ k ≥ 0 và
và các hì
hình tr ng (qi, wi), 0 ≤ i ≤ k sao cho :
u
(q, w) = (q0, w0)
u
(q’
(q’, w’
w’) = (qk, wk)
u
∀i, 0 ≤ i
M
(qi+1, wi+1)
30/56
30/56
5
Xây d ng ôhh đđ M’
M’ t ôhh kđđ M
ánh giá
giá các ôhh kđđ
\ Th c t :
u Tính không đ n đ nh không thêm kh n ng c a cá
các ôhh
u Có th thay th m t ôhh kđđ b i m t ôhh đđ t
ng đ ng
\ Hai ôtômat hh M và
và M’ là t ng đ ng v i nhau
n u cù
cùng th a nh n m t ngôn ng : L(M) = L(M’
L(M’)
\ Cho tr c ôhh kđđ M,
M,
L(M) là
là ngôn ng đ c M th a nh n, khi đó
đó :
u Có th xây d ng ôhh đđ M’
M’ t t ôhh kđđ M
u
\ Phân bi t gi a ôhh kđđ NFA và
và m t ôhh đđ DFA :
u
T n t i cá
các chuy n ti p trên cá
các ph n câu và
vào (câu con)
có đ dài l n h n 1
u
T n t i cá
các chuy n ti p cho cù
cùng m t tr ng thá
thái và
và cùng m t
n i dung c a b ng và
vào (tí
(tính không đ n đ nh)
M’ là ôhh đđ t
ng đ
ng v i M, L(M’
L(M’) = L(M)
\ Vi c xây d ng M’
M’ g m hai giai đo n :
u Giai đo n 1 :
Kh b các chuy n ti p có
có đ dài >1 c a M, nh n đ
u Giai đo n 2 :
Kh b tính không đ n đ nh c a M1 nh n đ c M’
M’
31/56
31/56
32/56
32/56
Kh b các chuy n ti p có
có đ dài >1
Kh b tính không đ n đ nh
\ Cho NFA M = (Q, Σ, Δ, q0, F)
F),
xây d ng M1 = (Q1, Σ1, Δ1, q01, F1), trong đó
đó :
u Q1 = Q, q01 = q0, Δ1 = Δ và F1 = F
u V i m i chuy n ti p (q, u, q’
q’)∈Δ có u = σ1σ2...., σk (k>1) :
¬ Lo i b chuy n ti p nà
này kh i Δ1
¬ Thêm kk-1 tr ng thá
thái m i p1, p2, ..., pk-1 vào Q1
¬ Thêm k chuy n ti p m i và
vào Δ1 :
(q, σ1, p1), (p1, σ2, p2), . . ., (pk-1, σk, q’
q’)
\ M1 nh n đ c không ch a cá
các chuy n ti p trên câu có
có đ
dài l n h n 1, ngh a là
là ∀(q, u, q’
q’) ∈ Δ1, |u| ≤ 1
q
abc
a
q
q’
p1
b
p2
c
\ Gi s M = (Q, Σ, Δ, q0, F)
F) trong đó
đó :
u M i chuy n ti p (q, u, q’
q’) ∈ Δ, |u| ≤ 1
ngh a là
là m i chuy n ti p c a NFA M có
có d ng :
¬ ho c (q, σ, q’
q’), σ ∈ Σ
¬ ho c (q, ε, q’
q’)
\ Xây d ng DFA M’
M’ = ( Q’
Q’, Σ, δ’, q0’
q0’, F’
F’) t ng đ ng v i M
qua hai b c nh sau :
u X lý cá
các chuy n ti p đ i v i câu r ng ε d ng (q, ε, q’
q’)
g i t t là
là chuy n ti p r ng, hay ε-chuy n ti p
u Xây d ng DFA M’
M’
q’
33/56
33/56
34/56
34/56
Ví d xây d ng t p h p E(
E(q)
X lý cá
các chuy n ti p r ng
\ Th c t , m t DFA không có
có các chuy n ti p cho câu r ng ε
u C n nhó
ó
m
t
t
c
c
á
c
chuy
n ti p r ng c a M
nh
v i m t chuy n ti p c a m t ph n t cu Σ : δ(q, a), a∈Σ
a∈Σ
\ Xây d ng t p h p E(
E(q) nh sau :
u V i m i q∈
q∈Q c a M, E(
E(q) là t p cá
các tr ng thá
thái có
có th đ t đ c
t q b i m t dãy chuy n ti p trên câu r ng :
E(q) = { p∈
p∈ Q | (q, w) M* (p, w) }
u Nh v y, v i q đã cho,
cho, t p h p E(
E(q) g m cá
các tr ng thá
thái p mà
mà
trong s đ bi u di n ôtômat, t n t i m t đ ng đi t q sang
p có
có nhãn là
là câu r ng ε
ε
q
c M1
\ Cho ôtômat h u h n không đ n đ nh M
\ Xây d ng t p h p E(
E(q) :
b
a
q1
ε
> q0
b
ε
a
q3
EE(q
(q00) = { q00, q11, q33 }
q2
a
a
b
ε
q4
a
b
EE(q
(q11) = { q11 }
EE(q
(q22) = { q22 }
EE(q
(q33) = { q33 }
EE(q
(q44) = { q33, q44}
p1
ε
p2
35/56
35/56
36/56
36/56
6
S đ thu t toá
toán xây d ng DFA M’
M’
Xây d ng DFA M’
M’
\ Gi s đã x lý ε-chuy n ti p và
và XD xong cá
các E(
E(q), ∀q∈Q
Xây d ng cá
các ph n t c a DFA M’
M’~ NFA M nh sau :
u M’
= ( Q’
Q’, Σ, δ’, q0’
q0’, F’
F’)
Input: M = ( Q, Σ, Δ, q0, F)
F)
Output: M’
M’ = ( Q’
Q’, Σ, δ’, q0’
q0’, F’
F’)
Begin
q0’
q0’ = E(q0) ; Q’
Q’ = { q0’
q0’ }
Do
i tr ng thá
thái q ∈ Q’ c a M’
M’ là m t t p con tr ng thá
thái c a M,
M,
Q = 2Q
uM
L y q ∈ Q’
Do
= E(q0)
q0)
tr ng thá
thái mà
mà t đó
đó, M có
có th ti n hà
hành đ c câu và
vào, k c ε
u q0’
q0’
u δ’(q,
u F’
a) =
L y a∈
a∈Σ
Tìm p = δ(q, a) =
∪ { E(p) | ∃q ∈ q : (q, a, p) ∈ Δ }
∪{ E(p) | ∃q ∈ q : (q, a, p) ∈ Δ }
Q’ = Q’
Q’ ∪ { p }
While Không còn a∈
a∈Σ ch a x lý
While Q’ không thay đ i (không còn p nào khá
khác ph i thêm và
vào Q’
Q’ )
F’ = { q ∈ Q ’ | q ∩ F ≠ ∅ }
= { q ∈ Q’ | q ∩ F ≠ ∅ }
End
37/56
37/56
38/56
38/56
Ví d xây d ng DFA t NFA
b
NFA
ε
q0
>
a
q1
b
a
a
ε
q2
a
b
ε
q3
a
q4
b
a
b
q0
∅
∅
q1
q2
q2, q3
q2
∅
∅
q3
q1, q3
q3, q4
q4
q1, q2
q3
NFA không có
có ε-chuy n ti p :
a
a
>
q0
a
b
a
b
q1
q2
q3
b
a
b
q0
q0, q1
q0
q1
q1
q2
q2
q3
∅
q3
∅
q2
L(M) = (a+b)*aa*b(ab)*
b
DFA~NFA
>
Ví d xây d ng DFA t NFA
a
a
{q1, q2, q3}
a
DFA~NFA
{q0, q1, q3}
{q2, q3, q4}
a
b
>
{q0}
a
{q0, q1}
b
a
a
b
{q3, q4}
b
{q0, q2}
b
b
b
a
{q0, q1 , q3}
39/56
39/56
40/56
40/56
Ví d xây d ng DFA t NFA
C
NFA
> A
E(B) = B, D
1
0
0
ε
B
L(M) =
ε
0
1
A
A, B, D
∅
B
C
∅
C
∅
B, D
D
D
∅
E(A) = A, B, D
0
E(C) = C
D
E(D) = D
0*(01)*0*
Quan h gi a ôhh và
và BTCQ
\ Cho L là
là m t ngôn ng chí
chính qui, M là
là m t ôtômat h u h n
\ M t ngôn ng là chí
chính qui n u và
và ch n u ngôn ng đó
đó
đ c th a nh n b i m t ôtômat h u h n :
u
N u m t ngôn ng đ c ch đ nh b i m t bi u th c chí
chính qui,
thì
thì ngôn ng đó
đó đ c th a nh n b i m t ôtômat h u h n
không đ n đ nh
L = L(α
L(α) ⇒ L = L(M)
DFA~NFA
0
0
> A, B, D
0
A, B, C, D
0
1
B, D
1
1
u
1
0
C, D
D
M t ngôn ng đ c th a nh n b i m t ôtômat h u h n
không đ n đ nh là
là chí
chính qui
L = L(M) ⇒ L = L(α
L(α)
1
∅
41/56
41/56
42/56
42/56
7
Xây d ng ôhh t bi u th c chí
chính qui
Xây d ng ôhh t các BTCQ c s
\ Minh ho tính ch t : L = L(α
L(α) ⇒ L = L(M)
L(M) nh sau :
u
V i m i BTCQ c s α=∅, α=ε, α= a, a∈Σ
a∈Σ,,
XD đ c m t ôhh th a nh n ngôn ng do α ch đ nh
u
V i m i BTCQ d ng α=(α
=(α1α2), α=(α
=(α1∪α2), và
và α=((α
=((α1)*)
¬G
i M1 và M2 l n l
¬ XD
đ
Ôtômat th a nh n ∅
t là
là các ôhh th a nh n L(α
L(α1) và
và L(α
L(α2)
Ôtômat th a nh n ε
c ôhh M th a nh n L(α)
L(α) t M1 và M2
a
Ôtômat th a nh n a∈Σ
43/56
43/56
Xây d ng ôhh t các BTCQ đ n gi n
XD ôhh M th a nh n L(α
L(α1∪α2) t M1 và M2
a
Thu g n
tr ng thái
\ Cho cá
các ôhh :
Ôtômat th a nh n a∈Σ
a
a
b
44/56
44/56
u
M1 = (Q1, Σ, Δ1, s1, F1), có
có L(M1) = L(α
L(α1)
u
M2 = (Q2, Σ, Δ2, s2, F2), có
có L(M2) = L(α
L(α2)
Ghép hai
ôtômat
\ XD ôhh M th a nh n L(α
L(α) = L(α
L(α1∪α2) t M1 và M2 :
b
Ôtômat th a nh n a∪b
a
b
M
M11
a, b
M11
Ôtômat th a nh n a∪b
M22
M22
a
a
Ôtômat th a nh n a*
45/56
45/56
XD ôhh M th a nh n L(α
L(α1α2) t M1 và M2
\ Cho cá
các ôhh :
XD ôhh M th a nh n L(α
L(α1*) t M1 và M2
\ Cho ôhh :
u M1
= (Q1, Σ, Δ1, s1, F1), có
có L(M1) = L(α
L(α1)
u M2
= (Q2, Σ, Δ2, s2, F2), có
có L(M2) = L(α
L(α2)
u M1
= (Q1, Σ, Δ1, s1, F1), có
có L(M1) = L(α
L(α1)
\ XD ôhh M th a nh n L(α
L(α) = L(α
L(α1*) t M1 :
\ XD ôhh M th a nh n L(α
L(α) = L(α
L(α1α2) t M1 và M2 :
uQ
46/56
46/56
= Q1∪Q2 ; Δ = Δ1∪Δ2 ∪ { (q, ε, s2) ⏐ q ∈ F1 } ; q0 = s1 ; F = F2
u Có
th gi thi t r ng ε ∉ L(M1)
Ghép hai
ôtômat
M11
M11
M
M11
M22
M
ε
M11
ε
ε
ε
M22
47/56
47/56
48/56
48/56
8
X lý cá
các vòng l p b ng quy n p
Xây d ng cá
các ngôn ng chí
chính quy t các ôtômat
\ Cho ôtômat M, c n xây d ng m t bi u th c chí
chính quy ch
đ nh L(M),
ngh a là
là :
u L = L(M) ⇒ L = L(α
L(α)
\ Cách xây d ng nh sau :
u Xét cá
các đ ng đi t q0 đ n qj, qj ∈ F trong M
u BTCQ αj nh n đ
c t ng ng v i m i đ ng đi là
là :
¬ Ghé
Ghép
¬ Các
u
c bi u di n b i phé
phép toá
toán l p *
BTCQ α mong mu n là
là h p (Union) c a cá
các αj nh n đ
\ Riêng đ i v i cá
các vòng l p, c n xây d ng BTCQ t
v i cá
các đ ng đi n i hai tr ng thá
thái có
có vòng l p
\
\
(c ng) liên ti p cá
các nhãn c a cá
các chuy n ti p
vòng l p đ
\ Cho ôtômat M v i Q = { q1, q2, ..., qn }
t R(i, j, k) :
u
Là t p h p cá
các câu αij = Path(qi, qj)
u
Trong đó
đó Path(qi, qj) là
là đ ng đi t qi đ n qj b ng cá
cách
ch chuy n qua kk-1 tr ng thá
thái { q1, q2, ..., qk-1 }
nh ngh a R(i, j, k) v i k = 1 (c
(c s quy n p
x y ra hai tr ng h p :
u
N u i ≠ j,
u
N u i = j,
c 1),
1),
αij = Path(qi, qj) = { w | (qi, w, qj) ∈ Δ }
c
ng ng
b
αij = Path(qi, qj) = { ε } ∪ { w | (qi, w, qj) ∈ Δ }
49/56
49/56
50/56
50/56
Mô hì
hình cá
các đ
nh ngh a R(i, j, k) v i k > 1
\ V i k>1,
dùng ph ng phá
pháp quy n p tí
tính αij = Path(qi, qj), ∀qi, qj :
u Gi s ∀αij đã đ
c xây d ng (gi
(gi thi t quy n p b c k)
k)
R(i, j, k) = Path(qi, qj) đi qua k−
k−1 tr ng thá
thái { q1, q2, ..., qk-1}
u Xây d ng R(i, j, k+1) ( quy n p
b c k+1)
k+1)
g m cá
các đ ng đi ch đi qua { q1, q2, ..., qk-1 } :
¬ Path(qi,
qk) nh n đ
¬ Path(qk,
qk)* do nh n đ
¬ Path(qk,
qj) nh n đ
R(k, k, k)* ,
Path(qk, qk)*
R(i, k, k),
qj
Path(qi, qk)
R(k, j, k),
Path(qk, qj)
c t qi đ n qk,
c t qk đ n qk m t s l n tu ý (*)
qi
c t qk đ n qj
qj
R(i, j, k), Path(qi, qk)
\ Ta có
có :
R(i, j, k+1) = R(i, j, k) ∪ R(i, k, k) R(k, k, k)*R(k, j, k)
Gi thi t M có
có n tr ng thá
thái, q1 là tr ng thá
thái đ u, ta có
có :
L(M) =
R(1, j, n+1)
∪
q∈
A
∈A
jj
51/56
51/56
Nh n xé
xét
\ Ngôn ng th a nh n b i M là
là h p c a t t c các t p h p
câu R(i, j, n+1), xu t hi n trong cá
các chuy n ti p t tr ng thá
thái
đ u đ n m t trong nh ng tr ng thá
thái cu i, b ng cá
cách v t
qua t t c các tr ng thá
thái c a M
\ Cho ôtômat M :
R(i, j2, n+1)
R(i, jm, n+1)
qj1
a
u
q2
a
c đ nh ngh a nh sau :
k=2
R(1,1,1)∪
R(1,1,1)∪R(1,1,1)R(1,1,1)*R(1,1,1)
(ε∪a)
∪(ε∪a)(
ε∪a)*(
a)*(ε∪
ε∪a)
a)
ε∪a)∪
ε∪a)(ε∪
b∪(ε∪a)(
ε∪a)*b
a)*b
ε∪a)(ε∪
R(1,2,k)
b
R(1,2,1)∪
R(1,2,1)∪R(1,1,1)R(1,1,1)*R(1,2,1)
R(2,1,k)
a
R(2,1,1)∪
R(2,1,1)∪R(2,1,1)R(1,1,1)*R(1,1,1)
a∪a(ε∪
a)*(ε∪
ε∪a)
a)
a(ε∪a)*(
R(2,2,1)∪
R(2,2,1)∪R(2,1,1)R(1,1,1)*R(1,2,1)
(ε∪b)
∪a(ε∪
a)*b
ε∪b)∪
a(ε∪a)*b
R(2,2,k) ε∪b
ε∪b
qjm
> q1
V i k=1 và
và k=2,
k=2, R(i, j, k) đ
R(1,1,k) ε∪a
ε∪a
qj2
b
b
k=1
R(i, j1, n+1)
52/56
52/56
Ví d
\ Cho ôtômat M có
có n tr ng thá
thái, gi s là q1 tr ng thá
thái đ u,
và M có
có m tr ng thá
thái cu i qj1, qj2, ..., qjm
> q
1
ng đi tí
tính R(I, j, k)
R(i,
R(i, j,j, k+1)
k+1) =
= R(i,
R(i, j,j, k)
k) ∪
∪ R(i,
R(i, k,
k, k)
k) R(k,
R(k, k,
k, k)*R(k,
k)*R(k, j,j, k)
k)
53/56
53/56
54/56
54/56
9
Tìm L(M)
\ Ngôn ng đ
Bài t p ch
1.
c th a nh n b i M là
là :
L(M) =
R(1, 2, 3) = R(1, 2, 2)∪
2)∪R(1, 2, 2)R(2, 2, 2)*R(2, 2, 2)
Bi u di n nh phân cá
các s ch n
u
Các câu trên b ng ch Σ = { a, b } ch a aab ho c aaab
Xây d ng cá
các DFA th a nh n cá
các ngôn ng đã cho
3.
Xây d ng cá
các ôtômat th a nh n cá
các bi u th c chí
chính quy :
2)*
4.
b∪(ε∪a)(
ε∪a)
a)*b((
∪a(ε∪
a)*b)*
ε∪a)(ε∪
b((ε∪b)
ε∪b)∪
a(ε∪a)*b)*
Xây d ng cá
các NFA th a nh n cá
các ngôn ng sau đây :
u
2.
R(1, 2, 2)(ε∪R(2, 2, 2)+)
R(1, 2, 2)R(2, 2,
ng 2
u
a*b
u
ε ∪ (a ∪ aab)*
1 trên đây
Xây d ng cá
các bi u th c chí
chính quy t ôtômat sau đây :
a
a
q1
b
b
b
> q0
55/56
55/56
q2
56/56
56/56
10