Tải bản đầy đủ (.pdf) (10 trang)

Ngôn ngữ hình thức và ôtômat chương 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (376.98 KB, 10 trang )

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à

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à

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



×