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

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

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 (389.37 KB, 11 trang )

Ch

ng 4 Ôtômat đ y xu ng

\ Ôtômat đ y xu ng

Ngôn ng hình th c và Ôtômat
(Formal Language & Automata)
Automata)

u

Ngôn ng phi ng c nh

u

Quan h v i cá
các ôtômat đ y xu ng

u

Tính ch t c a cá
các ngôn ng phi ng c nh

\ Khá
Khái ni m v cây phân tí
tích
nh lý “b m”
m” và ng d ng

u



PGS.TS. Phan Huy Khá
Khánh

u



Các thu t gi i cho cá
các ngôn ng PNC

\ Ôtômat đ y xu ng đ n đ nh

Ch ng 4
Ôtômat đ y xu ng

u

Nguyên lý

u

Hình th c hó
hóa

u

Các ngôn ng PNC đ n đ nh

u


Tính ch t c a cá
các ngôn ng PNC đ n đ nh
2/65
2/65

Mô t ôtômat đ y xu ng (ôđx
(ôđx))

Ho t đ ng c a ôđx

\ M t ôđx không đ n đ nh
(NSA : NonNon-deterministic Stack Automaton,
hay NPA : NonNon-deterministic Pushdown Automaton)
Automaton)
có m t s ph n t t ng t ôhh :
u M t b ng và
vào ch a câu s đ c đoá
đoán nh n ( mút trá
trái nh t)
u M t đ u đ c đ c l n l
t cá
các ký t c a câu trên b ng
u M t t p h p cá
các tr ng thá
thái, trong đó
đó có m t tr ng thá
thái đ u và

m t s tr ng thá

thái cu i (tr ng thá
thái đ t đ c)
u M t quan h chuy n ti p là
làm thay đ i tr ng thá
thái
v i m i ký t đ c đ c rên b ng
Ngoà
Ngoài ra, NSA còn có
có :
u M t danh sá
sách đ y xu ng (Stack/Pushdown
(Stack/Pushdown List)
List) (DS
(DS X)
X)
có th ch a không h n ch các ký t nào đó
đó
u M t đ u ghi đ có th ghi lên DS X

Ho t đ ng đoá
đoán nh n Ôđx không đ n đ nh nh sau :
ng t m t ôhh không đđ,
đđ,
câu và
vào w∈
w∈Σ* đ c đ t mút trá
trái trên b ng và
vào

uT


đ u, đ u đ c v trí
trí w(1)
w(1)
DS X r ng và
và ôđx đang tr ng thá
thái đ u q0

u Lúc
u

uđ cđ cl nl

t t ng ký t c a w trên b ng

nhì
nhìn m t ph n câu trên đ nh DS X (Top) đ thay th
(Pop(Pop-Push) b ng cá
cách ghi (đè) lên m t dãy ký t

u Ôđx
u Ôđx

di chuy n đ u đ c qua ph i và
và thay đ i tr ng thá
thái

d ng khi m i ký t c a w đã đ c đ c h t
và th a nh n câu, ho c hó
hóc gi a ch ng


u Ôhh

3/65
3/65

4/65
4/65

Minh ho ho t đ ng c a ôđx

nh ngh a hì
hình th c ôđx
\ M t NSA là
là m t b 7 : M = (Q, Σ, Γ, Δ, Z, q0, A)
A), trong
trong đó
đó :
u

Q là
là t p h p h u h n cá
các tr ng thá
thái

u

Σ là b ng ch vào h u h n (Input Alphabet)
Alphabet)


u

Γ là b ch đ y xu ng h u h n (Stack Alphabet)
Alphabet)

u

Z ∈ Γ là ký t đ u c a DS X (Initial Stack Symbol)
Symbol)

β

u

q0 ∈ Q là
là tr ng thá
thái đ u

γ

u

F ⊆ Q là
là t p cá
các tr ng thá
thái cu i

u

Δ ⊂ ((Q × Σ* × Γ*) × (Q × Γ*)) là

là quan h chuy n ti p

Câu và
vào trên b ng w=a
w=anbn
a
qi

a

a

b

b

b

α
γ

Tr

c : trên đ nh DS X là
là α

a

a
qi+1


a

b

b

b

Sau : trên
trên đ nh DS X là
là β

5/65
5/65

g m m t t p h p h u h n cá
các quan h ((p, u, β), (q, γ))
p, q ∈ Q ;

u ∈ Σ* ;

β, γ ∈ Γ*

6/65
6/65

1



Mô t

Các khá
khái ni m

\ B ch đ y xu ng Γ c a ôđx :
u

Ch a t p h p cá
các ký t s đ

u

