Chương1. Văn Phạm và ngôn ngữ 1. Các khái niệm cơ bản. 1.1. Các khái niệm chung. a. Bảng chữ cái. Bảng chữ cái là một tập hợp hữu hạn các phần tử, các phần tử của nó ta gọi là các chữ cái hoặc các ký tự. b. Ví dụ. Tập các ký tự La tinh {a,b,…,z, A,B,…,Z} Tập các số{0,1} Tập các các ký tự La tinh {,,,…}. Tập các số {0,1,2,3,4,5,6,7,8,9}. Chú ý răng bảng chữ cái là một tập hợp nên ta ta vẫn dùng các ký hiệu thuộc nh trong lý thuyết tập hợp. 1.2. Xâu sinh ra trên bảng chữ cái. a. Xâu. Xâu hay từ được sinh ra trên bảng chữ cái là một dãy bất kỳ các phần tử thuộc dãy đó. Gọi xâu là x , độ dài xâu được ký hiệu là x. Nh vậy khái niệm xâu cũng đồng nghĩa với khái niệm chuỗi ký tự. Xâu rỗng là xâu không chứa phần tử nào thường ký hiệu e. b. Tập Các xâu. Cho V là một bảng chữ cái, gọi V+ là tập tất cả các xâu sinh ra từ V trị xâu rỗng, V là tập tất cả các xâu sinh ra từ V kể cả xâu rỗng. V= V+{e}. c. Ví dụ: V={a,b,c} X+={abc,cab,…} V={0,1} V={e,00,1,0,100,…} Ta quy ước rằng an:=aa…a, n lần ký tự a. 1.3. Các phép toán trên xâu. a. Ghép 2 xâu. Cho xâu x=abc…k, y=rp..q phép ghép 2 xâu là xâu nối 2 xâu với nhau xy:= abc…krp..q. b. Đảo ngược 2 xâu. Cho x=x1x2…xk gọi xâu x’:= xkxk1…x1 là xâu đảo của x. 1.4. Khái niệm ngôn ngữ. a. Ngôn ngữ trên bảng chữ cái. Cho V là tập chữ cái gọi tập con bất kỳ của V là ngôn ngữ trên bảng V.
Trang 1Chương1 Văn Phạm và ngôn ngữ
$1 Các khái niệm cơ bản.
1.1 Các khái niệm chung.
a Bảng chữ cái Bảng chữ cái là một tập hợp hữu hạn các phần tử, các phần tử của
nó ta gọi là các chữ cái hoặc các ký tự
b Ví dụ - Tập các ký tự La tinh {a,b,…,z, A,B,…,Z}
1.2 Xâu sinh ra trên bảng chữ cái.
a Xâu Xâu hay từ được sinh ra trên bảng chữ cái là một dãy bất kỳ các phần tử
thuộc dãy đó Gọi xâu là x , độ dài xâu được ký hiệu là x Nh vậy khái niệmxâu cũng đồng nghĩa với khái niệm chuỗi ký tự Xâu rỗng là xâu không chứa phần
tử nào thường ký hiệu e
b Tập Các xâu Cho V là một bảng chữ cái, gọi V+ là tập tất cả các xâu sinh ra từ Vtrị xâu rỗng, V* là tập tất cả các xâu sinh ra từ V kể cả xâu rỗng V*= V+∪{e}
c Ví dụ: V={a,b,c} X+={abc,cab,…}
V={0,1} V*={e,00,1,0,100,…}
Ta quy ước rằng an:=aa…a, n lần ký tự a
1.3 Các phép toán trên xâu.
a Ghép 2 xâu Cho xâu x=abc…k, y=rp q phép ghép 2 xâu là xâu nối 2 xâu với
nhau xy:= abc…krp q
b Đảo ngược 2 xâu Cho x=x1x2…xk gọi xâu x’:= xkxk-1…x1 là xâu đảo của x
1.4 Khái niệm ngôn ngữ.
a Ngôn ngữ trên bảng chữ cái Cho V là tập chữ cái gọi tập con bất kỳ của V* là
ngôn ngữ trên bảng V
Trang 2Như vây ngôn ngữ là một tập hợp ký hiệu là L Số phần tư của L là lực lượng của nó,nếu hữu hạn thì ta nói L là ngôn ngữ hữu hạn và vì nó là tập hợp nên mọi phép toántrên L cũng giống như trên tập hợp
L1∪L2:={x: x thuộc L1 hoặc x thuộc L2}
L1∩L2:={x: x thuộc L1 và x thuộc L2}
L1L2:={x=uv: u thuộc L1 vàv thuộc L2}
L0:={e}; Ln:=Ln-1L; L+:=L1L2 Ln n>=1 gọi là tập các xâu có độ dài nhỏ hơn hoặcbằng n L*:=L+∪
{e}
1.3 Văn phạm và ngôn ngữ sinh bởi văn phạm.
a Định nghĩa Văn phạm G là một bộ gồm các thành phần G:=(N,T,S,P) trong đó:
- N là một tập hữu hạn các ký tự không kết thúc
- T là một tập hữu hạn các ký tự kết thúc và N∩T=∅
- P là tập các luật sinh(luật sản xuất, quy tắc dẫn xuất) , nói cách khác P là các ánh
xạ từ (N∪T)* vào (N∪T)* Nếu q∈(N∪T)* là ảnh của p qua luật sản xuất P ta kýhiệu p→q và gọi là một quy tắc dẫn xuất của P
- Nếu có một dãy dẫn xuất trong P có dạng p1 →p2, p2→p3, …,pn-1→pn ta ký hiệu p1
*→pn
- S là ký tự đặc biệt của N gọi là trạng thái đầu hoặc ký tự bắt đầu
- Ta chú ý rằng từ nay các ký tự không kết thúc ta ký hiệu bằng các chữ cái hoa ví
nh A, B, C,…còn các ký tự kết thúc ta ký hiệu là các chữ cái thường ví nh a, b, c,
…
- Các xâu thuộc (N∪T)* thông thường ký hiệu là α, β, γ, χ, δ…
b Ngôn ngữ sinh bởi văn phạm Cho văn phạm G=(N,T,S,P), ta gọi L(G):={w:
w∈T* và S *→w} là ngôn ngữ được sinh ra bởi văn phạm G
c Nhận xét Từ định nghĩa trên ta suy ra rằng ngôn ngữ sinh ra bởi văn phạm G là
tập tất cả các xâu gồm các ký tự kết thúc sau một số lần được tác động bởi các luậtsản xuất bắt đầu từ ký tự xuất phát
Trang 3Ví dụ - Cho G=(N,T,S,P) trong đó N={S}, T={a}, P={1 S → aaa, 2 S →aaaS}, Khi
đó L(G)={a3n,n dương}
- Cho G=(N,T,S,P) trong đó N={S}, T={0, 1}, P={1 S → 0S1, 2 S →01},Khi đó
S→ 0S1→00S11→000S111→…→0iS1i, vậy nên L(G)={ 0n1n, n>=1}
- Cho G=(N,T,S,P) trong đó N={S,B,C}, T={a,b,c}, P={1 S → aSBC, 2 S
→aBC, 3 cB →Bc, 4 aB →ab, 5 bB →bb, 6 bC →bc, 7 cC →cc }, Khi đó:
- Với w=anbncn , áp dụng quy tắc 1 n-1 lần được:
Trang 4- Lặp lại các bước từ công thức (4) đến (11) ta được:
S*→anbncn =w Vậy w∈L(G)
Ngược lại ta chứng minh nếu w∈L(G) thì w phải có dạng anbncn
Thật vậy, để tạo ra một chuỗi chỉ gồm các ký tự kết thúc thì:
1 Luật 1 có thể tác động n lần, mỗi lần lại sinh ra ký tự xuất phát
2 Sau nlÇn tác động lên luật thứ nhất thì xâu sinh ra có dạng anS(BC)n
3 Để ký tự xuất phát mất đi ta phải tác động xâu vừa nhận được lên luÊt thứ 2 vàluật này chỉ tác động lên chuối duy nhất 1 lần và do đó ta được xâu mới là
Và ngôn ngữ sinh ra bởi văn phạm.
2.1 Phân loại văn phạm.
a Văn phạm loại 0 Văn phạm G mà các quy tắc dẫn xuất của nó không có bất kỳ
điều kiện ràng buộc nào gọi là văn phạm loại 0
b Văn phạm loại 1 Văn phạm G mà các quy tắc dẫn xuất của nó có dạng α→β∈Pthoả điều kiện α, β∈(N∪T)+ và α<=β
c Văn phạm loại 2 Văn phạm G mà các quy tắc dẫn xuất của nó có dạng α→β∈Pthoả điều kiện α∈N và β∈(N∪T)+ Văn phạm loại 2 có tên gọi là văn phạm phingữ cảnh
d Văn phạm loại 3 Văn phạm G mà các quy tắc dẫn xuất của nó có dạng A→aBhoặc A→a với A, B ∈N và a∈T Văn phạm loại 3 có tên là văn phạm chính quy
e Nhận xét Văn phạm các loại thoả điều kiện sau: 3⇒2⇒1⇒0
Trang 5f Các ví dụ.
g.
Ví dụ 1 G=(N,T,S,P); N={S,A,B}; V={a,b}; P gồm 1 S →aB, 2 S →bA, 3 A →a,
4 A →aS, 5 A →bAA, 6 B →b, 7 B →bS, 8 B →aB Rõ ràng đây là văn phạm phingữ cảnh
Ví dụ 2 G=(N,T,S,P); N={S,A,B}; V={0,1}; P gồm 1 S →0A, 2 S →1B, 3 A
→0A, 4 A →0S, 5 A →1B, 6 B →1B, 7 B →1, 8 B →0, 9 S→0 Rõ ràng đây làvăn phạm chính quy
2.2 Phân loại ngôn ngữ.
a Ngôn ngữ loại 0 Ngôn ngữ sinh bởi văn phạm loại 0 gọi là ngôn ngữ loại 0.
b Ngôn ngữ loại 1 Ngôn ngữ được sinh ra bởi văn phạm loại 1 gọi là ngôn ngữ loại
1
c Ngôn ngữ loại 2 Ngôn ngữ được sinh ra bởi văn phạm loại 2 gọi là ngôn ngữ loại
2
d Ngôn ngữ loại 3 Ngôn ngữ được sinh ra bởi văn phạm loại 3 gọi là ngôn ngữ loại
3 hay là ngôn ngữ chính quy
e Nhận xét Văn phạm các loại thoả điều kiện sau: 3⇒2⇒1⇒0
b Cây dẫn xuất Cho văn phạm phi ngữ cảnh G=(N,T,S,P) Giả sử w∈L(G), w=w1
w2…wn , wi∈T và S*→w, giả sử rằng dẫn xuất của w
Trang 6- Bước 1: Các đỉnh con của S là các ký tự được sinh ra do áp dụng luật sinh thứ 1.(Đó là A11 A12 … A1n
- Bước 2 Các đỉnh con của A1j j =1 n : Là những ký tự được sinh ra do áp dụngluật sinh thứ 2
- Bước i: Giả sử đã xác định được các đỉnh ở bước i-1, các đỉnh con được sinh ra ởbước thứ i là các đỉnh sinh ra từ các đỉnh ở bước thứ i-1 khi áp dụng luật sinh thứ i
- Các nút lá đọc theo thứ tự từ trái sang phảI là xâu w
Hình sau mô tả cây dẫn xuất của w
S
A11 A12 … A1n
A21 A22… A2m
w1 w2 … wn
Ví dụ: Cho G=(N,T,S,P); N={S,A}; T={a,b}; P gồm 1 S →aAS, 2 A →SbA, 3 A
→SS, 4 S→a, 5 A→ba w=aabbaa, Với w ta có dẫn xuất sau:
S →aAS →aSbAS →aabAS →aabbaS→aabbaa Cây dẫn xuất của w có dạngsau:
Trang 7c Định lý 1.1 Cho văn phạm phi ngữ cảnh G=(N,T,S,P), giả sử w là xâu khác rỗng,
khi đó S* →w khi và chỉ khi tồn tại cây dẫn xuất trong văn phạm G mà của các nút látạo nên xâu w
2.4 Một số tính chất của ngôn ngữ.
Ngôn ngữ nh ta đã thấy ở trên thực chất là tập hợp do đó nó có đầy dí các tính chấtcủa nó, tuy nhiên ở đây ta cần xem xét thêm những tính chất mang tính đặc thù củangôn ngữ do văn phạm sinh ra
a Tính chất 1 Ngôn ngữ sinh ra bởi văn phạm là đóng với phép hợp, phép giao và
nhân ngôn ngữ.(Tính đống có nghĩa là nếu 2 văn phạm cùng loại thì ngôn ngữ sinh racùng loại và hợp giao và nhân của các ngôn ngữ trên cùng loại)
- Chứng minh tính đóng của phép hợp:
Thật vậy,giả sử G1=(N1,T,S1,P1), G2=(N2,T,S2,P2) là 2 văn phạm cùng loại và L1, L2 làcác ngôn ngữ tương ứng Gọi L= L1 ∪ L2 ta chứng minh tồn tại văn phạm G cùng loạivới G1, G2 sinh ra L
Ta xây dung Văn phạm G nh sau:
Chứng minh tính đóng của phép giao:
Từ các văn phạm trên ta xây dựng G sao cho L(G)=L1∩L2 nh sau:
Trang 8Kiểm tra lại ta thấy điều khẳng định là đúng.
Chứng minh tính đóng của phép nhân: Từ các văn phạm trên ta xây dựng G sao
cho L(G)=L1.L2 như sau: G=(N,T,S,P) trong đó T:=T1∪T2, N:=N1∪N2∪{S},P:=P1∪P2∪{S → S1S2}
Ta chứng minh L(G)⊆L1L2, thật vậy giả sử w ∈L(G) khi đó tồn tại dãy dẫn xuất S
*→w
Muốn vậy đầu tiên phải áp dụng quy tắc S→S1S2 sau đó để khử được S1 ta phải ápdụng các luật P1, sau hữu hạn bước ta sẽ được dãy có dạng w1S2, áp dụng tiếp các luậtcủa P2 ta sẽ khử được S2 và nhận được xâu w1 w2=w Ta nhận được điều cần chứngminh Ngược lại tương tự
- Ta mô tả các tính chất trên thông qua ví dụ sau: Cho văn phạm G1=(N1,T,S1,P1),
G2=(N2,T,S2,P2) là 2 văn phạm cùng loại trong đó N1={S1}, T1={a, b}, P1={ S1
→ab, S1→aS1b}; N2={S2}, T2={c}, P2={ S2→cS2, S2→c}
Xây dựng văn phạm G3=(N, T, S, P) sao cho: L(G3)= L(G1)∪L(G2); L(G3)= L(G1)
∩L(G2);
L(G3)= L(G1) L(G2)
Trang 92 Ta đã biết L(G1)={anbn, n>=1}, L(G2)={cm, m>=1} Ta chứng minh L(G3)=L(G1)∪L(G2)={ anbn,cm, n, m>=1}.Văn phạm G3 được xây dựng như sau:N:={N1∪N2∪{S ∉N1∪N2}; T:={a,b,c} và các luật sinh như sau:P:={S → S1, S
→ S2, S1→ab, S1→aS1b}, S2→cS2, S2→c}
- Giả sử w∈L(G3) khi đó tồn tại dãy dẫn xuất S*→w (ứng với S*→w1 →w2 →w3
…→wk=w) Để có thể nhận được w thì w1 chỉ có thể là S1 hoặc S2 Nếu w1 là S1
S2*→w2 Lập dẫn xuất mới
S→S1S2 →aS1bS2 …→anbnS2=w1S2→anbnc S2→…anbncm-1S2 →anbncm=w , đây là dẫnxuất trong L(G3), từ đây suy ra điều phải chứng minh
G=(N,T,S,P)
c Tính chất 2 Loại của ngôn ngữ đóng với phép lặp Nghĩa là Ln cùng loại với L
d Tính chất 3 Cho G=(N,T,S,P) không phải là văn phạm loại 0 với ký tự xuất phát
S có ở vỊ phải của quy tắc dẫn xuất, khi đó tồn tại văn phạm G’=(N’,T’,S,P’) cùngloại và tương đương với G nhưng không có ký tự xuất phát ở vỊ phải của quy tắc dẫnxuất
Trang 10Chứng minh Xây dựng G’=(N’,T,S’,P’) nh sau:
- N’:=N∪{S’}, ở đây S’ là ký hiệu mới chưa có trong N và T
P’:=P∪{ S’→α/S→α∈P, α∈(N∪T)+}, nghĩa là P’ gồm các quy tắc của G bổ sungthêm các quy tắc dạng S’→α nếu trong P có quy tắc S→α Với quy ước trên ta thấy
- Không có quy tắc nào mà ký tự xuất phát xuất hiện ở vỊ phải của dẫn xuất
Giả sử w∈L(G) khi đó tồn tại dãy dẫn xu©t S*→ w và tồn tại α∈(N∪T)* sao cho
S→α*→ w Theo cách xây dựng dẫn xuất vì trong G có S→α nên trong G’ có S’→α
vì vậy dẫn xuất S’→α*→ w là dẫn xuất trong G’ vậy nên w∈L(G) do đó L(G)
⊆L(G’)
Ngược lại nếu w∈L(G’) nghĩa là S’*→w tồn tại α∈(N∪T)* S’→α*→ w mà S’→α*
có tương ứng S→α trong G vậy nên S→α*→w là dẫn xuất trong G cho nên L(G’)
⊆L(G)
d Nhận xét Tính chất 3 cho phép chúng ta coi các văn phạm loại 1,2,3 không có
các ký tự xuất phát nằm ở vỊ phải của các dẫn xuất và do e∈L(G) nên trong luậtsinh phải có S→e
e Tính chất 4 Cho G không phải văn phạm loại 0, khi đó hoặc L(G)\{e} hoặc L(G)
∪{e} là ngôn ngữ cùng loại với L(G)
Chứng minh Theo nhận xét của tính chất 3 nếu văn phạm khác 0 sinh ra từ rỗng thìphải có dẫn xuất S→e vì vậy L(G) ∪{e} và L(G)\{ e} đồng nghĩa với việc loại bỏhay bổ sung quy tắc S→e của tập P do đó loại của ngôn ngữ không thay đổi
f Tính chất 5.(Tính chất đệ quy của ngôn ngữ) Nếu G=(N,T,S,P) là văn phạm loại
1(cảm ngữ cảnh) khi đó G là đệ quy
Ta nói một văn phạm có tính đệ quy nếu tồn tại thuật toán xác định một xâu w chotrước có thuộc L(G) hay không
Trước tiên ta có các nhận xét sau:
- Nhắc lại rằng: Chỉnh hợp p từ n phần tư là một bộ gồm p phần tư có phân biệt thứ
tự từ n phần tư đã Số lượng các chỉnh hợp là np
Trang 11- G=(N,T,S,P) là cảm ngữ cảnh xâu rỗng e ∈L(G) khi và chỉ khi có tập luật sinh P
có S→e do vậy có thể loại bỏ luật này để được văn phạm cảm ngữ cảnh mới khôngchứa từ rỗng G’:=(N,T,S,P’) với ngôn ngữ tương ứng L(G’)=L(G)\{e}
- Trong mọi quy tắc dẫn xuất của G’ độ dài vỊ phải phải lớn hơn độ dài vỊ trái, giả sửrằng V= N ∪T và V= n và e ≠w ∈L(G’) nghĩa là tồn tại
S*→w hay cụ thể hơn ta có dãy dẫn xuất: S→α1→α2→…αm =w, và theo định nghĩangôn ngữ suy ra
α1<=α2<=…<=αm
- Giả sử rằng tồn tại chỉ số i sao cho αi,αi+1,…αi+j có độ dài như nhau và bằng p , khi
đó nếu j>=np thì trong dãy dẫn xuất trên có ít nhất 2 xâu giống nhau
- Theo nhận xét về chỉnh hợp suy ra V* có tối đa là np xâu có độ dài p, do đó trongtrêng hợp giống nhau ta có thể lược bỏ ít nhất là 1 bước
trong dãy dẫn xuất tức là nếu αr = αs (r<s) thì dẫn xuất có thể mô tả lại ngắn hơn nhưsau:
S→α1→…αr→αs+1…→αm =w
Từ đây ta rót ra nhận xét sau:
- NỊu có một dẫn xuất của w thì dẫn xuất đó không quá dài, có nghĩa là độ dài của
w là hữu hạn
Từ các nhận xét trên ta chứng minh tính chất đặt ra theo các bước sau:
- Ta luôn coi L(G) không chứa từ rỗng và điều này đồng nghĩa với việc trong Pkhông có quy tắc S→e
- Giả sử w∈L(G) suy ra w∈V+, w=n( vì xâu không quá dài), ta chỉ thuật toán bằngcách xây dựng tập Tm như sau:
1 Tm:={ αα∈V+, α<=n; S*→α có không quá m bước}
2 T0:={S}
3 Ta có công thức truy hồi sau: Tm= Tm-1∪{αβ→α∈P ; β∈ Tm-1; α<=n }Thật vậy, giả sử α∈ Tm; α<=n } khi đó tồn tại dẫn xuất s*→α, không quá m bước
vàα<=n , suy ra s→α1→α2 …→β→α Điều nhận được
cuối cùng nghĩa là s*→β không quá m-1 bước và β<=n , suy ra
Trang 124 Cuối cùng giả sử rằng V=q khi đó trong V+ số xâu có độ dài nhỏ
5 hơn hoặc bằng n là s=1+q+…+qn<(1+q)n+1 và là hữu hạn trong T’, điều này cónghĩa là tồn tại thuật toán để xác định xem w có thuộc L(G) hay không
g Các ví dụ minh hoạ
Ví dụ 1 Cho G=(N,T,S,P) trong đó N:={S,B,C}, T:={a,b,c}
P: 1 S→aSBC, 2 S→aBC, 3 cB→Bc, 4 aB→ab, 5 bB→bb, 6 bC→bc, 7
cC→các Xét từ w=abac ta xác định w thuộc L(G) hay không Xây dựng
T0:={S}, T1:={S, aSBC, aBC}, T2:={ S, aSBC, aBC,abC}, T3:={ S, aSBC,aBC,abC,abc}, T4:={ S, aSBC, aBC,aBC,abc}:=T’ vì abac không thuộc T’ nên w∉
L(G)
Ví dụ 2 Cho văn phạm G=(N,T,S,P) trong đó N={ S, a1, a2, a3…,an},T={ a1,
a2,a3…,an}, tập quy tắc có dạng: P={1 S→a1A1, 2 A1→a2A2, 3 A2→a3A3,…, A 2→an-1An-1, An-1→an
n-Đây là văn phạm chính quy và ngôn ngữ được sinh ra có dạng L(G)= {w= a1 a2a3…
an}
Trang 13Ví dụ 3 Cho văn phạm G= G=(N,T,S,P) trong đó N={S},T={ a1, a2,a3…,an}, tập quytắc có dạng: P={1 S→aS, 2 S→a, a∈ T} Đây là văn phạm chính quy vàL(G)={w∈T+}=T+.
Ví dụ 4 Cho văn phạm G= G=(N, T, S, P) trong đó N={S},T={ a}, tập quy tắc có
dạng: P={1 S→aS} Đây là văn phạm chính quy song L(G)=φ vì không bao giờnhận được xâu kết thúc
Ví dụ 5 Cho văn phạm G= G=(N,T,S,P) trong đó N={S, A},T={ a,b}, tập quy tắc có
dạng: P={1 S→aSb, 2 S→ab} Đây là văn phạm chính quy và L(G)={anbn; n>=1}
Ví dụ 6 Cho văn phạm G= G=(N,T,S,P) trong đó N={S, A},T={ a,b}, tập quy tắc có
dạng: P={1 S→aS, 2 S→aA, 3 A→bA, 4 A →b} Đây là văn phạm chính quy vàL(G)={anbm; m,n>=1}
Ví dụ 7 Cho văn phạm G= G=(N,T,S,P) trong đó N={S, A},T={ a,b}, tập quy tắc có
dạng: P={1 S→Sa, 2 A→aAb, 3 A→ab, 4.S →Aa} Đây là văn phạm phi ngữ cảnh
5.1 Các khái niệm cơ bản.
a Cơ chế hoạt động của Automat Ta có thể mô tả automat như một hệ thống xử lý
thông tin gồm các bộ phận:
1.X – kênh nhận thông tin vào
2.Y – kênh phát tín hiệu ra
Trang 143.S – bộ chế biến xử lý thông tin và biến đổi trạng thái
Đồng thời ta quy ước cơ chế hoạt động của hệ thống là rời rạc nghĩa là thông tin vào
-ra thực hiện liên tiếp tại những thời điểm khác nhau
b Các loại Automat
1 Automat Mealy Bộ M=( X,Y, S,δ,λ) trong đó
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Tập hữu hạn gọi là tập các trạng thái
δ - ánh xạ từ XxS→S gọi là hàm chuyển trạng thái
λ - ánh xạ từ XxS→Y gọi là hàm đưa thông tin ra
Được gọi là Automat Mealy
Với định nghĩa trên ta hiểu Automat Mealy hoạt động theo cơ chế tín hiệu phát ra phụthuộc vào tín hiệu vào và trạng thái nhận tín hiệu
2 Automat Moore Bộ M=( X,Y, S,δ,λ) trong đó
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Tập hữu hạn gọi là tập các trạng thái
δ - ánh xạ từ XxS→S gọi là hàm chuyển trạng thái
λ - ánh xạ từ S→Y gọi là hàm đưa thông tin ra
Được gọi là Automat Moore
Với định nghĩa trên ta hiểu Automat Moore hoạt động theo cơ chế tín hiệu phát raphụ thuộc trạng thái nhận tín hiệu
3 Automat trạng thái Automat trạng thái là bộ M=( X,S,δ) trong đó
X -Tập hữu hạn các ký hiệu vào
S - Tập hữu hạn gọi là tập các trạng thái
δ - ánh xạ từ XxS→S gọi là hàm chuyển trạng thái
Bộ chế biến thông tin và biến đổi trạng thái S
Trang 15Với định nghĩa trên ta hiểu Automat trạng thái hoạt động theo cơ chế không có kênh
ra, nó chỉ nhận tín hiệu phát ra và đổi trạng thái Rõ ràng Automat trạng thái làtrường hợp riêng của Automat Moore khi Y trùng với S
4 Automat không trí nhớ Bộ M=( X,Y, S,λ) trong đó
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Trạng thái,
λ - ánh xạ từ X→Y gọi là hàm đưa thông tin ra
Gọi là Automat không trí nhớ
Automat không trí nhớ hoạt động chỉ có một trạng thái ở mọi thời điểm tín hiệu phát
ra chỉ phụ thuộc tín hiệu vào
Ví dụ: Automat mô tả phép cộng của 2 số nhị phân mà từ vào là các phần tử của tậpX={00,01,10,11} đầu ra y là các phần tử Y={0,1} Kênh vào x có 2 mạch x1, x2
tương ứng các số nhị phân 0,1
Bảng hàm chuyển trạng và hàm ra được cho dưới dạng sau:
c phương pháp biểu diễn Automat.
a Phương pháp đồ thị Biểu diễn Automat dưới dạng đồ thị có hướng trong đó:
Bộ môn khoa học máy tính - HVKTQS
Trang 166 Mỗi trạng thái S ứng với một nút M=( X,Y, S,δ,λ)
7 Cung có hướng đi từ nút s1 đến s2 nếu δ(s1,a)=s2
8 Trên cung (s1,s2) ta ghi giá trị đầu vào a
Ví dụ: Với Automat hữu hạn M=( X, S,δ,s0, F) trong đó
X - Tập hữu hạn các ký hiệu vào
1 1
s
1
s3s
Trang 17a Định nghĩa Với Automat hữu hạn M=( X, S,δ,s0, F) trong đó:
X - Tập hữu hạn các ký hiệu vào
b Mô tả hoạt động của Automat Ta có thể mô tả các bước làm việc của
Automat hữu hạn như sau: Khi cho xâu x1 x2… xn =w∈X*, đầu tiên máy ở trạng thái
s0 và đầu đọc nhìn vào « có ký hiệu x1 Tiếp theo máy từ trạng
thái s0 sang s1=δ(s0,x1) và đầu đọc dịch sang x2, sau đó tiếp tục dịch chuyển từ trạngthái s1 sang trạng thái mới s2= δ(s1,x2)=δ(δ(s0,x1),x2),… , cho đến khi đạt đến trạngthái
Trang 18gọi là ngôn ngữ được đoán nhận bởi Automat M.
Tập trạng thái S trong quá trình tính toán là hữu hạn nên M được gọi là automat hữuhạn
2.2 Các phương pháp biểu diễn Automat
a Phương pháp cho bảng chuyển Ta xây dựng bảng như sau:
1 Một cột liệt kê các trạng thái của tập S
2 Cột liền kÌ liệt kê giá trị của hàm chuyển tương ứng với trạng thái và ký tự vào
Điều này chứng tỏ Automat M đoán nhận xâu w=110101
Dãy trạng thái của M khi cho xâu vào w= 110101 được biểu diễn như sau:
Trang 19b Phương pháp cho Automat bằng đồ thị chuyển Dùng đồ thị có hướng
để mô tả hàm chuyển theo nguyên tắc sau:
- Mỗi trạng thái s là một đỉnh của đồ thị
- Nếu a ∈X và từ trạng thái si chuyển sang trạng thái sj=δ(si,a) thì sẽ có một cung cóhướng từ si sang đỉnh sj và trên cung đó được gán nhãn a
- Nếu δ(si,a)={sj1, sj2 , sj3,…, sjk} đối với automat không đơn định từ si sang {sj1, sj2 ,
Trang 200 0 0 0
1 1
2.3 Thuật toán mô phỏng đoán nhận xâu vào.
a Thuật toàn mô phỏng automat hữu hạn đoán nhận xâu vào.
Thông tin vào:
- Xâu w, kết thúc bởi ký hiệu hết file là eof
- Một automat hữu hạn với trạng thái đầu là s0 và tập trạng thái kết thúc là F
Thông tin ra:
- Đúng nếu M đoán nhận xâu w
- Sai nếu M không đoán nhận xâu w
s 3
s
2
Trang 21- Đối với đỉnh s* ⊆δ(s0,w1) ta xây dựng các đỉnh con của nó là các đỉnh thuộc tập
δ(s*,w2) và cứ tiếp tục cho đến ký tự cuối cùng của xâu
- Trong cây này nếu có một đường đi từ s0 đến một lá chứa trạng thái kết thúc thì tanói máy M đoán nhận được xâu vào đang xét, ngược lại ta nói M không đoán nhậnđược xâu vào đó Với xâu vào có dạng w=01001 máy M có cây đoán nhận đi từ s0
đến s4 ⊆ F nên máy M đoán nhận xâu trên
Cây có dạng sau:
Trang 222.4 Sự tương đương giữa Automat đơn định và đa định.
a Định lý 2.1 Lớp ngôn ngữ đoán nhận bởi autom¸t đơn định trùng với lớp ngôn
ngữ đoán nhận được bởi automat không đơn định
Chứng minh.
1 Theo định nghĩa automat đơn định và không đơn định thì lớp ngôn ngữ đoán nhậnđoán nhận được bởi đơn định nằm trong lớp ngôn ngữ đoán nhận được bởi automatkhông đơn định
2 Ta chứng minh bao hàm thức ngược lại
Giả sử M=(X,S,s0, δ, F) là automat đa định, ta xây dựng automat đơn địnhN=(X’,S’,q0, δ’, F’) nh sau:
S 31
s 0
s 1
s 0
s 3
S 0
S 31
s 4 s
Trang 23Vì sn ∈Un và sn ∈F nên Un∩F≠∅ nên theo định nghĩa F’ suy ra Un ∈F’
Theo những kết luận trên định nghĩa hàm δ’ ta sẽ có:
w= x1 x2 x3 … xn-1 xn
{s0} U1 U2…… Un-1 Un ∈F’
Điều này có nghĩa là w ∈ L(M) Định lý được chứng minh
Ví dụ 1 Cho automat không đơn định N=(X, S, s0, δ, F) với X={a,b}, S={s0, s1},F={s1} hàm chuyển δ S xX 2S cho nh sau:
Trang 24s0 {s0, s1} s1
s1 ∅ {s0, s1}
Khi đó automat tương đương với automat trên có dạng sau:
M=(X’, S’, q2, δ’, F’) với X’=X={a,b}, S’={ q1, q2, q3, q4} ở đây q1=∅, q2={s0},
s 2
Trang 25đương-3.1 Automat hữu hạn và ngôn ngữ chính quy.
a Định lý 2.2 Nếu G=(N,T,s0,P) là văn phạm loại 3 thì tồn tại Automat hữu hạn Msao cho L(G)=L(M)
Chứng minh: Không giảm tính tổng quát ta coi G là văn phạm tuyến tính trái tức làvăn phạm có luật sinh dạng A aB, A a, ta xây dựng M =(X, S, q0, δ, F) nhsau:
- Lấy X:=T; q0:=s0; S:=N∪{A}, A là trạng thái bổ sung chưa có trong N
- F:={s0, A} nếu s0 e là quy tắc trong P,
- F:={ A} nếu s0 e không có trong P
- Ngoài ra nếu s 0 e là quy tắc của P thì không ảnh hưởng đến kết quả, ta giả thiết s 0
không xuất hiện trong các luật sinh khác của P.
Xây dựng hàm chuyển nh sau
-δ(B,a) chứa C ⇔B aC∈P
Trang 26Với cách xây dựng hàm chuyển ta có:
-δ(s0,x1)⊇ A1, δ(A1,x2)⊇ A2, … ,δ(An-2,xn-1)⊇ B, δ(B,xn)⊇ A∈F, vì A thuộc F nên suy
- Nếu B=s0 suy ra trong G có luật sinh s0 e
Theo cách xây dựng trên trong P của G phải có các quy tắc sau:
Trang 27A xn
Hoặc luật sinh s0 e
Điều này có nghĩa là tồn tại s0* x, vậy nên x∈L(G)
Automat đoán nhận ngôn ngữ được xây dựng nh sau:
M=({0,1},{s0,A,B,C},s0,{A}), Dựa vào hàm chuyển ta có Automat sau:
0 0
0 1 0
0,1 1
c Định lý 2.3 Cho Automat M =(X, S, q0, δ, F) khi đó tồn tại văn phạm chính quy Gsao cho L(M)=L(G)
Chứng minh Không giảm tổng quát ta coi auotmt M =(X, S, q0, δ, F) là đơn định Taxây dựng G nh sau:
Ta nhận they rõ ràng G là văn phạm loại 3 Ta chứng minh L(G)=L(M)
- Lấy x∈L(G), giả sử x=x1…xn, khi đó ta có dẫn xuất sau trong G như sau:
s0 x1A1 x1x2A2 x1x2x3A3 …x1x2x3…xn-1An-1 x1…xn
s 0
A C
B
C
Trang 28Với cách xây dựng hàm chuyển ta có:
Định lý được chứng minh
3.3 Quan hệ tương đương
a Quan hệ 2 ngôi Cho tập S ta nói trên S có một quan hệ 2 ngôi R nếu nếu cặp
phần tư (x,y) xác lập mối quan hệ với nhau thông qua R, ký hiệu xRy Hay nói cáchkhác R là tập con của SxS
c Quan hệ tương đương Quan hệ 2 ngôi R gọi là tương đương nếu thoả
các điều kiện sau:
1 Với mọi x ∈S ta có xRx(phản xạ)
2 Với mọi x,y∈S xRy kéo theo yRx(đối xứng)
3 Với mọi x,y,z∈S xRy, yRz kéo theo xRz(bắc cầu)
d Lớp tương đương Cho R là quan hệ 2 ngôi trên S gọi tập:
[x]:={y: xRy} lớp tương đương ứng với phần tử x, ta dễ dàng nhận thấy các lớptương đương hoặc trùng nhau hoặc rời nhau
e Định lý về quan hệ tương đương và phân hoạch.
R là quan hệ tương đương trên S khi và chỉ khi tồn tại một phân hoạch của S ( Họ tậpcon {Si} gọi là phân hoạch của S nếu USi=S và Si∩Sj=∅,i ≠j)
Trang 29Để minh hoạ cho khẳng định trên ta xét ví dụ sau:
Cho N:={1,2,…} tập các số nguyên và quan hệ R sau: Với mọi (i,j):i-j chia hếtcho 5 Dễ dàng nhận thấy đó là quan hệ tương đương và N được phân hoạch thành 3lớp [1]={1, 6, 11,…}; [2]={2,7,12,…}; [3]={3,8,13,…}
f Chỉ số của quan hệ tương đương Cho R là quan hệ tương đương trên S gọi số
các lớp tương đương do R do sinh ra trên S là chỉ số của quan hệ tương đương
3.4 Quan hệ tương đương và Automat hữu hạn
a Quan hệ tương đương trên ( X*,M) Cho automat M=(X,S,q0, δ,F) quan
hệ RM xác lập trên X* như sau: x, y ∈X*, xRy⇔δ(q0, x)= δ(q0, y)
DƠ dàng nhận thấy R là quan hệ tương đương trên X*
b Quan hệ tương đương bất biến phải Quan hệ tương đương trên X* gọi là bất
biến phải nếu xRy kéo theo xzRyz với mọi z∈X*
Vì δ(q0, xz )= δ(δ(q0, x),z)= δ(δ(q0, y),z)= δ(q0, yz) nên RM là quan hệ bất biến phải
c Định lý 2.4.(Về ngôn ngữ đoán nhận bởi Automat hữu hạn.) Các điều kiện sau là
tương đương:
1 Tập L ⊆X* đoán nhận bởi automat hữu hạn
2 Tập L ⊆X* là hợp của các lớp tương đương sinh ra bởi quan hệ tương đương bấtbiến phải có chỉ số hữu hạn
3 R là quan hệ tương đương xác định như sau xRy: NỊu xz ∈L thì
yz ∈L với mọi z∈X* khi đó R có chỉ số hữu hạn
Chứng minh
1⇒2 Giả sử L đoán nhận automat hữu hạn M=(X, S, q0, δ, F) Gọi R’ là quan hệ xácđịnh như sau: xR’y⇔δ(q0, x)= δ(q0, y) khi đó dễ dàng thấy: - R’ là quan hệ tươngđương bất biến phải trên X*
- L:=L(M)={x: δ(q0, x) ∈F}=∪{x: δ(q0, x)=s, s∈F } nên L có tối đa là F lớp tongđương, do đó chỉ số của R’ là hữu hạn
2⇒3 Giả sử rằng:
- R’ là quan hệ tương đương bất biến phải có chỉ số hữu hạn
- L là hợp các lớp tương đương sinh bởi R’
Trang 30Do tính bất biến phải nên ta có: xR’y thì xzR’yz,
Vì các lớp tương đương hoặc trùng nhau hoặc rời nhau mà yz∈[xz] nên suy ra
xz∈L⇔yz∈L, điều này theo 3 nghĩa là xRy, vậy nên xR’y suy ra xRy nghĩa là lớptương đương của quan hệ R’ chứa một lớp tương đương nào đó của quan hệ R, vì R’
có chỉ số hữu hạn nên R cũng có chỉ số hữu hạn
3⇒1 Giả thử R là quan hệ tương đương theo 3 là xRy⇔ Nếu xz∈L thì yz∈L tachứng minh L đoán nhận bởi automat hữu hạn
Giả sử xRy khi đó theo giả thiết với w,z ∈X* khi đó:
- xwz∈L⇔ ywz∈L nghĩa là xwRyw suy ra R là quan hệ tương đương bất biến phải
- Gọi S’ tập các lớp tương đương của R, khi đó S’ có chỉ số hữu hạn
Ta xây dựng atomat sau M’=(X, S’, q0, δ, F’) trong đó:
- S’:={[x] : x ∈X*}; F’:= {[x] : x ∈L}
2 q’0={e} ; δ’([x],w):=[xw]
Với automat xây dựng nh trên thì L(M’)=L vì rằng δ’(q’0,w):=[w] và w∈L(M’) khi
và chỉ khi [w] ⊆F’
3.5 Bổ sung một số tính chất của ngôn ngữ chính quy.
Do trong văn phạm chính quy các luật sinh tương đối đơn giản do đó ngoài các tínhchất chung ngôn ngữ chính quy còn có thêm một số tính chất đặc thù trong mục này
ta sẽ bổ sung một số tính chất đó
a TC1 Ngôn ngữ chính quy kín với phép hợp (đã chứng minh)
b TC2 Ngôn ngữ chính quy kín với phép lấy phần bù
Chứng minh Giả sử N=(X, S, q0, δ, F) đoán nhận tập L(N) , M:=( X, S, q0, δ, F’)trong đó F’:=S\F Phần bù của L(N) là R(N) ta chứng minh rằng R(N) cũng là ngônngữ chính quy
Giả sử w ∈R(N) ⇔ w ∈X*\L(N) nghĩa là δ(q0,w) ∈F’ hay δ(q0,w) ∈S và δ(q0,w)
∉F do đó w được đoán nhận bởi Automat M=(X,S, δ,q0,S\F) vậy nên w ∈L(M) Suy
ra R(N)=L(M) mà L(M) là ngôn ngữ chinh quy nên suy ra R(N) chính quy
Trang 31TC3 Tất cả các xâu hữu hạn đều là ngôn ngữ loại 3.
Chứng minh Ta xét xâu w=a1 a1…an Ta xây dựng automat sau M:=({ a1,…,an},{q0,q1,…,qn,p},δ,q0,{qn}) trong đó
δ( qi-1,ai):=qi (i=1,n); δ( qi-1,a):=p a<>ai(i=1,,n), δ( qn,a):= δ( p,ai)=p với mọi a
Ta dễ dàng chứng minh automat trên đoán nhận xâu w thông qua sơ đồ
δ( q0,e):=q0 ; δ( q0,a):=p với mọi a ∈X
c TC4 Lớp các ngôn ngữ chính quy đóng đối với phép nhân.
Giả sử M1 =(X1, S1, q1, δ1, F1) và M2 =(X2, S2, q2, δ2, F2) đoán nhận L1 và L2 tươngứng, ta cần chứng minh L1L2:={uv, u∈L1, v∈L2} là ngôn ngữ chính quy, muốn vậy taxây dựng automat hữu hạn ®o¸nnhËn nó Không giảm tổng quát ta coi S1 ∩ S2=∅,
X1 = X2=X Ta xây dựng automat M:=(X, S, q1, δ,F) như sau:
- S:= S1∪ S2
- F:=F2 nếu e không thuộc L2 ngượclại F:=F1∪ F2
- Hàm chuyển có dạng
δ(q,a):={ δ1(q,a)} với q∈S1\F1, a∈X
δ(q,a):={ δ1(q,a), δ2(q,a)} với q∈F1,a∈X
δ(q,e):={q2} với q∈F1
δ(q,a):={ δ2(q,a)} với q∈S2,a∈X
Gọi L(M) ngôn ngữ đoán nhận M
q 1
q 3 q
2
Trang 32- Nếu e không thuộc L2 thì δ(q1,w) ∈F2 nghĩa là ta có với xâu vào
w= x1 x2 x3 … xn-1 xn
q1 δ(q1,x1) δ(q1,x1x2) … δ(q1,x1…xn) ∩ F2≠∅
Giả sử rằng tồn tại chỉ số j lớn nhất sao cho pj=δ(q1,x1…xj-1) ∈F1, khi đó ta có: x1…x
j-1 ∈L1 , δ(pj ,xj)={δ1(pj,,xj), δ2(pj,,xj) }, ta có δ2(pj,,e)=q2 ta chọn đường đi theo hàm
Giả sử w∈L(M) ⇔ δ(q1,w) ∈F1 hoặc δ(q1,w) ∈F2 Giả sử rằng δ(q1,w) ∈F1 suy ra w
∈L1 nếu không giống trường hợp đầu
Ngược lại, giả sử rằng uv∈L1L2 ⇔ u∈L1, v∈L2, theo định nghĩa thì δ1(q1,u) ∈F1 và
Mặt khác bổ sung thêm δ(pk,e)=q2 ta sẽ nhận được uev∈L(M)
d TC5 Lớp các ngôn ngữ chính quy đóng với phép lấy bao đóng.
Chứng minh M =(X, S, q0, δ, F) là automat đoán nhận L, gọi L*=∪Ln, trong đó Li:
=Li-1L với L0={e} Ta xây dựng Automat M’=(X,S’,q’0,δ’, F)như sau:
Trang 33S’:=S∪{q’0}, F’:=F∪{q’0}, trong đó nếu q0 ∈ F thì q’0:=q0; nếu q0∉F thì chọn q’0
khác q0
Với hàm chuyển có dạng sau:
- δ’(q’0,a):={ δ(q0,a),q’0} nếu δ(q0,a) ∈ F
- δ’(q’0,a):= {δ(q0’,a)} nếu δ(q0,a) ∉F
- δ’(q,a):={ δ(q,a),q0} nếu δ(q,a) ∈ F và q∈ S
- δ’(q,a):= {δ(q,a) } nếu δ(q,a) ∉F, q∈ S
Ta chứng minh L* đoán nhận bởi M’
Giả sử x∈L*, khi đó hoặc x=e hoặc x=x1x2…xn với xi ∈ L i=1…n
Ta có δ’(q’0,e):={ δ(q0,e),q’0}={q0,q’0} nếu δ(q0,e) ∈ F
δ’(q’0,e):= δ(q’0,e)=q’0 nếu δ(q0,e) ∉F Vậy nên δ’(q’0,e) ∈ F’, hay e∈L(M’).Giả sử xi ∈L nên δ(q0,xi) ∈ F, mà δ’(q’0,xi):={ δ(q0,xi), q’0} vì δ(q0,xi) ∈ F nên
δ’(q’0,xi) ∈F’ vậy nên x∈L(M’)
Ngược lại, giả sử x=x1x2…xn∈L(M’)⇔δ’(q’0,x)∈F’⇔δ’(q’0, x1x2…xn)∈F’
Nghĩa là tồn tại dãy trạng thái q1, q2,…qn sao cho qi∈δ’(qi-1, xi), i=1 n
x= x1 x2 … xi xn
q’0 q1 qi-1 qn-1 qn∈F’ (1)
Mà {δ(qi-1,xi), q0} nếu δ(qi-1,xi) ∈ F và qi-1∈ S
qi∈δ’(qi-1, xi)=
δ(qi-1,xi) nếu δ(qi-1,xi) ∉ F và qi-1∈ S
Do đó với mỗi i=1…n thì δ’(qi-1, xi) hoặc chứa (qi = q0 và δ(qi-1, xi) ∈F) hoặc (qi=δ(q
i-1, xi) và δ(qi-1, xi) ∉F) nghĩa là xi∈L điều này có nghĩa là x ∈L*( chú ý ở vỊ thứ 2không xẩy ra vì qn = δ(qn-1, xn) ∈F)
e TC6 Lớp các tập đoán nhận được bởi các Automat hữu hạn là lớp nhỏ nhất chứa
tất cả các tập hữu hạn và đóng với các phép toán hợp, nhân, ghép, và lấy bao đóng.
$4 Ngôn ngữ chính quy và biểu thức chính quy.
Trang 344.1 Ngôn ngữ chính quy.
a Đặt vấn đề Trong mục này ta lại đưa ra một cách tiếp cận mới về ngôn ngữ chính
quy các tiếp cận này nhằm khẳng định lớp ngôn ngữ chính quy là lớp bé nhất
b Ngôn ngữ trên bảng Cho tập X, tập con E⊆X gọi là ngôn ngữ trên bảng X Ta cóthể định nghĩa các phép toán trên ngôn ngữ tuy nhiên chúng ta quan tâm đến 3phép toán hợp, giao,và lặp
c Ngôn ngữ sơ cấp Giả xử X={x1, x2,…, xn} ta gọi ∅ và {xi} là các ngôn ngữ sơcấp trên X
d Ngôn ngữ chính quy.
- Các ngôn ngữ sơ cấp trên X là chính quy
3 Nếu E, F là ngôn ngữ chính quy trên X thì E∪F, EF, E+ là ngôn ngữ chính quytrên bảng X
- Không có ngôn ngữ chính quy nào khác ngoài các ngôn ngữ chính quy đã đượcđịnh nghĩa trên
4.2 Biểu thức chính quy.
a Định nghĩa Trên bảng X ta định nghĩa biểu thức chính quy nh sau:
1 ∅ là biểu thức chính quy nó biểu diễn ngôn ngữ rỗng
2 Nếu a∈X thì a là biểu thức chính quy nó biểu diễn ngôn ngữ {a}
3 Nếu r ,s là 2 biểu thức chính quy trên X biểu diễn 2 ngôn ngữ tương ứng R, Sthì
r∪s là biểu thức chính quy biểu diễn ngôn ngữ R ∪ R, S
r.s là biểu thức chính quy biểu diễn ngôn ngữ R.S
r+ là biểu thức chính quy biểu diễn ngôn ngữ R+
b Các định lý.
Định lý 2.5 Mọi ngôn ngữ chính quy trên bảng X đều nhận được từ các ngôn ngữ sơ
cấp sau một số lần hữu hạn áp dụng các phép toán hợp, nhân và lặp
Định lý 2.6 Mọi ngôn ngữ trên X là chính quy khi và chỉ khi nó biểu diễn biểu thức
chính quy
Chứng minh Ta chứng minh điều này bằng quy nạp