Ngôn ng hình th c và ÔtômatFormal Language & Automata PGS.TS... Xây d ng các DFA th a nhn các ngôn ng đã cho đã cho 1 trên đâytrên đây 3.
Trang 1Ngôn ng hình th c và Ôtômat
(Formal Language & Automata)
PGS.TS Phan Huy Khánh
khanhph@vnn.vn
2/56
Tr u thu c : đ u câu chuy n
\Hình th c, hình th c hoá
u i l p t nhiên
u Mô t , quy c, ch t ch (không th b c B )
u Nhu c u GQ vn đn đ : tin h c/CNTT (ICT)
\Ngôn ng NN
u CC trao đ trao đ i, liên l c
u MT T n hi u chi v con ng i !
u Hình th c hoángôn ng !
u X lý (h c v ) NN :
¬Phát : (nói, vit ) sinh câu – V N PH M sn sinh
¬Nh n : (nghe, cm th ) – ÔTÔMAT đo ÔTÔMAT đoán nh n
3/56
\Ôtômat h u h n đ n đn đ n đnh
u Mô hình hó
u Bi u din ôtômat h u h n
\Ôtômat h u h n không đ n đn không đ n đnh
u Kh b tính không đ n đnh không đ n đnh
\Ôtômat h u h n vàc c bi u th c chính qui
u Xây d ng các ôtômat t các bi u th c chính qui
u Xây d ng các ngôn ng chính quy t các ôtômat
4/56
Mô t phi hình th c ôtômat h u h n đ n đ n đ n đ nh
\M t ôtômat h u h n đ n đn đ n đnh, ký hi u M, vi t t t ôhhđđôhhđđ
(DFA: Deterministic Finite State Automaton)
g m các ph n t :
u B ng vào (Input Tape) :
¬Ch a câu cn x lý g m nhi u ô
¬Mi ô ch a mt ký t thu c mt b ng ch Σnào đo đó
u M t đt đ u đu đ c (Read Head) đ đ c l n l t t ng ký t trong ô
u M t t p h p h u h n các tr ng thái g m :
¬Mt trng thái đi đ u (Initial State)
¬Mt s trng thái trung gian
¬Mt trng thái cui hay đi hay đt đt đ c (Accepting States)
u M t hàm chuy n ti p (Transition Function) :
¬Chuyn M sang trng thái ti p theo
t trng thái đang xi đang xét vàt ký t va đa đc đc đ c trên b ng vào
\Ho t đt đ ng đong đoán nh n c a ôhh nh sau :
u Câu vào w∈Σ* đ c đc đ t mút trái trên b ng vào
u Lúc đc đ u, đ đ u đu đc v tríw(1) mút trái nht c a b ng
u Ôhh đang Ôhh đang tr ng thái đi đu q0
u u đu đc đc đc l n l t t ng ký t c a w trên b ng,
di chuyn đn đu đu đ c qua phi và thay đ thay đi trng thái
u Ôhh d ng khi mi ký t ca w đã đa w đã đ c đc đc ht vàth a nh n câu,
ho c hóc gi a ch ng (không th a nhn câu vào)
Câu vào w ∈Σ*
Trng thái qi
Trang 2Ví d m t s ôtômat
Green
Red
Yellow
C t đt đèn tín hi u giao thông
B t
Bt
T t
T t
Nh n nút
Nh n nút
Nút công t c thi t b đi đi n
q1
Ch 1 xu
Máy bán báo 5xu/t
q3
1 xu
2 xu
K Nh n K nhn báo và l i trng thái ch
2 xu
1 xu
q2
2 xu
8/56
Mô t hình th c ôtômat h u h n đ n đ n đ n đ nh
\M t ôhh đ n đt ôhh đ n đnh đnh đ c bi u di n hình th c b i b n m:
u M = (Q, Σ, δ, q0, F) trong đ
trong đó:
Q tp h p h u h n các tr ng thái (State)
Σ b ng ch v o h u h n
δ= Q ×Σ→Q là àm chuy n ti p(Transition Function)
q0∈Q làtr ng thá đ u (Initial State)
F ⊆Q làt p h p các tr ng thái cu i(Accepting States)
9/56
Bi u di n ôtômat
\Cho ôtômat M = (Q, Σ, δ, q0, F)
\C th bi u di n M b ng cách nh sau :
u Li t kê h t các thành ph n c a M
u Lp b ng giátr c a hàm dch chuy n δ,
trong đ
trong đócó đ đánh d u các tr ng thái đđ u (q0) vàcu i
u Dùng đng đ th
\Th c t , ng i ta th ng dùng c ch bi u di n đ th
khi s tr ng thái c a ôtômat không quál n
\Trong m t s tr ng h p ng i ta dùng c ch bi u di n
ph i h p li t kê thành ph n vàl p b ng giátr c a hàm
dch chuy n δ
10/56
Ví d bi u di n ôtômat
q2 q1
q3
q3 q0
q2
q0 q3
q1
q1 q2
q0
1 0
Ký t đ c vào
Tr ng thái
\Xét ôtômat h u h n đ n đn đ n đnh M = (Q, Σ, δ, q0, F):
u Σ= { 0, 1 }
u Q = { q0, q1, q2, q3 }
u F = { q0}
u M i ô c a bng bi u din m t quan h δ: δ(q, a) =q’
q , q’∈Q
11/56
Bi u di n ôtômat b ng đ ng đ th
\Cho ôtômat M = (Q, Σ, δ, q0, A)
\Quy c bi u di n M bng đng đ th nh sau :
u Mi tr ng thái c a M làm t đt đnh hình tròn
u Mi chuy n tip làm t cung ni hai đi hai đnh
u Mi cung đi cung đ c đc đánh nhãn làký t đ đ c đc đ c
u Chi u c a cung n i hai đi hai đnh cho bi t s thay đ thay đ i tr ng thái :
¬N u δ(p, a) = q thìcung n i t p sang q cónhãn làa∈Σ
¬C ng cóth vi t (p, a, q) ∈ δ
u Tr ng thái đđ u cóg n m t d u nh n >
u Các tr ng thái cu i đi đ c bi u din b i các vòng tròn ké
12/56
Quy c cách v ôtômat :
\Cho ôtômat M = (Q, Σ, δ, q0, F)
q
> p
q a p
q
a, b p
p là tr ng thái đ u, p = q0
δ(p, a) = q và δ(p, b) = q δ(p, a) = q
q là tr ng thái cu i, q ∈ F
Trang 3Ví d bi u di n ôtômat b ng đ ng đ th
\ th c aôtômat h u h n đ n đn đ n đnh M trong víd tr c
nh sau :
1
0
1 0 1
1
q1 q0
q3 q2
q2 q1
q3
q3 q0
q2
q0 q3
q1
q1 q2
q0
1 0
Ký t đ c vào
Tr ng thái
14/56
Ôtômat đo
Ôtômat đo án nh n câu vào
\Cho câu vào w = 110101
\Quátrình đonh đoán nh n nh sau (ch v t ng tr ng đng tr ng đ u đu đ c) : δ(q0, 110101) ⇒δ(q1, 10101)
⇒δ(q0, 0101) ⇒δ(q2, 101)
⇒δ(q3, 01) ⇒δ(q1, 1)
⇒q0 ôtômat d ng vàth a nhn w do đn w do đ c h t w vàq0∈F
D ng
1
0
1 0 1
1
q1 q0
q3 q2
Tuy nhiên, M không th a nh n câu vào w=110 (hay nh ng câu có m t s l con 0 (ho c con 1)
Tuy nhiên, M không th a nh n câu vào w=110 (hay nh ng câu cóm t s l con 0 (ho c con 1)
M
15/56
Tính ch t c a các câu đ c câu đ c M th a nh n
\T i m i tr ng thái qi, M ghi nh m t tình tr ng nh t đt đnh
c a câu vào đã đo đã đ c nh sau:
q0 : phn đã đn đã đ c g m m t s ch ns 0 vàm t s ch ns 1
q1 : phn đã đn đã đ c g m m t s ch ns 0 vàm t s l s 1
q2 : phn đã đn đã đ c g m m t s l s 0 vàm t s ch ns 1
q3 : phn đã đn đã đ c g m m t s l s 0 vàm t s l s 1
Vìq0 ∈F nên :
uCh nh ng câu cóm t s ch ns 0 vàm t s ch ns 1
m i đi đ c M th a nh n
uHay cóth n i : M ch th a nh n nh ng câu
cóm t s ch ns 0 vàm t s ch ns 1
16/56
Khái ni m hình tr ng (C u hình)
\Cho ôtômat hh M, m t hình tr ng (Configuration) c a M :
ulàc p (q, w)∈Q×Σ* ký hi u C = (q, w) q∈Q, w ph n còn l i ch a đi ch a đ c c a câu và
\Chuy n ti p (Transition) m t b c (one step) trong M (q, w) M(q’, w’), n u vàch n u (n u):
uw = aw’, a∈Σ
uq’= δ(q, a)
\Chuy n ti p nhi u b c trong M, (q, w) M*(q’, w’) n u:
u∃k ≥0 và ác hình trng (qi, wi), 0 ≤i ≤k sao cho:
u(q, w) = (q0, w0)
u(q’, w’) = (qk, wk)
u∀i, 0 ≤i <k, (qi, wi) M(qi+1, wi+1)
q’
a q
M đo
M đo án nh n câu c a ngôn ng
\Ôtômat M đoÔtômat M đoán nh n (Recognition) câu vào w b ng cách
th c hi n dãy chuy n ti p sau:
(q0, w) M(q1, w1) M(q2, w2) M M(qn, ε)
trong đ
trong đóq0 làtr ng thái đđ u, εlàcâu r ng
\M t câu w đt câu w đ c th a nh n b i ôtômat M n u :
(q0, w) M*(q, ε), q ∈F
\Ngôn ng đ đ c th a nh n b i M, vi t quy c L(M) :
L(M) = { w∈Σ* ⏐(q0, w) M*(q, ε), q ∈F }
Ôtômat đo
Ôtômat đo án nh n câu vào
\Cho câu vào w = 110101
\Quátrình đonh đoán nh n nh sau (ch v t ng tr ng đng tr ng đ u đu đ c) : (q0, 110101) M(q1, 10101)
M(q0, 0101)
M(q2, 101)
M(q3, 01)
M(q1, 1)
M(q0, ε) ôtômat d ng vàth a nhn w do đn w do đ c h t w vàq0∈F
1
0
1 0 1
1
q1 q
0 q 0
q3 q2
Trang 4G m nh ng câu
có “láo nháo các con a và b”
r i k t thúc b i m t con b
Trong cu c s ng : “Anh ta nói “r ng thì là mà là” gi a láo nháo các câu !
G m nh ng câu
có“láo nháo các con a và ”
r i k t thúc b i mt con b
láo nháo các câu !
M t s ví d 1
\L(M) làngôn ng g m các câu k t thúc b i b
u L(M) = (a+b)*b
u Víd aaabbb = a3b3∈L(M)
\Bài t p t i l p :
Ki m tra các câu :
u w = bababaab∈L(M) ?
u w = bababaa∈L(M) ?
Dùng cách vi t g n :
q0bababaab>q1ababaab>
b
q0
a
b
20/56
M t s ví d 2
a
q0
q2
b a
\L(M) làngôn ng không ch a hai ch a liên ti p
u Víd bbaba∈L(M)
\Bài t p t i l p :
Ki m tra các câu :
u w = bababab∈L(M) ?
u w = aababb∈L(M) ?
21/56
Các ôtômat h u h n đ n đ n đ n đ nh
\Nh ng ôtômat h u h n v a xét tr cc đây đcc đây đ u đ n đnh
v i đi đ c tính :
u Ti m i thi đii đi m, ôhh ch đ đ c duy nh t mt ký t a∈Σ,a≠ε
u V i m i tr ng thái q, sau khi ôhh đ sau khi ôhh đ c xong a, luôn đ luôn đ t đt đ c
m t tr ng thái xác đc đnh q’
Ngha làchuy n ti p :
δ(q, a) = q’⊆Q
luôn đ n đ
luôn đ n đnh (hay TI N NH)
22/56
Ôtômat h u h n không đ n đ n không đ n đ nh
\Ôtômat h u h n không đ n đn không đ n đnh (ôhh kđđhh kđđ) (NFA -Non-deterministic Finite-State Automata)
cóc c đc đ c tính :
u Cùng m t ký t , m t trng thái cóth cónhi u chuy n ti p, ngha làδ(q, a) = q’⊆Q
u T n t i chuy n ti p cho câu r ng δ(q, ε) = q’⊆Q (ngha là đ đ u đu đ c không ti n t i khi đi khi đ c câu vào)
u Cóth cócác chuyn ti p (nhóm các chuy n tip) cho các ph n câu có đ đ d i l n h n 1,
ngha làδ(q, u) = q’⊆Q, u ∈Σ*, |u| > 1
23/56
Nh n xét
\M t ôhh kđđ đt ôhh kđđ đ c đc đnh ngha hình th c gi ng ôhh đđng ôhh đđ
\S khác nhau th hi n :
u V iôhh đđ lôhh đđ là àm chuy n ti p δ(Transition Function)
u V iôhh kđđ lôhh kđđ làquan h chuy n ti pΔ(Transition Relation)
đ c đc đnh ngha ta t ng tng t ôhh đđôhh đđ, nh ng l n này vi c chuy n
ti p làkhông duy nh t
¬V i m i trng thái, cóth cónhiu tr ng thái tip theo cho mi
ký t đ đ c vào, ch ng hn δ(q a)cho q1 vàq2
¬S d ng b ba (p, σ, q) đ đ n i rng n u ký t đ đ c vào làσthìcó
th chuyn t trng thái p sang trng thái q
¬T i mi thi đii đim đm đu đu đ c cóth đ đ c mt phn câu u ∈Σ*
24/56
nh ngh a hình th c ôhh kđđ c ôhh kđđ
\Ôtômat h u h n không đ n đn không đ n đnh làb n m:
M =(Q, Σ, Δ, q0, A) trong đ
trong đó:
Q làtp h p h u h n các tr ng thái
Σlà ng ch h u h n
Δ⊂(Q ×Σ* ×Q)làquan h chuy n ti p q0 ∈Q làtrng thái đđ u
F ⊆Q làt p h p các trng thái th a nhn
Trang 5Ví d ôhh kđđ ôhh kđđ
\Cho ôhh kđđ Cho ôhh kđđ :
u M =({ q0, q1, q2, q3, q4 },
{ 0, 1 },
Δ,
q0,
{ q2, q4 })
u v i Δ đ đ c cho nh sau :
{ q4 } { q4 }
q4
∅ { q4 }
q3
{ q2 } { q2 }
q2
{ q2 }
∅
q1
{ q0, q1 } { q0, q3 }
q0
1 0
q1 1
0, 1
1 0
0, 1
0, 1 q3
q2
q4
26/56
Ví d ôhh kđđ ôhh kđđ đoán nh n câu
\Cho w =01001 ôhh kđđ M ôhh kđđ M đ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 đ Câu w đ c M th a nhn vì:
¬M đM đ c ht câu
¬M tr ng thái cu i
L(M) = (0+1)*00(0+1)*+ (0+1)*11(0+1)*
q1 1
0, 1
1 0
0, 1
0, 1 q3
q2
q4
27/56
Kh n ng có nhi u chuy n ti p
M(q3, 1001)
M(q1, 001) (q0, 01001)
M(q4, ε)
M(q4, 1)
M(q3, 01)
M(q0, 1001)
h c !
M(q3, 1)
M(q0, 001)
M(q0, 01)
M(q0, ε)
M(q0, 1)
q1
1
0, 1
1
0
0, 1
0, 1
q3
q2
q4
28/56
Ví d ôhh kđđ ôhh kđđ
\Ngôn ng đ đ c th a nh n b i ôtômat M : L(M)=((a ∪ab)*bbbbΣ*)∪((a∪ab)*abb(aa)*aΣ*)
q2
>
a
q4
q3
q1
b
bbb
ab
q0
aa ε
a, b
b
a
Ví d ôhh kđđ ôhh kđđ
\Ngôn ng đ đ c th a nh n b i ôtômat M :
L(M)=Σ*ab(ab)*
ngha làt p h p các câu kt thúc ít nh t mt l n l p ab
Víd , câu aaabab ∈L(M)
>
q1 b
Chuy n ti p trong ôhh kđđ p trong ôhh kđđ Cho ôhh kđđ M
Cho ôhh kđđ M
\Chuy n ti p m t b c trong M (q, w) M (q’, w’) n u:
w =uw’: câu w bt đt đ u b i tin t u ∈Σ*
(q, u, q’) ∈Δ
\Chuy n ti p nhi u b c trong M (q, w) M*(q’, w’) n u:
u ∃k ≥0 và ác hình trng (qi, wi), 0 ≤i ≤k sao cho:
u (q, w) = (q0, w0)
u (q’, w’) = (qk, wk)
u ∀i, 0 ≤i <k, (q, ) (q , w )
Trang 6ánh giá các ôhh kđđ c ôhh kđđ
\ Th c t :
uTính không đ n đnh không đ n đnh không thêm kh n ng c a các ôhh
uCóth thay th m t ôhh kđđ ôhh kđđb i m t ôhh đđ ôhh đđ t t ng đ ngng đ ng
\ Hai ôtômat hh M vàM’ à t t ng đ ng vng đ ng v i nhau
n u cùng th a nh n m t ngôn ng : L(M) = L(M’)
\ Phân bi t gi a ôhh kđđ ôhh kđđNFA vàm t ôhh đđ ôhh đđDFA:
uT n t i các chuy n ti p trên các ph n câu vào (câu con)
có đ đ d i l n h n 1
uT n t i các chuy n ti p cho cùng m t tr ng thái vàcùng m t
n i dung c a b ng vào (tính không đ n đnh không đ n đnh)
32/56
Xây d ng ôhh đđ M ng ôhh đđ M ’ t ôhh kđđ M ôhh kđđ M
\Cho tr c ôhh kđđ Mc ôhh kđđ M, L(M) làngôn ng đ đ c M th a nh n, khi đkhi đó:
u Cóth xây d ng ôhh đđ Mng ôhh đđ M’t t ôhh kđđ M ôhh kđđ M
u M’là ôhh đđ t ng đ ng v ôhh đđ t ng đ ng v i M, L(M’) = L(M)
\Vi c xây d ng M’g m hai giai đom hai giai đo n :
u Giai đoGiai đo n 1 :
Kh b các chuy n ti p có đ đ d i >1 c a M, nh n đn đ c M1
u Giai đoGiai đo n 2 :
Kh b tính không đ n đnh không đ n đnh c a M1 nhn đn đ c M’
33/56
Kh b các chuy n ti p có đ đ d i >1
\Cho NFA M =(Q, Σ, Δ, q0, F),
xây d ng M1 =(Q1, Σ1, Δ1, q01, F1), trong đtrong đó:
u Q1 = Q, q01= q0,Δ1 = Δv F1 = F
u V i m i chuy n ti p (q, u, q’)∈Δcóu = σ1σ2 , σk (k>1):
¬Lo i b chuy n ti p này khi Δ1
¬Thêm k-1 tr ng thái m i p1, p2, , pk-1 v o Q1
¬Thêm k chuy n ti p m i vào Δ1 :
(q, σ1, p1), (p1, σ2, p2), , (pk-1, σk, q’)
\M1 nh n đn đ c không ch a các chuy n ti p trên câu có đ đ
dài l n h n 1, ngha là∀(q, u, q’)∈Δ1, |u| ≤1
b
p2
c q’
34/56
Kh b tính không đ n đ nh không đ n đ nh
\Gi s M = (Q, Σ, Δ, q0, F) trong đ trong đó:
u M i chuy n ti p (q, u, q’)∈Δ, |u| ≤1 ngha làm i chuy n ti p c a NFA M có ng :
¬ho c (q, σ, q’), σ∈Σ
¬ho c (q, ε, q’)
\Xây d ng DFA M’= ( Q’, Σ, δ’, q0’, F’) t t ng đ ng vng đ ng v i M qua hai b c nh sau :
u X lý các chuyn ti p đp đ i vi câu r ng εd ng (q, ε, q’)
g i t t làchuy n ti p r ng, hayε-chuy n ti p
u Xây d ng DFA M’
35/56
X lý các chuy n ti p r ng
\Th c t , m t DFA không cóc c chuy n ti p cho câu r ng ε
u Cn nhóm tt c các chuy n ti p rng c a M
v i m t chuy n ti p c a mt ph n t cu Σ: δ(q, a), a∈Σ
\Xây d ng t p h p E(q) nh sau :
u V i m i q∈Qc a M, E(q)làt p các tr ng thái cóth đ đ t đt đ c
t q b i m t dãy chuy n ti p trên câu r ng:
E(q) = { p∈Q |(q, w) M* (p, w) }
u Nh vy, v i q đã choi q đã cho, t p h p E(q)g m các tr ng thái p mà
trong s đ
trong s đ bi u din ôtômat, t n t i mt đt đ ng đi tng đi t q sang
p cónhãn làcâu r ng ε
p1
p2 ε
36/56
Ví d xây d ng t p h p E(q)
\Cho ôtômat h u h n không đ n đn không đ n đnh M
\Xây d ng t p h p E(q):
a
ε
> q0
q2
b ε
b a a
E(q0) = { q0, q1, q3} E(q1) = { q1} E(q2) = { q2} E(q3) = { q3} E(q4) = { q3, q4}
E(q0)= { = { q0, q, 1, q, 3} E(q1)= { = { q1} E(q2)= { = { q2} E(q3)= { = { q3} E(q4)= { = { q3, q4}
Trang 7Xây d ng DFA M’
\Gi s đã x đã x lý ε-chuy n ti p vàXD xong các E(q), ∀q∈Q
Xây d ng các ph n t c a DFA M’~ NFA Mnh sau :
uM’= ( Q’, Σ, δ’, q0’, F’)
uM i trng thá q∈Q’c a M’làm t t p con tr ng thái c a M,
Q = 2Q
uq0’=E(q0)
tr ng thái màt đ đó, M cóth ti n hành đnh đ c câu vào, k c ε
uδ’(q, a) = ∪{ E(p) | ∃q ∈q: (q, a, p) ∈Δ}
uF’= { q∈Q’|q∩F ≠∅}
38/56
S đ
S đ thu t toán xây d ng DFA M’
Input: M = ( Q, Σ, Δ, q0, F) Output: M ’= ( Q’, Σ, δ’, q0’, F’)
Begin
q0’= E(q0) ; Q’= { q0’}
Do
L y q∈Q’
Do
Ly a∈Σ Tìm p= δ(q, a) = ∪{ E(p) | ∃q ∈q: (q, a, p) ∈Δ}
Q’= Q’∪{ p}
WhileKhông còn a∈Σ ch a x lý
While Q ’ không thay đ không thay đ i (không còn pnào khác phi thêm vào Q’) F’= { q∈Q’|q∩F ≠∅}
End
39/56
Ví d xây d ng DFA t NFA
q3, q4
q1, q3
q3
q3
q1, q2
q4
∅
∅
q2
q2, q3
q2
q1
∅
∅
q0
b a
b a
ε
> q 0
q 3 q 4
q 2
ε
b a a
b a
NFA
a
{q3, q4}
{q2, q3, q4} b
{q1, q2, q3}
> {q0, q1, q3}
a
b
a
DFA~NFA
b
40/56
Ví d xây d ng DFA t NFA NFA không cóε-chuyn tip :
q2
∅
q3
∅
q3
q2
q2
q1
q1
q0
q0, q1
q0
b a
b
q1
a
b a
a
a
{q0, q2}
> {q0}
b
a
a
b a
DFA~NFA
b
b
{q0, q1 , q3}
Ví d xây d ng DFA t NFA
∅ D D
B, D
∅ C
∅ C B
∅
A, B, D A
1 0
DFA~NFA
NFA
ε
B
> A
C
0
0 ε
1
D 0
E(A) = A, B, D E(B) = B, D E(C) = C E(D) = D
E(A) = A, B, D E(B) = B, D E(C) = C E(D) = D
D
0
B, D
1
A, B, C, D 0
C, D 0
1 1
1
Quan h gi a ôhh và BTCQ
\Cho L làm t ngôn ng chính qui, M làm t ôtômat h u h n
\M t ngôn ng làchính qui n u vàch n ungô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 biu th c chính qui, thìngôn ng đ đó đ đ c th a nh n b i m t ôtômat h u h n không đ n đ
không đ n đnh
L = L(α) ⇒L = L(M)
u M t ngôn ng đ đ c th a nh n b i m t ôtômat h u h n không đ n đ
không đ n đnh làchính qui
L = L(M) ⇒L = L(α)
Trang 8Xây d ng ôhh t bi u th c chính qui
\Minh ho tính ch t : L = L(α) ⇒L = L(M) nh sau :
u V i m i BTCQ c s α=∅, α=ε, α= a, a∈Σ,
XD đ
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àα=((α1)*)
¬Gi M1v M2l n l t là ác ôhh th a nh n L(α1) vàL(α2)
¬XD đXD đ c ôhh M th a nhn L(α) t M1v M2
44/56
Xây d ng ôhh t các BTCQ c s
Ôtômatth a nh n ∅
Ôtômatth a nh n ε
Ôtômatth a nh n a∈Σ a
45/56
Xây d ng ôhh t các BTCQ đ n gi c BTCQ đ n gi n
Ôtômatth a nhn a∈Σ a
Ôtômatth a nhn a∪b
Ôtômatth a nhn a∪b
a, b a
b
a
a
Ôtômatth a nhn a*
Thu g n
tr ng thái
Thu g n
tr ng thái
46/56
XD ôhh M th a nh n L(α1∪α2) t M1 và M2
\Cho các ôhh :
u M1= (Q1, Σ, Δ1, s1, F1), cóL(M1)= L(α1)
u M2= (Q2, Σ, Δ2, s2, F2), cóL(M2)= L(α2)
\XD ôhh M th a nh n L(α) = L(α1∪α2)t M1v M2 :
M
M1
M2
M1
M2
Ghép hai ôtômat
Ghép hai ôtômat
47/56
XD ôhh M th a nh n L(α1α2) t M1và M2
\Cho các ôhh :
uM1= (Q1, Σ, Δ1, s1, F1), cóL(M1)= L(α1)
uM2= (Q2, Σ, Δ2, s2, F2), cóL(M2)= L(α2)
\XD ôhh M th a nhn L(α) = L(α1α2)t M1v M2 :
uQ = Q1∪Q2; Δ= Δ1∪Δ2∪{ (q, ε, s2) ⏐q∈F1} ; q0= s1; F = F2
M
M1
M2
Ghép hai ôtômat
Ghép hai ôtômat
48/56
XD ôhh M th a nh n L(α1*) t M1và M2
\Cho ôhh :
uM1= (Q1, Σ, Δ1, s1, F1), cóL(M1)= L(α1)
\XD ôhh M th a nh n L(α) = L(α1)t M1:
uCóth gi thit r ng ε∉L(M1)
M
ε
ε ε ε
Trang 9Xây d ng các ngôn ng 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ính quy ch
đnh L(M),
ngha là:
u L = L(M) ⇒L = L(α)
\Cách xây d ng nh sau :
u X t các đc đ ng đi tng đi t q0 đ đ n qj, qj∈F trong M
u BTCQ αjnh n đn đ c tc t ng ng ng v i m i đi đ ng đi lng đi là:
¬Ghép (c ng) liên tip các nhãn c a các chuy n tip
¬Các vòng lp đp đ c biu din bi phép toán l p *
u BTCQ αmong mu n là p (Union) c a các αjnhn đn đ c
\Riêng đRiêng đ i v i các vòng l p, c n xây d ng BTCQ tng BTCQ t ng ng ng
v i các đc đ ng đi nng đi n i hai tr ng thái cóvòng l p
50/56
X lý các vòng l p b ng quy n 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âu αij = Path(qi, qj)
u Trong đTrong đóPath(qi, qj) là đ đ ng đi tng đi t qi đ đ n qjb ng cách
ch chuy n qua k-1 tr ng thái { q1, q2, , qk-1}
\ nh ngha R(i, j, k) v i k = 1 (c s quy n p b c 1),
x y ra hai tr ng h p :
u N u i ≠j,
αij= Path(qi, qj) = { w | (qi, w, qj) ∈Δ}
u N u i = j,
αij= Path(qi, qj) = { ε} ∪{ w | (qi, w, qj) ∈Δ}
51/56
nh ngh a R(i, j, k) v i k > 1
\V i k>1,
d ng phng ph ng phng pháp quy n p tính αij = Path(qi, qj), ∀qi, qj :
u Gi s ∀αij đã đ c xây d ng (gi thi t quy np b c k)
R(i, j, k) = Path(qi, qj) đi qua k−1 tr ng thái { q1, q2, , qk-1}
u Xây d ng R(i, j, k+1) ( quy n p b c k+1)
g m các đc đ ng đi chng đi ch đi qua đi qua { q1, q2, , qk-1} :
¬Path(qi, qk) nh n đn đ c t qi đ đ n qk,
¬Path(qk, qk)*do nhn đn đ c t qk đ đn qkmt s l n tu ý (*)
¬Path(qk, qj) nhn đn đ c t qk đ đn qj
\Ta có:
R(i, j, k+1) = R(i, j, k) ∪R(i, k, k) R(k, k, k)*R(k, j, k)
52/56
Mô hình các đ c đ ng đi t ng đi t ính R(I, j, k)
R(i, j, k), Path(qi, qk)
qj R(i, k, k),
Path(qk, qj)
R(k, k, k)* , Path(qk, qk)*
L(M) = R(1, j, n+1)
qj∈A
L(M) = R(1, j, n+1)
qj∈A
∪
Gi thit M cón trng thái, q1làtr ng thái đi đ u, ta có:
Nh n xét
\Cho ôtômat M cón tr ng thái, gi s làq1tr ng thái đi đ u,
v M cóm tr ng thái cu i i qj1, , qj2, , , , qjm
\Ngôn ng th a nh n b i M làh p c a t t c c c t p h p
câu R(i, j, n+1), xu t hin trong các chuy n ti p t tr ng thái
đ u đu đ n m t trong nh ng tr ng thái cu i, b ng cách v t
qua t t c c c tr ng thái c a M
R(i, j2, n+1)
q
qj1
R(i, jm, n+1)
>
R(i, j1, n+1)
Ví d
\Cho ôtômat M :
u V i k=1 và k=2, R(i, j, đ đ c đc đnh ngha nh sau :
a
>
b
a
b
ε∪b a b ε∪a
k = 1
(ε∪b)∪a(ε∪a)*b R(2,2,1)∪R(2,1,1)R(1,1,1)*R(1,2,1)
R(2,2,k)
a∪a(ε∪a)*(ε∪a) R(2,1,1)∪R(2,1,1)R(1,1,1)*R(1,1,1)
R(2,1,k)
b∪(ε∪a)(ε∪a)*b R(1,2,1)∪R(1,1,1)R(1,1,1)*R(1,2,1)
R(1,2,k)
(ε∪a)∪(ε∪a)(ε∪a)*(ε∪a) R(1,1,1)∪R(1,1,1)R(1,1,1)*R(1,1,1)
R(1,1,k)
k = 2
Trang 10Tìm L(M)
\Ngôn ng đ đ c th a nh n b i M là:
L(M) =
R(1, 2, 3) = R(1, 2, 2)∪R(1, 2, 2)R(2, 2, 2)*R(2, 2, 2)
R(1, 2, 2)(ε∪R(2, 2, 2)+)
R(1, 2, 2)R(2, 2, 2)*
b∪(ε∪a)(ε∪a)*b((ε∪b)∪a(ε∪a)*b)*
56/56
Bài t p ch p ch ng ng 2
1. Xây d ng các NFA th a nhn các ngôn ng sau đây sau đây :
u Bi u din nhphân các s ch n
u Các câu trên bng ch Σ= { a, b } ch a aab ho c aaab
2. Xây d ng các DFA th a nhn các ngôn ng đã cho đã cho 1 trên đâytrên đây
3. Xây d ng các ôtômat th a nhn các biu th c chính quy :
u a*b
u ε∪(a ∪aab)*
4. Xây d ng các biu th c chính quy t ôtômat sau đây ôtômat sau đây :
a
q1
>
b b a
b