Không nh t thi t phân bi t Γ v i Σ (có
(có th Γ∩Σ ≠ ∅)

\ Ng i ta c ng đ nh ngh a m t cá
cách hì
hình th c
t ng t các ôhh, nh ng có
có m t c a DS X cá
các khá
khái ni m :
u C u hì
hình
u Chuy n ti p m t b
c
u Chuy n ti p nhi u b
c
u Ôđx đoá

đoán nh n câu và
vào

c đ a và
vào trong DS X

\ Ký t Z là
là ký t đ u hay n i dung ban đ u c a DS X
\ Các chuy n ti p ((p, u, β), (q, γ)) trong Δ :
u T
ng t m t ôhh không đđ
u

u

Có thêm ho t đ ng chuy n ti p c a DS X :
¬ Câu

¬

c th a nh n b i ôđx


vào b t đ u b i ti n t u : w = uw’
uw’

¬ Ôtômat
¬ Ph

NN đ


chuy n t tr ng thá
thái p sang tr ng thá
thái q

n câu β đang n m trên đ nh c a DS X
u đ c đ c xong ti n t u c a câu và
vào

¬ Thay

th

β trên đ nh DS X b i câu ph n γ
7/65
7/65

8/65
8/65

C u hì
hình

Chuy n ti p m t b

\ C u hì
hình c a ôđx
Là b ba C = (q, u, α) ∈ Q × ∑* × Γ*
Trong đó
đó :

Q∈Q

là tr ng thá
thái c a ôtômat

u ∈ ∑*

là m t ph n c a câu và
vào s đ

α ∈ Γ*

là n i dung c a DS X

\ Cho ôđx M,
M, ta nó
nói :
C u hì
hình C’
C’=(q’, w’
w’, α’) nh n đ c t C=(
C=(q, w, α)
Kí hi u : (q, w, α) M (q’
(q’, w’
w’, α’) n u :
¬ w = uw’
uw’ ( câu w có
có ti n t u ∈ ∑*)
¬ α = βδ
( tr c khi chuy n ti p, đ nh DS X ch a β∈Γ*

n u đ c t trá
trái qua ph i)
¬ α’ = γδ
( sau khi chuy n ti p, ph n β c a DS X
đ c thay th b i γ,
ký t đ u tiên c a γ bây gi n m đ nh DS X )
¬ ((q, u, β),
β), (q’, γ)) ∈ Δ

c x lý

u ph n câu s x lý

V
abbb, AZ)
Víí d C = (q11, aaabbb,
Vi t g n :
q11a
abbbAZ
aabbbAZ

a

a

a

q11

b


b

c

b

A
Z
9/65
9/65

Minh ho chuy n ti p m t b

10/65
10/65

c

Chuy n ti p nhi u b
\ C u hì
hình C’
C’ nh n đ

Ph n câu x lý w=uw’
w=uw’
u
p

w’


α
δ

Tr

u

α = βδ

c khi chuy n ti p

ký hi u : C

Ph n câu x lý w’
w’

M

β
δ

c t C qua nhi u giai đo n

C’

n u

w’
q


*
M

c

∃k≥0 và
và k-1 c u hì
hình trung gian C0, C1, C2, ..., Ck
α’ = γδ

sao cho :
C = C0, C’
C’ = Ck, Ci

M

Ci+1 v i 0 ≤ i < k

Sau khi chuy n ti p

11/65
11/65

12/65
12/65

2



Ôđx đoá
đoán nh n câu và
vào

Ôđx th a nh n câu và
vào

\ Cho ôđx M và
và m t câu và
vào c n x lí w ∈ ∑

\ Cho ôđx M=(
Q, ∑, Γ, Δ, Z, q0, F)
M=(Q,
F) và m t câu và
vào w∈
w∈∑*

\ M t đoá
đoán nh n (Execution)
Execution) c a M trên w là
là dãy c u hì
hình :

\ Ôđx th a nh n câu w n u quá
quá trì
trình đoá
đoán nh n đ t đ n m t
trong cá
các tr ng thá

thái k t thú
thúc :
u Ph n câu x lí còn l i r ng
u (q0, w, Z) *M ( p, ε, γ ) v i p ∈ F

*

( q0, w, Z)
Z)

M

( q1, w1, α1)

M

...

M

( qn, ε, γ)

trong đó
đó q0 là tr ng thá
thái đ u, Z là
là ký t đá
đáy c a DS X và
và ε là câu r ng
\ Mô t :
u


Lúc đ u, DS X ch a ký t đá
đáy Z (đ

u

Câu w đang n m trên b ng và
vào, đ u đ c

u

M ti n hà
hành đoá
đoán nh n w b ng cá
cách th c hi n liên ti p
các b c chuy n ti p Ci M Ci+1

u

M d ng đoá
đoán nh n :
¬ ho

c

¬ ho

c M b hóc

c xem là

là DS r ng)
mút trá
trái nh t w(1)

\ Do ôđx M không đ n đ nh, nên có
có th có
nhi u phé
phép đoá
đoán nh n khá
khác nhau trên cù
cùng m t câu và
vào

m t tr ng thá
thái k t thú
thúc, ph n câu x lí còn l i r ng
m t tr ng thá
thái nà
nào đó
đó

13/65
13/65

14/65
14/65

Bi u di n ôtômat đ y xu ng

Dùng đ th bi u di n ôđx


\ Cho ôtômat M = (Q, ∑, Γ, Δ, Z, q0, F)
F)

\ Cho ôđx M = (Q, ∑, Γ, Δ, Z, q0, F)
F)
quy c v M nh sau :

\ Có th bi u di n M t ng t các ôhh nh sau :
u B ng cá
cách li t kê h t cá
các thà
thành ph n c a M
u Dùng đ th

p là tr ng thái đ u, p = q0

> p

\ 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
p

u, α|β

q


((p, u, α), (q, β)) ∈ Δ
q là tr ng thái cu i, q ∈ F

q

15/65
15/65

16/65
16/65

Ví d 1 : ôđx đ n đ nh
\ Ngôn ng { anbn | n ≥ 0 } đ

Ôđx M1 đoá
đoán nh n câu anbn

c th a nh n b i ôđx M1 :

Q = { s, p, q }
∑ = { a, b }
Γ = { A }, F = { q }
Δ g m cá
các chuy n ti p :
(s, a, ε) → ( s, A)
(s, b, A)
A)
A) → ( p, ε)
(s, ε, Z)

(p, b, A)
(p, ε, Z)
Z) → ( q, ε)
A) → (p, ε)
Z) → (q, ε)
VV aa đđ cc vv aa ghi
ghi nh
nh
AA và
ào DS
vvào
DS XX
nn con
a
đã
đ
c
con a đã đ c

\ Cho câu và
vào a3b3, ôđx M1 th c hi n đoá
đoán nh n nh sau :
saaabbbZ

M1

M1 pbbAAZ

> s
XX lý

lý câu
câu rr ng
ng

ε ∈ annbnn

b, A|ε
p

ε, Z|ε

sabbbAAZ

M1 pbAZ

M1

