Ngôn ng hình th c và ÔtômatFormal Language & Automata PGS.TS.
Trang 1Ngôn ng hình th c và Ôtômat
(Formal Language & Automata)
PGS.TS Phan Huy Khánh
khanhph@vnn.vn
V n ph m (Grammar)
2/61
\ nh lí "b m" (Pumping Theorem)
3/61
u B ký t (Character Set)
u B t v ng (Vocabulary)
u Cúpháp (Semantic)
u Ng ngha (Semantic)
¬C n c vo cúpháp ca NNLT, ng i lp trình vit cht ch ng trng trình
gm các câu lnh đnh đ gi i quyt bài toán ca mình
¬ đ đt đt đ c m c đc đích đch đó, m i câu lnh vit ra không nh ng
đúng đng đn v mt cúpháp, màcòn ph i đi đúng đng đ n c v mt ng
ngha, hay ý ngha logic c a câu lnh, đ đ gii quyt bài toán
\Ngoài ra, ng i ta c ng th ng thêm y u t m t th n m là
4/61
u G m m t t p h p h u h n các ký t
đ c phép dùng trong ngôn ng , th ng làcác ký t ASCII
u Cóth hi u b ký t có vai trò nh b ng ch cái (Alphabet)
c a mt ngôn ng t nhiên
5/61
B t v ng
u Gm các t (Word) hay đ n v đ n vt v ng (Token) dùng đng đ t o
thành câu lnh và đ đ c phân loi tu theo vai trò c a chúng
trong ngôn ng
u Mi lo i t v ng li đi đ c chia ra thành các nhóm nh h n
tu theo ch c n ng s dng
\Víd :
- Tên, hay đ nh danh (Identifier) :
Read, Write, P, x, y
- H ng (Constants) : 2
- Toán t (Operators) : + , :=
- D u phân cách (Delimiters) :
Program, Var, :, (, ), Begin, End.
Program P;
Var ×, y : Integer;
Begin
Read(x);
y:=x+2;
Write(y)
End.
Các đ n v t v ng
Ch ng trình Pascal
6/61
u Quy đQuy đnh cách th c k t h p các ký t thành t , k t h p các
t thành câu l nh đnh đúng (Statement -Instruction), k t h p các câu l nh đnh đúng thành m t cht ch ng trng trình hoàn chnh
u Cóth hình dung cách k t h p này gi ng cách đch đ t câu trong
m t ngôn ng t nhiên
u đ đnh ngha cúpháp m t ngôn ng l p trình, ng i ta
th ng s d ng :
¬Hoc s đc s đ cúpháp (Syntax Diagram)
¬Hoc dng chun Backus-Naur(BNF−BackusNaur Normal Form), hay dng Backus-Naur m rng(EBNF−Extended BNF)
Trang 2u Câu (Phrase/Sentence) g m cóhai thành ph n :
¬Ch t (subject)
¬ ng t (Verbe)
u Ch t cóth làHeho c She
u ng t cóth làsleephay eat
u T đ đócóth xây d ng đng đ c các câu :
¬He sleep
¬He eat
¬She sleep
¬She eat
8/61
Ví d s đ s đ cú pháp câu ti ng Anh
\Trong ting Anh, mt câu đ n git câu đ n gi n gm 3 thành phn :
u Ch t (Subject), chng h n “ v “You”
u ng t (Verb), chng h n “like”v “see”
u B ng (Complement), chng h n “him”v “her”
\Dùng s đng s đ cúpháp, ta có:
\T đ đócóth xây d ng các câu đc câu đúng :
“I see him”, “I like her”, v.v
see
her
9/61
u Mi quy t c cód ng : <V trá > ::= <V ph i >
u <V trái> th ng làm t ký hi u phi đi đ c đc đnh ngha rõ
u <V ph i> làm t dãy ký hiu, hoc đã đc đã đ c th a nh n,
hoc đã đc đã đ c đc đnh ngha tr c đc đó, tuân theo m t quy c
no đo đó
u Du ::= (ho c →,ho c = ) đ c “đ c đc đnh ngha là”
u N ucónhi u v ph i cùng đng đnh ngha m t v trái, ng i ta
s d ng d u | đ đ phân cách theo ngha lo i tr
u Dng BNF m r ng s d ng hai c p d u quy c :
{ } : v phi cómt chui t 0 đ n nhiu m c lit kê < >*
[ ] : v phi có0 hoc có1 m c lit kê (option)
10/61
\D ng BNF các câu ti ng Anh đ n ging Anh đ n gi n nh sau :
<Câu> ::= <Ch t > < ng t > < B ng >
<Ch t > ::= “ | “You”
< ng t > ::= “like”| “see”
<B ng > ::= “him”| “her”
<tên> = <ch > { <ch > | <s> }
Hoc đc đnh ngha đa đ quy :
<tên> = <ch > | <tên> <ch > | <tên> <s >
<ch > = ‘A’| | ‘Z’| ‘a’| | ‘z’
<s > = ‘0’| | ‘9’
11/61
S đ
\T đ đócóth xây d ng các tên đc tên đúng trong Pascal nh sau :
u Delta, x1, x2, Read, v.v
u Trái li, các chu i ký t 1A, β, π, b nkính, v.v
đ u không ph i làtên
Tên
Ch
S
Ch
Ch
S
12/61
Ví d m t NNLT đ n gi t NNLT đ n gi n
\V n ph m c a mt NNLT đ n git NNLT đ n gi n d ng EBNF nh sau :
<program> ::= program<statement>* end
<statement> ::= <assignment> | <loop>
<assignment> ::= <identifier> := <expression> ;
<loop> := while<expression> do<statement>+ done
<expression> ::= <value>
| <value> + <value> | <value> <= <value>
<value> ::= <identifier> | <number>
<identifier> ::= <letter>
| <identifier><letter> | <identifier><digit>
<letter> ::= ‘A’| | ‘Z’| ‘a’| | ‘z’
<digit> ::= ‘0’| | ‘9’
<number> ::= <digit> | <number><digit>
Trang 3Mt câu, t c làmt cht ch ng trng trình đ n ginh đ n gi n, ch ng hn :
program n := 1 ; whilen <= 10 do n := n + 1 ; done end
đ c s n sinh t v n phm đã cho nhm đã cho nh áp d ng cúpháp v n ph m nh sau :
<program> program <statement>* end
program<statement> <statement> end
program<assignment> <loop> end
program<identifier> := <expression> ;
while<expression> do <statement>+ done end
programn := <value> ;
while<value> <= <value> <value> <= <value> do<statement> doneend
programn := <number> ;
while<identifier> <= <number> do <assignment> done end
program n := 1 ; while n <= 10 do <identifier> := <expression> ; done end
program n := 1 ; while n <= 10 do n := <value> + <value> ; done end
program n := 1 ;
whilen <= 10 do n := <identifier> + <number> ; n := <identifier> + <number> ; done end
program n := 1 ; while n <= 10 do n := n + 1 ; done end
14/61
\Ta đã lTa đã làm quen v i hai phi hai ph ng phng pháp :
uS d ng v n phm đm đ lp trình (t o ra câu c a ngôn ng )
v m t trình biên dch đch đ phân tích cúpháp, biên dch thành trình kh thi
uS d ng ôtômát đt đ phân tích m t câu c a ngôn ng
v th a nhn câu khi quátrình đonh đoán nh n làthành công
\Hai phHai ph ng phng pháp này b sung cho nhau và thông th ng,
uC s t t ng ng ng gi a mô t sn sinh vàmô t phân tích, ngha là óth bin đn đ i m t mô t phân tích (mt ôtômát h u hn) thành m t mô t sn sinh và ng c li
uLý thuyt NN hình th c ch a mô t đ đy đy đ cc NN t nhiên (ting Anh, ting Pháp, ting Vit ) nh ng mô t v phân tích
đy đy đ cc NNLT và đ đ c áp d ng r ng rãi trong Tin hc
15/61
\Các quy t c đc đ s n sinh câu trên m t b ng ch Σ đã cho còn đã cho còn
uM i quy t c ch ra m t dãy các ký hi u (Symbols)
cóth đ đ c thay th b i m t dãy các ký hi u khác
uNh ng ký hi u cóth đ đ c thay th b i m t dãy
các ký hi u khác đgl cc đgl các ký hi u s n sinh, hay ch a k t thúc
uXu t phát t m t ký t đ đ c bi t, g i làký t đ đ u(Start Symbol),
r i p d ng l n l t các quy t c c a v n ph m
uKhi không còn cóth thay th các ký hi u b i các quy tc c a
v n ph m, ta nhn đn đ c câu chg m nh ng ký hi u c a Σ đã đã
cho, còn đgl n đgl các ký hi u k t thúc
16/61
\M t v n ph m làm t b b n G = (N, Σ, R, S) trong đrong đó:
u N làt p h p h u hn các ký t không k t thúc (Non-Terminal Symbols), hay còn g i làcác bi n, ch xut hi n trong quá trình sn sinh vàkhông xu t hi n trong các câu đã đc câu đã đ c v n
ph m sinh ra
u ∑làtp h p h u h n các ký t k t thúc, hay ký t cu i (Terminal Symbols), ∑≠N,hay N ∩∑= ∅
u Ng i ta đi ta đnh ngha b ng ch V = N ∪∑
u R ⊆(V+×V*) làt p h u hn các quy t c (Rules), hay còn g i
làcác s n xu t (Productions), chính làcác quy t c vit l i v a
n i trên, th ng cód ng (α, β), hay α→β
u S ∈N làký t đ đ u (Start Symbol)
17/61
u Ph n t bên trái (α∈V+) c a s n xut
đ c thay th b i ph n t bên ph i (β∈V*)
u Áp d ng s n xu t đt đ u tiên làS →α
uSau đSau đótìm trong αcác ph n câu u∈V+ cóch a bi n X ∈ N
đ áp d ng tu ý các s n xut u→v
u Th c hi n m t cách đch đ quy cho đ quy cho đ n khi nhn đn đ c câu w
ch ch a các ký hi u a ∈Σ, hay nói cách khác, w ∈Σ*
18/61
\Sau đây lSau đây làm t s quy c khi mô t v n ph m G :
u Các bi n A, B, C , X, Y ∈N = V −∑
u Các ký t thu c ∑ đ đ c bi u di n b i , b, c
u Các quy t c, hay s n xu t (α, β) ∈ R, đ c vit d ng :
α→β hay α→Gβ
n u mu n ch đ đnh đnh đólàs n xut thu c v n ph m G khi làm vi c cùng lúc v i nhi u v n ph m khác nhau
u Ký t đ đ u luôn luôn bi u din b i S
u Các câu r ng đng đ c bi u din b i ε
Trang 4u N = { S, A, B }
u ∑= { a, b}, S làký t đ đ u
u R = { S →A, S →B, B →bB, B →ε, A →aA, A →ε }
u cho g n, khi mô t m t v n phm, ng i ta th ng nhóm
các quy tc cócùng ký t bên trái v i nhau :
S →A | B B →bB | ε A →aA | ε
u Thay vìli t kê h t các thành ph n c a v n ph m G,
ng i ta ch li t kê các quy t c R c a v n ph m màthôi
u Chng h n v n ph m G trên ch c n li t kê các quy t c :
G { S →A | B ; B →bB | ε; A →aA | ε}
20/61
S
A Áp d ng S →A
aA − A →aA aaA − A →aA aaaA − A →aA aaaaA − A →aA aaaa − A →ε
S
A
ε
21/61
u∈V+, v∈V* đgl c đgl các d ng câu
(derives v from u in one step) đ đ c bi u di n b i :
u u = xu’y u g m 3 ph n x, u’v y, x vày cóth r ng
u v = xv’y v g m 3 phn x, v’v y
u u’→v’ làm t sx c a G
22/61
u∈V+, v∈V* đgl c đgl các d ng câu
\Câu v đCâu v đ c s n sinh t u b ng nhi u b c suy d ntrong G
u ⇒*
Gv n u:
u ∃k ≥0 và 0 vk∈V+sao cho :
u u = v0
u v = vk
u vi⇒Gvi+1v i ∀i, 0 <i ≤k
\C th vi t đt đ y đy đ khi k nh :
u ⇒*
Gv n u u = v0⇒Gv1⇒Gv2⇒G ⇒Gvk = v
23/61
suy d n t ký t đ đ u S cho đu S cho đ n khi nhn đn đ c câu g m các
G w
Gw }
\Víd :
u V n phm G { S →A | B ; B →bB | ε; A →aA | ε}
sinh ra ngôn ng L(G) = a*∪b*
g m các câu hoc ch a toàn ch a, ho c ch a toàn ch b
24/61
uLo i 0 V n ph m t do
¬ Không gi i hn v sn xut (s n xut có ng b t k)
uLo i 1 V n ph m c m ng c nh
(Context Sensitive Grammar)
¬ Các sn xut có ng α→β,|α| ≤|β| vàS →ε
uLo i 2 V n ph m phi ng c nh (Context Free Grammar)
¬ Các sn xut có ng A →β, A ∈N, không có n ch gìv β
uLo i 3 V n ph m chính qui (Regular Grammar)
¬ Sn xut có ng : A →wB | w, , A vàB ∈N, w ∈Σ*
Trang 5u Cóv trâ αlăm t ký t A ∈N
u Cóv ph i βg m câc ký t k t thúc w ∈Σ*,
ti p theo sau, hay đ hay đ t tr c, ho c không có, m t ký t B∈N
đgl v n ph
đgl v n ph m tuy n tính ph i (Right Linear Grammars)
26/61
VP3⊂VP2⊂VP1⊂VP0
u Quan h bao hăm trín lăth c s : i>j n u VPi⊂VPj
u V i i>j thìm t v n ph m lo i i
c ng lă v n ph m loi j
u S bao hăm gi a VP2v VP1 không đ không đ c tht rõ răng :
¬VP2cóth ch a câc s n xut dng A →ε
¬Do vy, đi đi u kin |α| ≤|β| ca câc VP1không tha mên
¬V i mi lo i sn xut khâc, đi đi u ki n năy li tha mên
27/61
Σ*
VP0
VP1
VP2
VP3
28/61
Tính t nh t ng đ ng gi ng đ ng gi a v n ph m vă ôtômat
\Bng tóm tt v tính tnh t ng đ ng ging đ ng gi a v n phm vẵtômat
c a câc l p v n ph m theo Chomsky :
{anbn| n ≥ 1}
Ôtômat
đ y xu ng
A → α Phi ng c nh 2
{0(10)n| n ≥ 0}
Ôtômat h u h n
A → bB | w Chính quy
3
{anbncn| n ≥ 1}
Mây Turing v i
b ng h u h n
α → β,
|α| ≤ |β|
C m ng c nh 1
Ngôn ng t nhiín Mây Turing
Không có
h n ch gì
T do 0
Ví d Ôtômat
D ng s n xu t
V n ph m
Lo i
29/61
\ Câc VP3 đgl v n ph đgl v n ph m chính quy lăkhông ph i ng u nhiín
\ Ta có đ đnh lý sau đđy nh lý sau đđy :
u M t ngôn ng lăchính qui n u
ngôn ng đ đó đ đ c sn sinh b i m t v n phm chính qui
Ng i ta vi t :
u L(G) = L(α) = L(M) = L
V i G lăVP3, α lăm t BTCQ văM lăm t ôhh
L lăm t ngôn ng chính qui
30/61
u L NNCQ nín đ đ c th a nh n b i m t ôhh không đ n đt ôhh không đ n đnh M,
L = L(M), trong đtrong đó:
M = (Q, Σ, Δ, q0, A)
u S d ng M đng M đ xđy d ng m t VPCQ G = (VG, ΣG, SG, RG) sao cho L(G) = L
u Câc ph n t c a G đa G đ c đc đnh ngha theo M nh sau :
¬ΣG= Σ(câc ký t cu i c a v n ph m G lăbng ch c a M)
¬NG= Q (ký t không k t thúc ca G lătr ng thâi c a M)
¬SG= q0(ký t đ đ u ca G lătrng thâi đi đu ca M)
¬RG= { A →wB cho ∀(A, w, B) ∈Δv A →εcho ∀A ∈F }
Trang 6u L(M) = (a+b)*b
hay mi câu b t k k t thúc b i m t con b
u Víd các câu sau ∈L(M) :
¬b
¬abbab
¬aaabbb = a3b3
G { S →a | bA ;
A →bA | aS ;
A →ε } do A làtrng thái cu i duy nh t
b
S
a
b
32/61
G {S →b | aA ;A →aB | bS ; B →aB | bC ;
C →b | aA | ε }
33/61
34/61
đ n đnh đonh đoán nh n L :
u Gi s G = (VG, ΣG, SG, RG) làVP3sn sinh ra ngôn ng L
u Xây d ng NFA M=(Q, Σ, Δ, q0, F) th a nh n L(G) nh sau :
¬Q = N ∪{ h} (trng thái c a M làký hiu không kt thúc ca G
cng thêm m t trng thái m i h )
¬Σ= ΣG
¬q0= SG
¬F = { h } (M chi cómt trng thái cu i duy nht làh )
¬Δ= {(A, w, B ) v i ∀A →wB ∈RGv (A, w, h ) v i ∀A →w ∈RG}
u Nh vy L(G) làngôn ng đ đ c M th a nh n vàlàNNCQ
35/61
{ S →a | bS | abb }
abb
A S
a, b
abb
A S
a
b
Chú ý A là tr ng thái cu i m i thêm vào Chúý A làtr ng thái cu i m i thêm vào
36/61
{ S →a | bS | a | b }
a, b
A S
a, b
Chú ý A là tr ng thái cu i m i thêm vào Chúý A làtr ng thái cu i m i thêm vào
Trang 7\Cho các VP3Gi nh sau:
G1{ S →b | aT | ε ; T →aT | bU | ε ; U →aT | ε }
G2{ S →aA | aB | b; A →b; B →bB | a }
38/61
\Cho NNCQ L, ta đã xa đã xét b n công c khác nhau
đ bi u di n, hay ch đ đnh L :
u Bi u th c chính quy α: L = L(α)
u Ôtômat h u h n đ n đn đ n đnh M : L = L(M)
u Ôtômat h u h n không đ n đn không đ n đnh M : L = L(M)
u V n ph m chính quy G L = L(G)
\Sau đâySau đây, ta ti p t c xét các tính ch t c a NNCQ
39/61
\Ta cótính cht sau đây t sau đây :
Các ngôn ng đ đ c t o thành b i
u Phép h p c a hai NNCQ L1∪L2
u Phép ghép ti p c a hai NNCQ L1.L2
u Phép nghch đch đ o m t NNCQ L1R
u Phép l y phn bùm t NNCQ L1 = Σ– 1
u Phép giao c a hai NNCQ L1∩L2
đ u làcác NNCQ
40/61
\Gi s α1v α2làc c BTCQ ch đ đnh L1, L2 tt ng ng ng :
u L1 = L(α1)
u L2= L(α2)
\Khi đKhi đó, bi u th c chính quy :
u α1∪α2
ch đ đnh ngôn ng : L(α1∪α2) = L1∪L2
c ng làNNCQ
41/61
α1α2
ch đ đnh ngôn ng :
L(α1α2) = L1.L2
c ng làNNCQ
42/61
Khi đ
Khi đóngôn ng L1R= { w | wR∈L1} làNNCQ
ôhh M’=(Q’, ∑’, Δ’, q0’, F’) th a nh n L1R nh sau :
u Q’= Q ∪{q0’} (q0’ àtr ng thái đđ u m i đi đ c thêm vào)
u ∑’= ∑
u F’= { q0} (tr ng thái đđ u tr thành tr ng thái cu i duy nh t)
u Δ’= { (q, wR, p) | (p, w, q) ∈Δ} ∪{ (q0’, ε, q) | q ∈F }
¬Các chuy n tip c a Δ’là ác chuy n tip c a M
nh ng theo cách ng c li
¬Thêm chuyn tip m i t tr ng thái đi đu
vo m i trng thái cui c a M
Trang 8\Xây d ng M’=(Q’, ∑’, Δ’, q0’, F’) th a nh n L1R nh sau :
Chú ý q0’ là tr ng thái đ u m i thêm vào
Chúý q0’ àtr ng thái đi đ u m i thêm vào
bba
q1
q1
q0
q0
L1R = (ba)*abba*
ε
q1
q0’
q0’
a ba
q0
q0 abb
44/61
\B c a L1, ký hi u L1= ∑*-L1, c ng làNNCQ
\T ôhh đ n đ ôhh đ n đ nhM = (Q, ∑, δ, q0, F) th a nh n L1, xây d ng ôhh M’=(Q’, ∑’,δ’, q0’, F’) th a nh n L1 nh sau :
uQ’= Q
u∑’= ∑
uδ’= δ
uF’= Q -F Hoán v vai trò c a các tr ng thái đđ t đt đ c và không đ không đ t đt đ c
cho các ôthh không đ n đc ôthh không đ n đnh
45/61
\Xây d ng M’=(Q’, ∑’, Δ’, q0’, F’) th a nh n L1 nh sau :
Chú ý q0’ là tr ng thái đ u m i thêm vào
Chúý q0’ àtr ng thái đi đ u m i thêm vào
a
q1
q1
q0
q0
a, b
L1R = (ba)*abba*
ε
q1
q0’
q0’
a ba
q0
q0 abb
a
b qq1 1
q0
q0
b
a
46/61
Cách 1: Dùng phép bi n đn đ i L1∩L2= L1∪ L2 Cách 2: Xây d ng ôhh đđ M ng ôhh đđ M = (Q, ∑, δ, q0, F)
th a nh n L1∩L2xu t phát t hai ôhh đđ hai ôhh đđ :
¬M1= (Q1, ∑, δ1, q01, F1) th a nhn L1
¬M2= (Q2, ∑, δ2, q02, F2) th a nhn L2
¬Q = Q1×Q2M i tr ng thái c a M làm t c p tr ng thái
¬δ((q1, q2), a)=(p1, p2) n uδ1(q1, a)=p1, δ2(q2, a)=p2, ∀a∈Σ
¬q0= (q01 q02)
¬F = F1×F2
47/61
\Cho M1v M2sao cho L1=L(M1)=b*aab, L2=L(M2)=b*ab*
L(M) = b*aab ∩ b*ab*= b*a L(M) = b*aab ∩b*ab*= b*a
a
B
A
b
a
E
D
b
ab
C
b
a
B,E A,D
b
48/61
\Ta có n m bài toán c b n sau đây n sau đây :
Bài toán 1:X c đc đnh xem cóph i w∈L hay không ?
Bài toán 2:X c đc đnh xem cóph i L làr ng hay không ?
Bài toán 3:X c đc đnh xem cóph i L =∑*?
Bài toán 4:X c đc đnh xem cóph i L1⊆L2?
Bài toán 5: Xác đc đnh xem cóph i L1= L2?
Trang 9\Bài toán 1 còn đgl còn đgl “bài toán thành viên”
u Xây d ng m t ôtômat đ n đt ôtômat đ n đnh xut phát t s mô t c a L
u Cho ôtômat th c hi n vic đoc đoán nhn câu w đã chon câu w đã cho
50/61
u Xây d ng m t ôhh (đ n đnh ho c không đ n đc không đ n đnh) M
th a nh n L
u Ngôn ng L ≠∅n u, trong s đtrong s đ biu di n ôtômat M,
t n t i m t đt đ ng đi ging đi gi a tr ng thái đđ u
v m t tr ng thái k t thúc nào đo đó
51/61
u Xây d ng m t ôhh M th a nhn ngôn ng b c a L
L(M) = L = ∑*-L
u Ki m tra M không th a nh n m t câu nào L(M) = ∅
b ng cách ki m tra n u L = ∅? (Bài toán 2)
52/61
\Bài toán 4 gi i đi đ c b ng cách ki m tra L1∩L2= ∅? (Bài toán 2)
53/61
\Bài toán 5 gi i đi đ c b ng cách ki m tra các đic đi u ki n :
u L1⊆L2 (Bài toán 4)
u L2⊆L1 (Bài toán 4)
54/61
1 Mi ngôn ng h u h n (cóh u h n câu) đ đ u làchính quy
Vìngôn ng có u hn câu L = {w1, , wk}
L s đ đ c ch đ đnh b i BTCQ L = L(w1∪ ∪wk)
do đ
do đóL làchính quy
2 Mt ngôn ng không chính quy ph i ch a vô h n câu
T tính cht “L có u hn câu”→“L chính quy”suy ra :
¬ “L không chính quy”→“L ch a vôhn câu”
¬ Tuy nhiên “L chính quy”→“L có u hn câu” không đ không đúng
Chng hn, ∑* làNNCQ cóvô h n câu
3 Mt ngôn ng vô h n câu s ch a s câu không b ch n trên
4 Mi NNCQ đi NNCQ đ c th a nh n b i m t ôtômat h u hn ch g m
m t s c đ đnh trng thái
5 nh lý “b m”
Trang 10u d i m t câu b t k thu c ngôn ng s không cóc n trên
uGi s Card(∑)=m, N làc n trên c a m i đi đ d i câu thu c L :
∀w ∈L, |w| ≤N < ∞
uKhi đKhi đóta cóth li t kê các câu :
1 câu có đ đ dài 0 (g m câu ε)
+m câu có đ đ dài 1 (g m n câu, m i câu làmt ký t ca ∑)
+m2 câu có đ đ dài 2 (g m các câu t o thành t 2 ký t ca ∑)
+mN câu có đ đ dài N
= không ph i vô hn (mâu thun !)
1
M
1
MN + 1−
56/61
u Gi s w = xuy v i u ≠ε thìkhi M th c hi n đon đoán nh n w,
M ph i v t qua m t tr ng thái qkít ra hai l n :
¬M đi tM đi t q0 đn qk đ đo đoán nh n x
¬M đi tM đi t qk đn qk đ đo đoán nh n u
¬M đi tM đi t qk đn qj ∈Qđ đo đoán nhn y
u T đ đó, m i câu cód ng xu*y c ng đng đ c th a nhn b i M
57/61
u ∃x, u, y ∈∑*, v i u ≠εsao cho xu*y ∈L, ∀n ≥0
Ng i ta phát tri n đn đnh lý “b m” nh sau :
u Cho w ∈L sao cho |w|≥m
uKhi đKhi đó∃x, u, y sao cho xuy = w, v i u ≠εv |xu|≤m
u ∀n, xuny ∈L
58/61
\Ta s v n d ng đng đnh lí "b m“theo cách ph đ đnh nh sau :
“L không tho mãn LB”→“L không ph i làNNCQ”
uC n ch ra r ng L không tho mãn LB, ngha làkhông th ∃x, ∃u, ∃y, u≠ε, sao cho xuky ∈anbn, ∀k
uGi s t n t i x, u, y nh v y và ét các tr ng h p c a u :
¬u∈a* : xuky∉anbn, vìkhi lp u theo LB, s ch a s ≠s ch b
¬u∈b* : cng không th đ đ c vi cách lp lun nh trên
¬u∈(a∪b)*−(a*∪b*) = (aa*b(a∪b)*)∪(bb*a(a∪b)*)
gm m t s con a r i m t s con b tu ý
cng không th xy ra,
vìcóláo nháo các con a ri các con b trong uk(k>1)
uV y anbn không ph i làNNCQ
59/61
u LK={ anbn| n ≤K < ∞} cón h u h n hay b ch n trên
u Mi câu cód ng anbn∈LK đ đ c nhn bi t b i m t ôhh
u Không ∃ôhh th a nh n m i câu anbn,
làphép h p vô h n các ngôn ng LK
u Vn đn đ đ đ t ra làc n b sung kh n ng cho l p các ôhh
đ chúng cóth th a nhn ngôn ng anbn
60/61
(ch a m i câu có đ đ d i n2làm t s bình phnh ph ng đng đúng)