sbbbAAAZ ghi nh a

M1

pZ

ki m tra b
th a nh n

a, ε|A
> s

b, A|ε


M1



cc tt ng
ng con
con bb
vvà
à xoá
á đđ nh
xo
xoá
nh DS
DS XX
llà
à con
con AA

a, ε|A

saabbbAZ

b, A|ε

b, A|ε
p

ε, Z|ε


q

ε, Z|ε
q

\ Nh v y M1 th a nh n cá
các câu anbn, n≥0, ta vi t L(M1) = anbn

ε, Z|ε
17/65
17/65

18/65
18/65

3


Ví d 2 : ôđx không đ n đ nh

Cách v khá
khác c a ôđx M1

\ Ngôn ng {wwR} đ

Có th v ôđx M1 theo cá
cách khá
khác nh sau :

Q = { s, p, q}


c th a nh n b i M2 nh sau :

∑ = { a, b }

Γ = { A, B }

F={q}

Δ ch a cá
các chuy n ti p :
a, Z|AZ

a, A|AAZ
b, A|ε

>

b, A|ε

s

ε, Z|ε

p

(s, a, ε) → (s, A)
A)

(s, ε, ε) → (p, ε)


(p, b, B)
B) → (p, ε)

(s, b, ε) → (s, B)
B)

(p, a, A)
A) → (p, ε)

(p, ε, z)
z) → (q, ε)

VV aa đđ cc vv aa ghi
ghi nh
nh
A,
ào DS
vvào
A, BB và
DS XX
ccác
ác con
con a,
a, bb đã
đã đđ cc

q

ε, Z|ε


a, ε|A

ε ∈ wwRR

\ Cho câu và
vào abba, ôđx M2 th c hi n đoá
đoán nh n nh sau :
sbbaAZ

M2

pbaBAZ

M2

paAZ

M2

M2

ghi nh a,
a, b đã đ c

sbaBAZ

pZ




20/65
20/65

\ V n câu và
vào abba, ôđx M2 th c hi n đoá
đoán nh n nh sau :
M1

sbbaAZ

M2

sbaBAZ

ghi nh a,
a, b đã đ c

chuy n d ch không đ n đ nh

M2

saBBAZ

M2

sABBAZ

hóc : không th đ c ti p a hay b !


ki m tra a, b đ xoá
xoá A,
A, B trên DS X

M2

pABBAZ ???

a, ε|A

sabbaZ

c ng v n hó
hóc : không th đ c ti p

ε, ε|ε

a, ε|A

ε, Z|ε

p

> s

q

Γ = { A, B }

F={p}


(s, a, ε) → (s, A)
A)

( s, ε, ε) → (p, ε)

(p, b, B)
B) → (p, ε)

(s, b, ε) → (s, B)
B)

(p, a, A)
A) → (p, ε)

(p, ε, Z)
Z) → (p, ε)

22/65
22/65

V n ph m phi ng c nh

\ T G, có
có th đ nh ngh a NN PNC :
L = L(G)
\ M t NN L là
là PNC n u t n t i m t VP PNC s n sinh ra L

a, A|ε


p

ε, Z|ε

\ Theo phân c p VP c a Chomsky, VP phi ng c nh (PNC) :
G = ( N, ∑, R, S )
g m cá
các s n xu t d ng A → β
v i A ∈ N, β ∈ (N∪∑)
∪∑)* = V*, không có
có h n ch gì trên β

Δ g m cá
các chuy n ti p :

ε, ε|ε

b, B|ε

q

21/65
21/65

\ Có th xây d ng ôđx M3 g m ch hai tr ng thá
thái
M3 th a nh n ngôn ng wwR v i DS X r ng :

a, ε|A


ε, Z|ε

p

Chuy n d ch
không đ n đ nh

Ví d 3 ôđx không đ n đ nh hai tr ng thá
thái
∑ = { a, b }

a, A|ε

ε, ε|ε
b, ε|A

ε, Z|ε

b, B|ε
Chuy n d ch
không đ n đ nh

> s

ôtômat không th a nh n câu abba !

a, A|ε

b, ε|A


Q = { s, p }

ε, Z|ε

b, B|ε

th a nh n câu abba (thà
(thành công)

> s

q

Ôđx M2 đoá
đoán nh n câu abba th t b i

Ôđx M2 th a nh n câu abba
M1

ε, Z|ε

p

b, ε|A

XX lý
lý câu
câu rr ng
ng

19/65
19/65

a, A|ε

ε, ε|ε

> s

sabbaZ

cc tt ng
ng con
con a,
a, bb
vvà
à xoá
á đđ nh
xo
xoá
nh DS
DS XX
llà
à con
con A,
A, BB

b, B|ε

ε, Z|ε

b, ε|A

ε, Z|ε
23/65
23/65

24/65
24/65

4


Ví d các VP2
\D

Quan h gi a VP2 và ôđx

u

G1 { S → aSb | ε }

L(G1) =

u

G2 { S → aSa | bSb | ε }

L(G1) = wwR

u


\ Các ngôn ng th a nh n b i cá
các ôtômat đ y xu ng có
có th
đ c sinh b i cá
các v n ph m PNC và
và ng c l i

i đây là
làm t s VP PNC :

G3 { S → aB | bA | ε

anbn,

A → bAA | aS

n≥
n≥0

\

B → bS | aBB }

L(G3) g m cá
các câu ch a cù
cùng s ch a và ch b trong m t
th t nào đó
đó
u


G4 { S → aAS | a

nh lý :
M t ngôn ng là PNC n u
ngôn ng đó
đó đ c th a nh n b i m t ôtômat đ y xu ng
L = L(M) = L(G) v i G là
là VP2 và M là
là ôđx

A → SbA | SS | ba }

L(G4) = ?

25/65
25/65

Ngôn ng L1 ∪ L2 là phi ng c nh

Tính ch t c a cá
các ngôn ng PNC
\ Cho L1 và L2 là hai NN PNC, ta có
có các tí
tính ch t sau :
u Các ngôn ng sau là phi ng c nh :

u

¬


L1 ∪ L 2

phé
phép h p c a hai NN PNC

¬

L1 . L2

phé
phép ghé
ghép ti p hai NN PNC

¬

L1*

l y bao đó
đóng c a m t NN PNC

\ Cho :
G1 = (N1, ∑1, R1, S1)
G2 = (N2, ∑2, R2, S2 )

L1 ∩ L 2

phé
phép giao c a hai NN PNC


không h n là
là phi ng c nh !
u

sao cho L1 = L(G1)
sao cho L2 = L(G2)

\ Xây d ng VP2 G sinh ra ngôn ng L1∪L2 nh sau :
G = ( V, ∑, R, S ) v i :
u N = N1 ∪ N2 ∪ { S }
S là
là m t ký t m i thêm và
vào
u ∑ = ∑1 ∪ ∑2
u L y ký t m i thêm và
vào S là
làm ký t đ u
u R = R1 ∪ R2 ∪ { S → S1, S → S2 }

Ngôn ng :
¬

26/65
26/65

Tuy nhiên ngôn ng :
¬

LR ∩ L2 là PNC v i LR là NNCQ và
và L2 là PNC

27/65
27/65

Ví d L1 ∪ L2 là phi ng c nh

Ví d L1 . L2 là phi ng c nh
\ Cho :
G1 = (N1, ∑1, R1, S1)
G2 = (N2, ∑2, R2, S2 )

\ Cho :
G1 { A → A+B | a ; B → a }

L1 = L(G1) = a(+a)*

G2 { C → C−D | b ; D → b }

b(−
b(−b)*

L2 = L(G2) =

28/65
28/65

sao cho L1 = L(G1)
sao cho L2 = L(G2)

\ Xây d ng VP2 G sinh ra ngôn ng L1 . L2 nh sau :
G = ( V, ∑, R, S ) v i :

u N = N1 ∪ N2 ∪ { S }
S là
là m t ký t m i thêm và
vào
u ∑ = ∑1 ∪ ∑2
u L y ký t m i thêm và
vào S là
làm ký t đ u
u R = R1 ∪ R2 ∪ { S → S1S2 }

\ Xây d ng VP2 G :
G { S → A | C ; A → A+B | a ;
B → a ; C → C−D | b ; D → b }

\ G sinh ra ngôn ng L1∪L2 nh sau :
L = L1 ∪ L2 = L(G) = a(+a)* ∪ b(−
b(−b)*

29/65
29/65

30/65
30/65

5


Ngôn ng L* là phi ng c nh

Ví d L1 . L2 là phi ng c nh


\ Cho v n ph m PNC G = (N, ∑, R, S) có
có L = L(G)

\ Cho :
G1 { A → aA | ε }
G2 { B → bB | ε }

L1 = L(G1) = am m≥0
L2 = L(G2) =

bn

s n sinh ra ngôn ng L = L(G)
\ Xây d ng VP sinh ra ngôn ng L* nh sau :

n≥0

G = (N, ∑, R ∪ { S → SS | ε }, S)

\ Xây d ng VP2 G :

G c ng là
là VP phi ng c nh

G { S → AB ; A → aA | ε ; B → bB | ε }

\ Ví d :
u Cho G { S → ab } có
có L(G) = { ab }

u V n ph m G { S → SS | ab | ε }

\ G sinh ra ngôn ng L1 . L2 nh sau :
L = L1 . L2 = L(G) = ambn

m≥0, n≥
n≥0

L g m cá
các câu có
có m t s tu ý con a r i m t s tu ý con b

sinh ra ngôn ng :
{ ε, ab, abab, ababab, ... } = { (ab)* }

31/65
31/65

32/65
32/65

V n đ t o sinh câu c a VP PNC

Ví d có nhi u cá
cách suy d n

\ Cho VP PNC G = (N, ∑, R, S) có
có L = L(G)
\ Khi áp d ng cá
các s n xu t đ t o sinh câu, th t áp d ng

là không quan tr ng :
u Xu t phá
phát t ký t đ u S, có
có th áp d ng tu ý cá
các s n xu t,
hay dù
dùng cá
các d n xu t khá
khác nhau trong G đ u có
có th t o ra
cùng m t câu
u Tính “phi ng c nh”
nh” th hi n ch : m t ký t không k t
thú
thúc A∈
A∈N có
có th đ c thay th đ c l p v i cá
các ký t bao
xung quanh (tr
(tr c A và
và sau A), không ph thu c và
vào “ng
c nh”
nh”
\ Tính không quan tr ng v th t khi áp d ng cá
các s n xu t
là đ c tr ng c a cá
các NN PNC

\ Cho v n ph m G :

G { S → SS 1 | aSa 2 | bSb 3 | ε 4 }

(đánh s các s n xu t)

\ V i câu w=aabaab,
có th có 10 cá
cách suy d n khá
khác nhau đ sinh ra w :
Cách 1 (dãy cá
các SX là
là 124324) :
S ⇒1 SS ⇒2 aSaS ⇒4 aaS ⇒3 aabSb ⇒2 aabaSab ⇒4

aabaab

Cách 2 (dãy cá
các SX là
là 132424) :
S ⇒1 SS ⇒3 SbSb ⇒2 SbaSab ⇒4 Sbaab ⇒2 aSabaab ⇒4 aabaab

V.v...

\ S khá
khác nhau c a cá
các cá
cách suy d n ra w
là th t áp d ng cá
các s n xu t c a G

33/65

33/65

34/65
34/65

Khá
Khái ni m v cây phân tí
tích

Khá
Khái ni m v cây phân tí
tích (CPT)

\ Ng i ta s d ng c u trú
trúc cây đ bi u di n quá
quá trì
trình áp
d ng cá
các SX c a VP đ suy d n t o sinh câu
\ Cho VP PNC G = (V, Σ, R, S)
u Cây phân tí
tích (Parse
(Parse Tree),
hay còn đgl cây suy d n (Derivation
(Derivation Tree) đđ

c

\ Ng i ta s d ng c u trú
trúc cây đ bi u di n quá

quá trì
trình áp
d ng cá
các SX c a VP đ suy d n t o sinh câu
\ Cho VP PNC G = (V, Σ, R, S)
u Cây phân tí
tích (Parse
(Parse Tree),
hay còn đgl cây suy d n (Derivation
(Derivation Tree) đ c XD nh sau :
¬

G c (Root) c a cây là
là ký t đ u S

¬

M i nút trong là m t ký hi u không k t thú
thúc A∈
A∈N

¬

M i nút lá
lá là m t ký hi u k t thú
thúc a∈
a∈Σ ho c ký t r ng ε

¬


N u v i m i nú
nút trong A có
có A → X1X2...Xk là m t SX c a G
thì
thì (A, X1, X2, ..., Xk) là
là m t cây con tr c ti p có
có :
• A là
là nút g c
• các nú
nút n i v i A l n l

u Câu
35/65
35/65

tt

ng ng là
là X1, X2, ..., Xk

sinh b i CPT b ng cá
cách ghé
ghép ti p cá
các lá
lá t trá
trái qua ph i
36/65
36/65


6


Ví d cây phân tí
tích

M t s tính ch t c a cây PT
\ Cho VPPNC G, khi
khi đó
đó hai m nh đ sau là
là t ng đ
u Câu w ∈ L(G), ngh a là
là S ⇒*G w
u T n t i m t cây phân tí
tích c a VP G đ sinh ra w

\ Cho v n ph m G { S → SS | aSa | bSb | ε }
1

có các cây con t

2

3

ng ng v i cá
các SX nh sau :

1 S


2 S

S

a

S

4

S

3 S

a

b

S

S

4

\ Quá
Quá trì
trình suy d n t o sinh câu S ⇒*G w đ
theo cá
cách ch n ký t không k t thú
thúc N :

u Duy trì
trì ch n t trá
trái qua ph i
u Ho c ch n t ph i qua trá
trái
u Ho c ch n t gi a ra hai bên tu ý

ε

b

\ Phé
Phép suy d n ra câu aabaab trong G :

S ⇒1 SS ⇒2 aSaS ⇒4 aaS ⇒3 aabSb ⇒2 aabaSab ⇒4 aabaab
có th bi u di n b i cây phân tí
tích :

S
S

a

S
4

1

S


2

a

ε

b

S

a

S
4

Tính t

ng đ

b

u

Có th có nhi u suy d n t

a

u

Có th có nhi u cây PT t


ε

38/65
38/65

Bi n đ i v n ph m

ng c a cá
các v n ph m

L(G1) = L(G2) = ... = L(Gk)

ng ng v i m t cây PT duy nh t
ng ng v i nhi u suy d n

37/65
37/65

\ Ta có
có các tí
tính ch t sau :
u M t VP PNC G ch có th s n sinh m t (và
(và ch m t) NN L(G)
L(G)
u Nh ng có
có th có nhi u VP PNC cù
cùng sinh ra m t NN L :
u Ví


c th c hi n

\ V i m i câu w ∈ L(G) :

3
2

ng :

v i k>0

d :

\ Cho VP PNC G
\ Ta có
có th bi n đ i G đ nh n đ c G’
G’ sao cho :
u G’ t
ng đ ng v i G : G’ ~ G
u và bi n đ i ng
c l i t G’ đ nh n đ c G : G ~ G’
G’
\ Sau đây ta s bi n đ i G đ nh n đ c G’
G’ sao cho :
u G’ không ch a cá
các s n xu t d ng A→ε
A→ε,, còn
còn đgl ε-SX
u G’ không ch a G cá
các s n xu t d ng A→

A→B

L( {S → aSa | bSb | ε } ) =
L( {S → A | ε ; A → aAa | bAb} ) =
L( {S → ASA | BSB | C ; A → a ; B → b ; C → ε } ) = wwR

\ T các tí
tính ch t trên, ng i ta nó
nói :
Hai VP G1 và G2 đgl t ng đ ng,
ng, ký hi u G1 ~ G2
N u
L(G1) = L(G2)
39/65
39/65

40/65
40/65

Lo i b các s n xu t d ng A→ε
A→ε

Cách x lý lo i b các ε-SX

\ Cho VP PNC G = (N, ∑, R, S) có
có ch a cá
các SX d ng A→ε
A→ε

lo i b các ε-SX t VP PNC G = (N, ∑, R, S) :


\ Xây d ng VP PNC G’
G’ ~ G sao cho G’
G’ không còn ε-SX :
u N u ε ∈ L(G), G’
G’ nh n đ c t G b ng cá
cách :

Xây d ng t p h p cá
các ký hi u không k t thú
thúc A sao cho
m i suy d n t A đ u nh n đ c câu r ng ε) nh
nh sau :

¬ Thêm

u

L p l i cá
các b
¬ Ch
¬V

E = { A ∈ N | A ⇒*G ε }


vào G m t ký t đ u S’
S’ và các s n xu t S’
S’ → S | ε


T E, c v i m i SX có
có d ng X → X1X2...Xk v i k>1 :

c sau đây :

n m t ε-SX A → ε (không ch n S’
S’→ ε)

¬ Thêm

i m i SX có
có v ph i ch a A : B → αAβ ∈ R, v i α, β ∈(N∪∑
(N∪∑))*


vào R cá
các SX m i X → X1X2...Xj-1 Xj+1...Xk ∀j =1..k=1..k-1

v i m i Xj ∈ E

Thêm và
vào R m t s n xu t m i B → αβ (b con A)

Ngh a là
là thêm và
vào R nh ng SX m i sau khi đã lo i b l n l

Lo i b s n xu t A → ε kh i R

các ký hi u có

có m t trong E

t

cho đ n khi G’
G’ không còn cá
các ε-SX

41/65
41/65

42/65
42/65

7


Ví d 1 : lo i b các ε-SX

Ví d 2 : lo i b các ε-SX
\ Cho VP PNC G2 có các SX :

\ Cho VP PNC G1 có các SX :

{ S → ABC ; A → BB | ε ; B → CC | a ; C → AA | b }

{ S → ABCD ; A → CD ; B → Cb ; C → a | ε ; D → bD | ε }

\ XD t p E1 = { A ∈ N | A


⇒*G

\ XD t p E2 = { A ∈ N | A ⇒*G ε } = { S, A, B, C }

ε } = { A, C, D }

\ XD VP PNC G2’ g m cá
các SX :
{ S → ABC | BC | AC | AB | A | B | C ;
A → BB | B;
B → CC | C | a ;
C → AA | A | b

\ XD VP PNC G1’ g m cá
các SX :
{ S → ABCD | BCD | ABD | ABC | BD | BC | AB | B ;
A → CD | B | D ;
B → Cb | b ;
C→a;

}

D → bD | b
}
43/65
43/65

44/65
44/65


Lo i b các s n xu t d ng A→
A→B

Ví d lo i b các SX d ng A→
A→B

\ Cho VP PNC G = (N, ∑, R, S) có
có ch a cá
các SX d ng A→
A→B
u N u G có
có các s n xu t d ng A → B và
và B → A, v i A, B ∈ N,
có th d n đ n cá
các suy d n có
có đ dài tù
tùy ý :
A ⇒ B ⇒ A ⇒ B ⇒ A ⇒ ..., hay A ⇒* A
u Các suy d n A ⇒* A là
làm đì
đình tr hay t c ngh n vi c sinh câu
\ Xây d ng G’
G’ ~ G sao cho G’
G’ không còn SX d ng A→
A→B :
u Tìm cá
các s n xu t d ng A → B
u V i m i s n xu t d ng B → α, v i α∈(N
∪∑))*
α∈(N∪∑

thêm và
vào s n xu t A → α, lo i b A → B

A
B

B
α

A

\ Cho VP PNC G có
có các SX :
{ E → E+T | T ; T → T*F | F ;

F → (E) | a }

\ XD VP PNC G’
G’ g m cá
các SX :
{ E → E+T | T*F | (E) | a ;
T → T*F | (E) | a ;
F → (E) | a
}

α
45/65
45/65

46/65

46/65

V n ph m nh p nh ng

Ví d hi n t

\ Cho VP PNC G :
u VP G đgl nh p nh ng (Ambiguous Grammar) kh
Có hai cây phân tí
tích cù
cùng suy d n cho m t câu w∈
w∈L(G)
\ Cho L là
là NN PNC :
u NN L đgl nh p nh ng c h u
(Inherently Ambiguous Language) kh
NN L đ c sinh b i nhi u VP khá
khác nhau
L = L(G1) = L(G2) = ...
và t t c các v n ph m G1, G2 ... nà
này đ u nh p nh ng
\ Cho VP PNC G nh p nh ng :
u Có th bi n đ i G v G’ t
ng đ ng,
ng, L(G’
L(G’) = L(G), sao cho
u G không còn là
là v n ph m nh p nh ng
47/65
47/65


ng nh p nh ng

\ Trong NN t nhiên nó
nói chung, ti ng Vi t nó
nói riêng,
th ng xuyên x y ra cá
các hi n t ng nh p nh ng
u Nh p nh ng v t lo i :
¬H

c sinh h c sinh h c

u

Nh p nh ng v ngh a :

u

Nh p nh ng v phá
phát âm :

u

Nh p nh ng v ti ng Vi t không d u :

¬ Ông

¬ Bà


già
già đi nhanh quá
quá

Ba b n b n bá
bán bá
bánh

¬ Nha

may Co khi Gia Lam

48/65
48/65

8


Ví d v n ph m nh p nh ng

M t s ví d khá
khác v VP nh p nh ng

\ Cho VP PNC G có
có các SX :
{ E → E+E 1 | E*E 2 | a 3 }

\ VP G nh p nh ng vì
vì có hai cây PT sinh ra câu w=a+a*a :
u


E ⇒1 E+E ⇒3 a+E ⇒2 a+E*E ⇒3 a+a*E ⇒3 a+a*a

u

E ⇒2 E*E ⇒1 E+E*E ⇒3 a+E*E ⇒3 a+a*E ⇒3 a+a*a
1

2

E

E

E
2

3

3 E

a

+

a

*

E


E
1

E
3 E

3
E

a

a

\ Các VP sau đây đ u nh p nh ng :
u G1 { S → aSa | bSb | a | b | ε }
u G2 { S → aS | Sa | a }

E

E
3
E

+

3

a


*

a
49/65
49/65

50/65
50/65

Các d ng chu n c a VP2
\

i v i VP PNC, ng
u

i ta th

ng đ a và
vào hai d ng chu n :

D ng chu n Greibach :
M i SX có
có d ng A → aα

u

nh lý “b m”
m” cho cá
các NN PNC
nh lý “b m”

m” cho NN PNC t

A, B, C∈
C∈N, a∈
a∈Σ

\ Tính ch t :
u M i VP PNC b t k đ u có
có th bi n đ i v m t trong hai
d ng chu n Greibach ho c Chomsky

ng t NNCQ :

u

Cho L NNCQ và
và w∈L có
có đ dài v à đ , w=xuy v i u≠
u≠ε,
khi đó
đó câu w’
w’=xuky, ∀k>0, c ng thu c L
(l p tu ý m t dòng con u c a câu)

u

Tuy nhiên, n u L là
là NN PNC, xu t phá
phát t m t câu w có
có đ

dài v à đ , có
có th xây d ng m t câu khá
khác w’
w’ ∈L b ng cá
cách

A∈N, a∈
a∈Σ, α∈(N∪
(N∪Σ)*

D ng chu n Chomsky :
M i SX có
có d ng A → BC | a

\

l p m t ho c hai dòng con c a câu
\ N i dung đ nh lý “b m”
m” (còn
(còn đgl “uvxyz”
uvxyz”) :
u

Cho L NNPNC, t n t i h ng K sao cho m i câu w∈
w∈L th a mãn
đi u ki n |w| > K và
và w=uvxyz v i vy ≠ ε (v ≠ ε ho c y ≠ ε),
ta đ u có
có w’ = uvkxykz ∈ L , ∀k>0.


51/65
51/65

52/65
52/65

Ch ng minh đ nh lý “b m”
m”

Tìm h ng s K trong đ nh lý “b m”
m”

\ Cho G là
là VP PNC v i L(G)=L, c n ch ra r ng :
u Cho w∈
w∈L đ dài, cây PT cho w ph i ch a m t đ ng đi mà

trên đó
đó, m t bi n A∈
A∈N nà
nào đó
đó xu t hi n ít nh t hai l n :
i l n xu t hi n đ u tiên
c a A, ta nh n đ c uAv

i l n xu t hi n ti p theo
c a A, ta nh n đ c uvAxy
A nà
này, ta nh n đ c
w=uvxyz do phé

phép suy d n
A ⇒* x

¬T

u

Hai câu con v và
và y gi a hai
bi n A có
có th l p tu ý l n

u

n là
là s ký t không k t thú
thúc

p = max { |α| | A→α
A→α ∈ R }

p là
là đ dài t i đa c a cá
các SX

Khi đó
đó ch n K = pn

\ G i T là
là cây PT c a m t câu tu ý w∈

w∈L(G) có
có đ sâu n :
u M i nú
nút c a c a T có
có t i đa p nú
nút th a k
u
dài t i đa c a w s là s lá t i đa c a T, là
là pn

A

¬T

n = Card(N)
u

S

¬T

\ Cho VP PNC G = (N, Σ, R, S) có
có :

A
y

v

\ T đó

đó, n u ch n K = pn :
u M i cây PT sinh ra câu có
có đ dài l n h n K s ph i
ch a ít nh t m t đ ng đi dà
dài h n n
u Theo lý thuy t đ th , trên
trên đ ng đi nà
này,
m t bi n A∈
A∈N nà
nào đó
đó s xu t hi n ít nh t hai l n

z

x
w = uvxyz
53/65
53/65

54/65
54/65

9


Minh ho đ nh lý “b m”
m”

Ví d NN anbn th a mãn đ nh lý “b m”

m”

ng đi SAAx tho mãn đ nh lý “b m”
m” : |uvxyz| > K=pn

\

S

S

A

A
sâu
n

u

u

A
y

v

A

z


z
y

v

c m t câu w, ch ng h n a3b3 = uvxyz

u

Th t v y, cho tr

u

Ch n v là m t dãy ch a, y là m t dãy ch b có
có cùng đ dài :

u

a3b3 = aa2εb2b

u=a, v=a2, x=ε
x=ε, y=b2, z=b
z=b

Khi đó
đó :

a(a2)kb(b2)k = a2kb2k ∈ anbn

L p

kl n

A
y

v

x

NN PNC anbn =L({S → aSb | ε}) th a mãn đ nh lý “b m”
m”

x

w = uvxyz

w = uvkxykz
55/65
55/65

56/65
56/65

NN anbn th a mãn đ nh lý “b m”
m”

aa

SS


bb

aa

SS

bb

aa

SS

bb

u

z

v

\ Có th b o đ m vy≠ε
vy≠ε (v≠ε
(v≠ε ho c y≠ε
y≠ε)) trên
trên đ ng SAAx :
u N u v=y=ε
v=y=ε, ph n cây PT gi a hai bi n A có
có th b đi mà

không là

làm thay đ i câu đã s n sinh
u N u v=y=ε
v=y=ε x y ra cho m i đ ng đi,
đi, câu
câu đ c sinh ra b i
cây PT không th có đ dài v t quá
quá K = pn

SS

SS

u

Nh n xé
xét

SS

bb

aa

SS

bb

aa

SS


bb

aa

SS

bb

aa

SS

bb

z

x
a3b3 = aa2εb2b

\ Chú
Chú ý :
u

y

v

y


εε

aa

v

y

εε

a(a2)2ε(b2)2b = a5b5 ∈ anbn

a

b

an

bn

c s làm mâu thu n v i đ nh lý “b m”
m” !

c
cn

?

nh lý “b m”
m” có còn th a mãn không, n u L h u h n ?


u

Câu tr l i : m t NN PNC h u h n không th có các câu
có đ dài v t quá
quá pn

58/65
58/65

Ngôn ng anbncn không là
là PNC !

nh lý “b m”
m” cho phé
phép ki m tra m t s NN không là
là PNC

N u tá
tách đ

u

57/65
57/65

\ Ví d : Ngôn ng L = {anbncn | n≥
n≥0 } không là
là PCN
u

ch ng minh, c n ch ra r ng không có
có kh n ng
tách m t câu có
có d ng anbncn thà
thành 5 ph n u, v, x, y và
và z
(v i vy ≠ ε) sao cho v i m i k > 0, câu uvkxykz ∈ L
u

c ch rõ

x

Áp d ng đ nh lý “b m”
m”
\

Trong phá
phát bi u đ nh lý “b m”
m”, NN
NN L không đ
ra là
là ph i vô h n

u

v

x


v

z

u

vk

x

yk

z

C
ó th phân tá
ách annbnncnn = uvxyz
ttách

uvxyz
đ c hay không ?
59/65
59/65

\ Ph n ch ng :
Gi s anbncn là PNC,
PNC, do
do đó
đó tho mãn đ nh lý “b m”
m”,

t n t i m t s phân tá
tách anbncn = uv
uvxyz
\ Xét cá
các kh n ng phân tá
tách khá
khác nhau cho v và y :
u C v và y đ u đ
c t o thà
thành t phé
phép l p c a cù
cùng m t ch ,
ch ng h n v ∈ a* và
và y ∈ b* :
¬ Khi đó
đó, s các ch a, b s nhi u h n s các ch c,
vi ph m tí
tính ch t anbncn
u Các câu v và y đ
c t o thà
thành t các ch khá
khác nhau :
¬ Khi đó
đó, cá
các câu uvkxykz s không còn có
có d ng a*b*c*
\ Nh v y, không th phân tá
tách anbncn = uvxyz,
đ nh lý “b m”
m” không đ c tho mãn : mâu thu n !

60/65
60/65

10


Các ngôn ng PNC đ n đ nh

M t s nh n xé
xét
\ Các phé
phép toá
toán giao và
và bù không ph i luôn luôn tho mãn PNC
\

nh lý "b
"b m"
m" cho phé
phép ch ng minh r ng :
u

T n t i hai ngôn ng PNC L1 và L2 sao cho L1 ∩ L2 không là
là PNC
Th t v y :
L1 = {anbncm} và
và L2 = {ambncn} đ u là
là các ngôn ng PNC

\ Cho L ∈

L là
là PNC đ n đ nh n u :
L = L(M), M là
là m t ôtômat đ y xu ng đ n đ nh
\ Ví d :
u L1 = { wwR | w ∈ {a, b}* } ch là PNC,
PNC, không
không PNC đ n đ nh
u L2 = { wcwR | w ∈ {a, b}* } là
là NN PNC đ n đ nh

∑*,

Tuy nhiên :

a, ε|A

L1 ∩ L2 = {anbncn} không là
là PNC !
u

Bù c a m t NN PNC không ph i luôn luôn PNC

a, A|ε

c, ε|ε

> s

p


ε, Z|ε

q

Th t v y :
L1 và L2 là PNC,
PNC, khi
khi đó
đó : L1 ∪ L2 ph i là
là là PNC

b, B|ε

b, ε|A

ε, Z|ε

Gi s bù c a m t NN PNC là
là PNC thì
thì :
L1 ∪ L2 = L1 ∩ L2 c ng là PNC : đi u nà
này mâu thu n v i trên đây

u

V i L2, không xá
xác đ nh đ

u


V i L1 v trí
trí gi a đ

c v trí
trí gi a c a câu

c xá
xác đ nh b i ký t c đ nh n bi t câu

61/65
61/65

Tính ch t c a cá
các NN PNC đ n đ nh

ng d ng c a cá
các ngôn ng PNC

\ L p cá
các NN PNC đđ và
và không đđ có
có tính ch t khá
khác nhau
\ Cho L1 và L2 là các NN PNC đ n đ nh, khi
khi đó
đó :
u L = ∑* − L1 là PNC đ n đ nh

u


¬

Cho M ôhh đđ M’
M’ sao cho L(M)=L1

¬

Xây d ng ôhh đđ M’
M’ t M, b ng cá
cách hoá
hoán đ i vai trò
các tr ng thá
thái đ t đ c và
và không đ t đ c

T n t i cá
các NN PNC nh ng không đ n đ nh
¬

Vì n u m i NN PNC đ u đ n đ nh, thì
thì bù c a m t NN PNC s
luôn luôn PNC, đi u nà
này không đú
đúng

u

L1 ∪ L2 không ph i luôn luôn PNC đ n đ nh


u

L1 ∩ L2 không ph i luôn luôn PNC đ n đ nh

¬

¬

Không ph i luôn luôn xá
xác đ nh đ
Tính ch t nà
này đ

62/65
62/65

c w∈
w∈L1 ho c w∈
w∈L2

\ ng d ng chí
chính c a cá
các NN PNC là
là :
u Mô t cú phá
pháp c a cá
các NNLT nh m t v n ph m PNC G
u Phân tí
tích cú
cú phá

pháp t ng ng v i v n ph m PNC G
u Các ch
ng trì
trình đú
đúng đ n v cú phá
pháp là
là nh ng câu w∈
w∈L(G)
\ Phân tí
tích cú
cú phá
pháp là
là :
u Xác đ nh n u w ∈L(G)
u D a và
vào cây phân tí
tích thi t l p cá
cách s n sinh ra câu w
\ Th c t , đ các thu t toá
toán phân tí
tích ch y hi u qu (áp
d ng cho cá
các ch ng trì
trình r t dà
dài), c n có
có h n ch đ i v i
ki u v n ph m PNC mu n s d ng :
u Ch xét nh ng VP mô t các ngôn ng PNC đ n đ nh
u H các VP LR chuyên đ
c s d ng cho cá

các NNLT

c suy ra t phé
phép h i và
và l y ph n bù

63/65
63/65

Bài t p ch

64/65
64/65

ng 4

1. Mô t các ôhh đ y xu ng th a nh n cá
các NN sau đây :
a) anbncm
b) anbmcn

2. Tìm v n ph m PNC s n sinh cá
các ngôn ng sau đây :
a) anbncm
b) anbmcn

3. Ch ng minh r ng NN { aibjck | i ≠ j ho c i ≠ k } là
là PNC
Ph n bù
bù c a ngôn ng này c ng là

là PNC ?
G i ý : h i c a cá
các ngôn ng PNC c ng là
là PNC
4. Ch ng minh r ng NN { an | n là
là s nguyên t }
không là
là PNC
65/65
65/65

11



×