Toán học tổ hợp liên quan ñến cả khía cạnh giải quyết vấn ñề lẫn xây dựng cơ sở lý thuyết, trong ñó “ðại số tổ hợp trên các từ” là một lĩnh vực khá mới mẻ, phát triển ñộc lập trong một s
Trang 1LỜI CẢM ƠN
Trong suốt thời gian thực hiện khóa luận tốt nghiệp ngoài sự nỗ lực của bản thân, tôi còn nhận ñược sự giúp ñỡ, chỉ bảo tận tình của các thầy giáo, cô giáo trong Khoa Toán – Công nghệ, Trường ðại học Hùng Vương
ðặc biệt tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Th.S Hà Ngọc Phú -Giảng viên bộ môn Toán ứng dụng - Khoa Toán – Công nghệ - Trường ðại học Hùng Vương Thầy ñã dành nhiều thời gian quý báu tận tình hướng dẫn tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp, ñồng thời thầy còn là người giúp tôi lĩnh hội ñược những kiến thức chuyên môn và rèn luyện cho tôi tác phong nghiên cứu khoa học
Qua ñây, tôi xin gửi lời cảm ơn chân thành và sâu sắc tới các thầy giáo, cô giáo trong Khoa Toán – Công nghệ, tới gia ñình, bạn bè là những người luôn sát cánh bên tôi, ñã nhiệt tình giúp ñỡ, chia sẻ, ñộng viên tôi trong suốt quá trình học tập cũng như khi tôi thực hiện và hoàn chỉnh khóa luận này
Mặc dù ñã rất cố gắng xong khóa luận không khỏi có những thiếu sót Vì vậy, tôi rất mong nhận ñược sự góp ý của các thầy giáo, cô giáo và các bạn ñể khóa luận ñược hoàn thiện hơn
Tôi xin chân thành cảm ơn!
Việt trì, tháng 05 năm 2012
Trang 2MỤC LỤC
CHƯƠNG I: VĂN PHẠM VÀ NGÔN NGỮ HÌNH THỨC 6
1.1 Nửa nhóm 6
1.2 Khái niệm ngôn ngữ 6
1.3 Văn phạm và ngôn ngữ sinh bởi văn phạm 11
1.4 Một số tính chất của ngôn ngữ 18
BÀI TẬP CHƯƠNG I 24
CHƯƠNG II: AUTOMATA HỮU HẠN VÀ NGÔN NGỮ CHÍNH QUY 26
2.1 Automata hữu hạn 26
2.2 Quan hệ giữa Automata hữu hạn và ngôn ngữ chính quy 34
2.3 Biểu thức chính quy 39
2.4 Cực tiểu hóa Automata hữu hạn 41
BÀI TẬP CHƯƠNG II 50
CHƯƠNG III: TỪ STURMIAN 52
3.1 Từ Sturmian 52
3.2 Từ cơ học, nhân tử của từ Sturmian 58
BÀI TẬP CHƯƠNG III 62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 3
MỞ ðẦU
1 Lý do chọn ñề tài
Tổ hợp là một nhánh của toán học liên quan ñến việc nghiên cứu cấu trúc rời rạc hữu hạn hay ñếm ñược của một tập hợp Vấn ñề tổ hợp phát sinh trong nhiều lĩnh vực của toán học thuần túy ñặc biệt là trong ñại số, lý thuyết xác suất, cấu trúc liên kết và hình học Tổ hợp cũng có nhiều ứng dụng trong tối ưu hóa, khoa học máy tính, lý thuyết ergodic và vật lý thống kê Toán học tổ hợp liên quan ñến cả khía cạnh giải quyết vấn ñề lẫn xây dựng cơ sở lý thuyết, trong
ñó “ðại số tổ hợp trên các từ” là một lĩnh vực khá mới mẻ, phát triển ñộc lập trong một số ngành của toán học như lý thuyết số, lý thuyết nhóm và xác suất…
“Tổ hợp trên từ” xuất hiện thường xuyên trong các vấn ñề của khoa học máy tính lý thuyết, lý thuyết thiết bị tự ñộng, ñộng lực biểu tượng và ngôn ngữ hình thức Cách ñây khoảng 30 năm, các vấn ñề về lý thuyết “Tổ hợp trên từ” vẫn chưa ñược nghiên cứu một cách kỹ càng hoặc thậm chí còn chưa ñược biết tới Nội dung thống nhất của lý thuyết này chính thức xuất hiện lần ñầu tiên trong cuốn “Tổ hợp trên từ” của Lothaire vào năm 1983, kể từ ñó lĩnh vực này ngày càng phát triển nhanh chóng “Tổ hợp trên từ” ñã nghiên cứu các vấn ñề xung quanh một chuỗi ký tự rút ra từ một bảng chữ cái cố ñịnh, ñây là một kết quả ñáng ngạc nhiên trong toán học và ngày càng có nhiều ứng dụng rộng rãi trong các ngành khoa học khác, ñặc biệt là tin học Các khái niệm về từ, ngôn ngữ, văn phạm và các phép toán xây dựng trên chúng hay những nghiên cứu về Automata, mối quan hệ giữa Automata và ngôn ngữ chính quy, từ Sturmian là một trong những kiến thức chung nhất về “ðại số tổ hợp trên các từ” Bước ñầu tìm hiểu về những vấn ñề này giúp ta hình dung ñược rõ hơn một số mô hình, cấu trúc ñại số ñược xây dựng trên các từ và những ứng dụng của lý thuyết này trong các ngành khoa học có liên quan
Là một sinh viên theo học chuyên ngành toán, tôi nhận thức ñược sự cần thiết và tiềm năng phát triển của vấn ñề này trong tương lai không xa Do ñó, chúng tôi mạnh dạn lựa chọn ñề tài “Bước ñầu tìm hiểu một số nội dung về ñại
số tổ hợp trên các từ” làm ñề tài nghiên cứu cho khóa luận tốt nghiệp với mong muốn có ñược những hiểu biết chung nhất về ñại số tổ hợp trên từ ñồng thời hy vọng ñây có thể là tài liệu tham khảo bước ñầu ñưa sinh viên chuyên ngành toán tiếp cận với lĩnh vực mới mẻ này
Trang 42 Mục ñích nghiên cứu
“Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ” nhằm ñưa ra các khái niệm liên quan ñến ngôn ngữ hình thức, các phép toán ñược xây dựng trên các từ và tính chất của chúng Từ ñó giúp ta phần nào hiểu ñược những ứng dụng của lý thuyết này trong các ngành khoa học có liên quan ñặc biệt là trong lĩnh vực công nghệ thông tin
3 Nhiệm vụ nghiên cứu
Khóa luận tập trung nghiên cứu các khái niệm về ngôn ngữ hình thức, các phép toán trên các mô hình, không gian hay cấu trúc ñại số xây dựng trên các từ
và một số tính chất của chúng
4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý luận: ðọc giáo trình, tài liệu liên quan ñến
lý thuyết ngôn ngữ hình thức, ñại số tổ hợp, ñại số tổ hợp trên từ, từ ñó tổng hợp, ñưa ra các khái niệm, tính chất cơ bản của ñối tượng ñược nghiên cứu
- Phương pháp tổng kết kinh nghiệm: Tổng kết và hệ thống hóa các kiến thức về vấn ñề nghiên cứu một cách khoa học, ñầy ñủ và chính xác
- Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp hướng dẫn và các giảng viên khác ñể hoàn thiện về mặt nội dung cũng như hình thức của khoá luận
5 ðối tượng và phạm vi nghiên cứu
ðối tượng chính mà khóa luận nghiên cứu là những vấn ñề chung nhất về ñại số tổ hợp trên các từ mà cụ thể là: Văn phạm và ngôn ngữ hình thức, Automata, và từ Sturmian
6 Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học: Khóa luận là tài liệu tham khảo phần nào trợ giúp cho
sinh viên chuyên ngành toán muốn bước ñầu tìm hiểu về ñại số tổ hợp trên từ
Ý nghĩa thực tiễn: ðề tài giúp tôi bước ñầu làm quen với việc nghiên cứu
khoa học, ñồng thời, giúp tôi hiểu những kiến thức cơ bản nhất về ñại số tổ hợp
trên các từ
7 Bố cục của khóa luận
Ngoài các phần mở ñầu, kết luận và tài liệu tham khảo, nội dung của khóa luận bao gồm 3 chương:
Chương I: Văn phạm và ngôn ngữ hình thức
1.1 Nửa nhóm 1.2 Khái niệm ngôn ngữ
Trang 51.3 Văn phạm và ngôn ngữ sinh bởi văn phạm 1.4 Một số tính chất của ngôn ngữ
Bài tập chương I Chương II: Automata hữu hạn và ngôn ngữ chính quy
2.1 Automata hữu hạn 2.2 Quan hệ giữa Automata hữu hạn và ngôn ngữ chính quy 2.3 Biểu thức chính quy
2.4 Cực tiểu hóa Automata hữu hạn Chương III: Từ Sturmian
3.1 Từ Sturmian 3.2 Từ cơ học, nhân tử của từ Sturmian
Trang 6CHƯƠNG I: VĂN PHẠM VÀ NGÔN NGỮ HÌNH THỨC 1.1 Nửa nhóm
1.1.1 ðịnh nghĩa: Nửa nhóm là một tập hợp ñược trang bị một phép toán hai
ngôi có tính chất kết hợp
Ví dụ 1: Tập hợp các số hữu tỉ ℚ cùng với phép cộng thông thường làm thành
một nửa nhóm
1.1.2 ðịnh nghĩa: Cho X là một nửa nhóm, A là một tập con của X A ñược
gọi là nửa nhóm con của X nếu A cùng với phép toán cảm sinh trên X làm
1.1.4 ðịnh nghĩa : Cho (X, ) là một nửa nhóm, ε∈X ñược gọi là phần tử trung lập của X nếu ∀ ∈x X :εx x= ε = x
Ví dụ 3 : 0 là phần tử trung lập của nửa nhóm ( ℕ ,+)
1.1.5 ðịnh nghĩa : Một nửa nhóm tồn tại phần tử trung lập ñược gọi là vị nhóm Phần tử trung lập ñó ñược gọi là phần tử ñơn vị của vị nhóm
1.1.6 ðịnh nghĩa : X và Y là hai tập con của nửa nhóm S Tích của X và Y là
một tập hợp :
XY = xy x X y Y∈ ∈Khi ñó, tập X+ ñược ñịnh nghĩa : X+ ={x x1 2 x n n≥1,x i∈X}cũng là nửa nhóm con của X
Nếu S là một vị nhóm với phần tử ñơn vị ε thì X* X+ { }ε
= ∪ cũng là một vị nhóm với phần tử ñơn vị ε
1.2 Khái niệm ngôn ngữ
Cả ngôn ngữ lập trình lẫn ngôn ngữ tự nhiên ñều có thể xem như tập các
từ, tức là tập các xâu hữu hạn các phần tử của một bộ chữ cái cơ sở nào ñó Khái niệm ngôn ngữ ñược ñưa vào trong chương này rất tổng quát, bao hàm cả ngôn ngữ tự nhiên lẫn ngôn ngữ lập trình, và cả những ngôn ngữ vô nghĩa mà ta
có thể nghĩ ñến Về mặt truyền thống, lý thuyết ngôn ngữ hình thức liên quan
Trang 7ñến các ñặc tả cú pháp của ngôn ngữ nhiều hơn là ñến những vấn ñề ngữ nghĩa
Ở ñây, ta xem các bảng chữ cái, các từ, các ngôn ngữ, văn phạm… như là những ñối tượng của ñại số tổ hợp, việc xây dựng trên chúng các phép toán và nghiên cứu tính chất của chúng có tác dụng ñặc biệt quan trọng trong lĩnh vực công nghệ thông tin
1.2.1 ðịnh nghĩa: Một bảng chữ cái là một tập hữu hạn khác rỗng Các phần
tử của một bảng chữ cái ∑ ñược gọi là các chữ cái hay các kí hiệu
Ví dụ 4: Dưới ñây là các bảng chữ cái:
1.2.2 ðịnh nghĩa: Một từ trên bảng chữ cái ∑ là một dãy (xâu) hữu hạn
gồm một số lớn hơn hay bằng không các chữ của ∑ , trong ñó một chữ có thể xuất hiện vài lần
Từ không có chữ nào gọi là từ rỗng (xâu rỗng) và ñược ký hiệu là ε
Hai từ α =a a a1 2 n và β =b b b1 2 m là bằng nhau, kí hiệu α =β, nếu n = m và
∑ là một nửa nhóm tự do sinh bởi ∑
ðối với các từ α∈ ∑*, 'α ∈ ∑ , việc ñặt '* α và 'α cạnh nhau ñể có từ mới ' ( ')
αα ∈ ∑ ∪ ∑ ñược gọi là phép ghép α với 'α Từ rỗng là phần tử ñơn vị ñối với phép ghép: ωε =εω ω ω= ∀ ∈ ∑ Vì phép ghép có tính kết hợp, nghĩa là với mọi từ , ,α β γ ta có (αβ γ) =α βγ( ), nên ký hiệu n
ω , với n là số tự nhiên, ñược dùng theo nghĩa quen thuộc
1
01
n
n
khi n khi n khi n
Trang 8Trên bảng chữ cái ∑ ={a, b, c,…, z}, nếu α là từ daiso và β là từ tohop thì αβ
Gương (hay từ ngược, từ ñảo) của từ ω có ñược bằng cách viết các chữ
cái của ω theo chiều ngược lại
Nếu ω=a a a1 2 n là một từ trên bảng chữ cái ∑ thì từ ngược của ω, kí hiệu là
Từ α ñược gọi là từ con hay một nhân tử của từ β nếu có các từ u và v
sao cho β =u vα Ngoài ra, nếu u = (tương ứng vε = ) thì ε α ñược gọi là từ con ñầu hay tiền tố (tương ứng từ con cuối hay hậu tố) của β
Số nguyên p ≥ ñược gọi là chu kì của từ 1 ω =a a a1 2 n (a i∈ ∑ nếu p là )
số nguyên nhỏ nhất sao cho a i =a i p+ ,∀ =i 1,2, n p− Khi ñó ω ñược gọi là từ
có chu kì Nếu tồn tại hai nhân tử u, v của ω, tồn tại số nguyên dương k sao cho
m
uv
ω = thì ω ñược gọi là từ có chu kì cuối
Ví dụ 6: Từ ω= 010111001 trên bảng chữ cái {0,1} có ñộ dài là 9,trong
ñó 0101 là tiền tố và 11001 là hậu tố của ω
Tập các từ con của từ ω ñược ký hiệu là ( )F ω , tập các từ con có ñộ dài n của
*( ) 0; ( )i ; ( i) ( 1) ( )
Trang 9Chẳng hạn, với L1 và L2 cho ở trên thì ta có các ngôn ngữ mới sau cũng trên bảng chữ cái ∑ : *
1 2; 1 2; 1\ 2; \ 1
L ∩L L ∪L L L ∑ L Ngoài ra, ta còn có các phép toán khác như: phép ghép, phép cấu xạ ñược ñịnh nghĩa dưới ñây
1.2.6 ðịnh nghĩa: Cho hai ngôn ngữ L trên bảng 1 ∑1 và L trên bảng 2 ∑2
Ghép hay tích của hai ngôn ngữ L và 1 L là ngôn ngữ trên bảng chữ 2 ∑ ∪∑ , 1 2
kí hiệu là L1L , ñược xác ñịnh bởi: 2
L1L2={αβ α∈L1,β∈L2}
Dễ dàng thấy rằng, phép ghép có tính chất kết hợp, nghĩa là với mọi ngôn ngữ
L1, L2, L3 ta luôn có:
(L1L2) L3= L1(L2L3) Ngoài ra, với mọi ngôn ngữ L, ta có:
; { } { }
L∅ = ∅ = ∅L ε L L= ε = L
và phép ghép có tính chất phân phối ñối với phép hợp, nghĩa là
Trang 10n n
∞ +
2) Xét ngôn ngữ L={0, 1} trên bảng chữ cái ∑ ={0,1}:
Ta có: L =2 {00,01,10,11} - Tập hợp tất cả các xâu nhị phân có ñộ dài bằng 2
Trang 11{ }
3 000,001,010,011,100,101,110,111
L = - Tập hợp tất cả các xâu nhị phân có
ñộ dài bằng 3
Tương tự: L n là tập hợp tất cả các xâu nhị phân có ñộ dài bằng n
Vậy L*là tập hợp tất cả các xâu nhị phân
1.2.7 ðịnh nghĩa: Cho hai bảng chữ cái ∑ và '∑ Ánh xạ f: ∑ * →∑ thỏa '*mãn ñiều kiện: (f αβ)= f( ) ( )α f β với mọi từ α β, ∈ ∑ (1) ñược gọi là một *
cấu xạ
ðối với ngôn ngữ L trên ∑ , f L( )={f( )α α∈L}là ngôn ngữ trên ∑ Theo 'ñiều kiện (1), ñể xác ñịnh cấu xạ f ta chỉ cần liệt kê mọi phần tử của f(a) trên '
∑ với a chạy trên mọi chữ cái của ∑
Cấu xạ f gọi là không xóa ( tương ứng chữ-thành-chữ) nếu ( ) f a ≠ (tương ε
ứng ( )f a ∈ ∑ ) với mỗi a ∈ ∑ '
Ví dụ 9: Xét bảng chữ cái tiếng anh ∑ ={a b, , ,z} Mỗi cấu xạ chữ - thành- chữ fi :∑ * →∑ , 0* ≤ ≤i 25 ñược xác ñịnh: Cấu xạ biến mỗi chữ thành mỗi chữ ñứng sau nó i vị trí trong bảng chữ cái, trong ñó phần cuối của bảng chữ cái ñược nối tiếp vòng tròn lên phần ñầu
1.3 Văn phạm và ngôn ngữ sinh bởi văn phạm
Ta có thể hình dung một văn phạm như một “thiết bị tự ñộng” mà nó có khả năng sinh ra một tập hợp các từ trên một bảng chữ cái cho trước Mỗi từ ñược sinh ra sau một số hữu hạn bước thực hiện các quy tắc của văn phạm
Việc xác ñịnh một ngôn ngữ trên bảng chữ cái cho trước có thể ñược thực hiện bằng một trong các cách thức sau:
Cách 1: ðối với mỗi từ thuộc ngôn ngữ ñã cho, ta có thể chọn một quy
cách hoạt ñộng của “thiết bị tự ñộng” ñể sau một số bước làm việc hữu hạn, nó dừng và sinh ra chính từ ñó
Cách 2: “Thiết bị tự ñộng” có khả năng lần lượt sinh ra tất cả các từ
trong ngôn ngữ ñã cho
Cách 3: Với mỗi từ ω cho trước, “thiết bị tự ñộng” có thể cho biết từ ñó
có thuộc ngôn ngữ ñã cho hay không
Trang 12Trong lý thuyết văn phạm, người ta chứng minh ñược rằng ba cách thức trên là tương ñương nhau hay văn phạm làm việc theo các cách trên là tương ñương nhau Vì vậy, ở ñây ta quan tâm ñến cách thứ nhất, tức là xét văn phạm như một “thiết bị tự ñộng” sinh ra các từ Vì lẽ ñó, người ta còn gọi các “thiết
bị tự ñộng” ñó là văn phạm sinh
1.3.1 ðịnh nghĩa: Văn phạm G là một bộ sắp thứ tự gồm 4 thành phần:
, , ,
G = ∑ ∆ S P Trong ñó:
a) ∑ là một bảng chữ cái, gọi là bảng chữ kết thúc hay từ ñiển hỗ trợ, mỗi phần
tử của nó ñược gọi là một kí hiệu kết thúc hay kí hiệu hỗ trợ
b) ∆ là một bảng chữ cái, ∆ ∩ ∑ = ∅ , gọi là bảng chữ không kết thúc hay từ ñiển cơ bản, mỗi phần tử của nó ñược gọi là một kí hiệu không kết thúc hay kí hiệu cơ bản
c) S ∈ ∆ ñược gọi là kí hiệu ñầu
d) P là tập hợp các cặp thứ tự <α β, > , trong ñó α β, ∈ ∑ ∪∆ và trong ( )* α
chứa ít nhất một kí hiệu không kết thúc, P ñược gọi là tập các quy tắc thay thế,
,
α β
< > ñược gọi là một quy tắc hay sản xuất và thường ñược viết cho thuận
tiện là α →β, α ñược gọi là vế trái và β ñuợc gọi là vế phải của quy tắc này
1.3.2 ðịnh nghĩa: Cho văn phạm G=< ∑ ∆, , ,S P> và η ω, ∈ ∑ ∪∆ Ta nói ( )* ω
ñược suy dẫn trực tiếp từ η trong G, kí hiệu η Gω, hay ngắn gọn là η ω− (nếu không sợ nhầm lẫn), nếu tồn tại quy tắc α → ∈ và β P δ γ, ∈ ∑ ∪∆ sao cho ( )*
,
η γαδ ω γβδ= =
ðiều này có nghĩa là nếu η nhận vế trái α của quy tắc α→β như là từ con thì
ta thay α bằng β ñể ñược từ mới ω
1.3.3 ðịnh nghĩa: Cho văn phạm G=< ∑ ∆, , ,S P> và η ω, ∈ ∑ ∪∆ Ta nói ( )*
ω ñược suy dẫn từ η trong G, kí hiệu Gη ω hay ngắn gọn là Gη ω(nếu không
sợ nhầm lẫn), nếu η ω= hoặc tồn tại một dãy *
0, , ,1 k ( )
ω ω ω ∈ ∑ ∪∆ sao cho
Trang 130 , k
ω =η ω =ω và ωi−1Gωi,với i=1, 2, …,k Khi ñó dãy ω ω0, , ,1 ωk ñược gọi
là một dẫn xuất của ω từ η trong G và k ñược gọi là ñộ dài của dẫn xuất này
Nếu ωi ñược dẫn xuất trực tiếp từ ωi−1 bằng việc áp dụng một quy tắc nào ñó trong G thì ta nói quy tắc p ñược áp dụng ở bước thứ i
1.3.4 ðịnh nghĩa: Cho văn phạm G=< ∑ ∆, , ,S P> Từ ω∈ ∑ ñược gọi là sinh *bởi văn phạm G nếu tồn tại suy dẫn S Gω Ngôn ngữ sinh bởi văn phạm G ñược kí hiệu là L(G), là tập hợp xác ñịnh bởi:
*
L G = ω∈ ∑ S Gω Hai văn phạm G1 và G2 ñược gọi là tương ñương nếu L(G1) = L(G2)
Ví dụ 11:
1) Xét văn phạm G1=<{0,1},{ }, ,{S S S →0 1,S S →ε}> Từ 0414 ñược suy dẫn
từ S bằng dãy dẫn xuất ñộ dài 5:
Trang 142 { , },{ , , }, ,{ , , , }
G =< a b S A B S S → ASB A→a B→b S →ab >
Dễ dàng có ñuợc L(G1) = L(G2)= {a b n ≥ n n 1}
Hay G1 và G2 là tương ñương nhau
Chẳng hạn như trong G1 ta có thể viết hai quy tắc ñó dưới dạng S →aSb ab.2) Cho 2 văn phạm G3 =< ∑,{ }, ,S S P3>,G4 =< ∑,{ }, ,S S P4 > , trong ñó
1.3.5 Bổ ñề: Cho văn phạm G=< ∑ ∆, , ,S P> Khi ñó nếu tồn tại trong P quy tắc chứa kí hiệu ñầu S ở vế phải thì tồn tại văn phạm G’ tương ñương với G mà các quy tắc của nó không chứa ký hiệu ñầu ở vế phải
Chứng minh: Lấy ' ( S ∉ ∑∪∆ , xét văn phạm ') G =< ∑ ∆ ∪, { '}, ', 'S S P >
Trong ñó P'=P∪{ 'S →α S→ ∈α P} Rõ ràng trong P’ không chứa quy tắc nào có S’ở vế phải Ta chứng minh L(G) = L(G’)
+ ω∈L G( ) (hay S Gω): Giả sử dãy dẫn xuất của ω là S Gα Gω1G G ω
Vì S Gα nên ta có S→ ∈α P, do ñó 'S → ∈α P', và vì P⊂P' nên ta có ' ' '
S G α G ω Vậy hay ω∈L G( ')
+ ω∈L G( ') (hay ' 'S G ω): Giả sử dãy dẫn xuất của ω là ' 'S G α G'ω
Vì ' 'S G α nên ta có 'S → ∈α P', do ñó tồn tại S→ ∈ Mặt khác, trong α P α
không chứa S’ nên các suy dẫn trực tiếp trong α G' ω chỉ sử dụng các quy tắc
của P Vậy ta có S Gω hay ω∈L G( )
1.3.6 ðịnh nghĩa : Văn phạm G=< ∑ ∆, , ,S P> mà không có một ràng buộc nào
trên các quy tắc của nó ñược gọi là văn phạm tổng quát hay văn phạm nhóm 0
Như vậy, G là văn phạm nhóm 0 khi và chỉ khi các quy tắc của nó có dạng
Trang 15Các văn phạm mà các quy tắc của nó có dạng trên ñồng thời chứa thêm quy tắc
S→ , miễn sao kí kiệu S ñầu không xuất hiện ở bất kì quy tắc nào cũng ñược ε
xếp vào lớp văn phạm nhóm 1
Ví dụ 13 : Cho văn phạm G=<{ , , },{ , , , }, ,a b c S A B C S P> trong ñó
P= S→aSAC S →abC CA→BA BA→BC BC →AC bA→bb C →c
Khi ñó văn phạm G là văn phạm cảm ngữ cảnh
Sử dụng n-1 lần quy tắc 1 (n>0), rồi quy tắc 2, kế ñến sử dụng liên tiếp quy tắc 3,
4, 5 (ñể ñổi chỗ A và C), sau ñó sử dụng n-1 lần quy tắc 6 và n lần quy tắc 7, ta
1.3.8 ðịnh nghĩa: Văn phạm G=< ∑, , ,∆ S P> mà các quy tắc của nó có dạng
A→ω, trong ñó A∈ ∆,ω∈ ∑∪∆( )*, ω ε≠ ñược gọi là văn phạm phi ngữ cảnh hay là văn phạm nhóm 2
Các văn phạm mà các quy tắc của chúng có dạng trên, ñồng thời chứa thêm quy
tắc S→ , miễn sao kí hiệu ñầu S không xuất hiện ở vế phải của bất kì quy tắc ε
nào cũng ñược xếp vào lớp văn phạm nhóm 2
Trang 16ñó G2 không là văn phạm phi ngữ cảnh vì có quy tắc S→ , mà S lại xuất hiện ở ε
vế phải của một quy tắc khác Theo bổ ñề 1.2.6, G2 tương ñương với văn phạmG2'=<{0,1},{ , '}, ', 'S S S P >
Các văn phạm mà quy tắc của chúng có dạng trên, ñồng thời chứa thêm quy tắc
S→ , miễn sao các kí hiệu ñầu S không xuất hiện ở bất kì vế phải của bất kì ε
quy tắc nào cũng ñược xếp vào lớp các văn phạm nhóm 3
2( ) {0 0 {0,1} }
Trang 17rộng nhất, nó chứa ñựng các văn phạm cảm ngữ cảnh, lớp văn phạm cảm ngữ cảnh chứa các văn phạm phi ngữ cảnh và lớp văn phạm phi ngữ cảnh chứa các
văn phạm chính quy Hệ thống các lớp văn phạm này gọi là sự phân cấp Chomsky
Ngôn ngữ hình thức ñược gọi là ngôn ngữ tổng quát (tương ứng cảm ngữ cảnh, phi ngữ cảnh, chính quy) nếu tồn tại văn phạm tổng quát (tương ứng cảm ngữ cảnh, phi ngữ cảnh, chính quy) sinh ra nó Vì vậy, ñối với các lớp ngôn ngữ
* 6
{ { , } },{ { , } }
Trang 18ðể sinh ra L6 ta xét văn phạm cảm ngữ cảnh sau ñây:
Khi ñó văn phạm: ''G =< ∑ ∆ ∪, { '}, ', ' { 'S S P∪ S →ε}> cùng loại với G’ và
L(G’’)=L(G’) ∪ { }ε =L(G) ∪ { }ε =L∪ { }ε b) \ { }:L ε ε∉L L: \ { }ε = L
ñóng ñối với phép toán
1.4.2 ðịnh lý: Lớp ngôn ngữ sinh ra bởi văn phạm là ñóng ñối với phép hợp
Chứng minh: Giả sử L1, L2 là ngôn ngữ ñược sinh bởi văn phạm G1, G2 hay
L1 = L(G1), L2 = L(G2) Chứng minh tồn tại văn phạm G sao cho L(G) = L1∪ L2
Giả sử G1=< ∑ ∆1, , ,1 S P1 1> và G2=< ∑ ∆2, 2, ,S P2 2 >
Không mất tính tổng quát, giả thiết rằng ∆ ∩ ∑ ∪∆1 ( 2 2)= ∆ ∩ ∑ ∪∆ = ∅ 2 ( 1 1)
Lấy S ∉ ∑ ∪∆ ∪ ∑ ∪∆ 1 1 2 2
Xét văn phạm G=< ∑ ∪ ∑ ∆ ∪ ∆ ∪1 2, 1 2 { }, ,S S P> , trong ñó:
Trang 19Do ñó ω ε= ∈L1∪L2
ω ε≠ : Tồn tại suy dẫn S Gω và giả sử suy dẫn này là S Gα G β G Gω
Từ ñó, ta có S → ∈α P(α ≠ε) , nên ta có α =S1 hoặc α =S2 Nếu α =S1 thì dãy dẫn xuất , , ,α β ω là ở trong G1, nên ta có S G1 1 β G1 G1ω, tức là
Ví dụ 17 : Cho hai ngôn ngữ 2
1 { n n 0}
2 { n n 0}
L = a cb n≥ trên bảng chữ cái ∑ ={ , , }a b c Khi ñó L1= L(G1) và L2= L(G2), trong ñó
Trang 201.4.4 ðịnh lý : Lớp ngôn ngữ sinh ra bởi văn phạm là ñóng ñối với phép ghép
Chứng minh : Giả sử L1, L2 là ngôn ngữ ñược sinh bởi văn phạm G1, G2 hay
Với văn phạm G này, dễ dàng có ñược L(G) ⊂ L1L2 và L1L2⊂ L(G)
ðặc biệt, khi G1 và G2 là hai văn phạm chính quy thì ta có thể xây dựng văn phạm chính quy G’ sao cho L(G’)=L1L2
Trang 21văn phạm trong chứng minh ñịnh lý 1.3.2, ta tìm ñược văn phạm chính quy G’’ sao cho L(G’’) = L1L2
c) ε∉ và L1 ε∈L2 , tương tự như trường hợp b)
Ví dụ 18 : 1) Cho hai ngôn ngữ L1={a b n n n ≥ và 1} L2 ={c n n ≥1} Dễ dàng có ñược L1=L(G1) và L2=L(G2), trong ñó
2) Cho hai ngôn ngữ chính quy L3={ba n n ≥0} và L4={b a n n ≥0} Ta có ngay
L3 = L(G3), L4 = L(G4), trong ñó G3 và G4 là hai văn phạm chính quy:
Chứng minh : Giả sử L = L(G), với G=< ∑ ∆, , ,S P> là văn phạm chính quy
Xét văn phạm 'G =< ∑ ∆, , , 'S P > , trong ñó
P = P S →ε ∪ A→aS A→ ∈a P Khi ñó G’ là văn phạm chính quy Ta chứng minh L(G’)=L\{ }ε
a) ω∈L G( ') : Ta có S G ω với ω ε≠ vì S→ ∉ε P' Không mất tính chất tổng
Trang 22quát, ta có thể giả thiết kí hiệu ñầu S không xuất hiện ở vế phải của bất kì quy tắc nào trong P Giả sử dãy dẫn xuất của ω có sử dụng n-1 quy tắc của P dạng
là các suy dẫn trong G hay ω ω1, 2, ,ωn−1∈L G( ) Mặt khác, suy dẫn S =ωn
không sử dụng một quy tắc nào khác ngoài quy tắc của P, nên ωn∈L G( )
b) ω∈L*\ { }ε : Tồn tại số nguyên dương n sao cho ω∈L n hay ω ω ω ω ω= 1 2 n−1 n
trong ñó ω1∈L\ { },1ε ≤ ≤ Như vậy trong G có các suy dẫn i n
1.4.7 Mệnh ñề : Mọi ngôn ngữ hữu hạn ñều là ngôn ngữ chính quy
Chứng minh : Ngôn ngữ hữu hạn là hợp hữu hạn của các ngôn ngữ một từ, từ ví
dụ 13 (ngôn ngữ một từ là ngôn ngữ chính quy) và từ hệ quả 1.3.3 (hợp hữu hạn của các ngôn ngữ chính quy là chính quy), ta có ngôn ngữ hữu hạn là chính quy
Ví dụ 19 : Cho ngôn ngữ chính quy L={0, 01, 011, 0111} Khi ñó L sinh bởi văn
Trang 26CHƯƠNG II: AUTOMATA HỮU HẠN VÀ NGƠN NGỮ CHÍNH QUY 2.1 Automata hữu hạn
Một Automata là một mơ hình tính tốn tự động khơng cần sự can thiệp của con người dựa trên quá trình đốn nhận và biến đổi ngơn ngữ Một Automata hữu hạn là một mơ hình tính tốn hữu hạn, mọi thứ liên quan đến nĩ đều cĩ kích thước hữu hạn cố định Quá trình đốn nhận và biến đổi ngơn ngữ của Automata hữu hạn một quá trình bao gồm các bước biến đổi rời rạc, vì vậy
ta cĩ thể dễ dàng đặc tả quá trình làm việc của nĩ bằng các bước kế tiếp nhau Ở đây, chúng tơi khơng đi sâu vào việc một Automata đốn nhận và biên dịch ngơn ngữ như thế nào mà tập trung nghiên cứu những nội dung của đại số tổ hợp trên các từ được áp dụng trong việc xây dựng chương trình hoạt động của Automata
2.1.1 ðịnh nghĩa: Một Automata hữu hạn đơn định (DFA) là một bộ năm:
0, , , ,
A=<Q ∑ δ q F >
Trong đĩ:
- Q là một tập hữu hạn khác rỗng được gọi là tập trạng thái;
- ∑ là một bảng chữ cái được gọi là bảng chữ vào;
- δ : D→ , trong đĩ D Q ⊂Q × ∑ , được gọi là ánh xạ chuyển;
- q0∈ được gọi là trạng thái đầu; Q
- F Q⊂ , được gọi là tập các trạng thái kết thúc
Trong trường hợp D Q= × ∑ , ta nĩi A là đầy đủ Về sau ta sẽ thấy rằng, mọi
Automata hữu hạn đều đưa về được các Automata đầy đủ tương đương
Hoạt động của một Automata hữu hạn đơn định A=<Q, , , ,∑ δ q F0 > khi cho xâu ω =a a a1 2 n vào được miêu tả như sau :
Khi bắt đầu làm việc, máy ở trạng thái đầu q0 và đầu đọc đang nhìn vào ơ
cĩ kí hiệu a1 Tiếp theo máy chuyển từ trạng thái q0 dưới tác động của ký hiệu a1
về trạng thái mới δ( , )q a0 1 =q1∈ , và đầu đọc chuyển sang phải một ơ, tức là Q
q0 q1 q2 … qn-2 qn-1 qn
Trang 27nhìn vào ơ cĩ kí hiệu a2 Sau đĩ Automata A cĩ thể lặp lại tiếp tục chuyển từ trạng thái q1 nhờ ánh xạ chuyển δ về trạng thái mới q2 Quá trình đĩ tiếp tục cho tới khi gặp một trong các trường hợp sau :
- Trong trường hợp Automata A đọc hết xâu vào ω và 1
(q n , )a n q n F
δ − = ∈ , ta nĩi rằng A đốn nhận ω
- Trong trường hợp Automata đọc hết xâu vào ω và δ(q n−1, )a n =q n∉F
hoặc tồn tại một chỉ số j nào đĩ δ(q j−1, )a j sao cho khơng xác định, ta nĩi rằng
A khơng đốn nhận ω Khi đĩ Automata dừng lại
2.1.2 Phương pháp biểu diễn Atomata hữu hạn đơn định
Ánh xạ chuyển δ là một bộ phận quan trọng của một Automata hữu hạn đơn định Nĩ cĩ thể được cho dưới dạng bảng chuyển hoặc dưới dạng đồ thị chuyển
1) Phương pháp cho dưới dạng bảng chuyển
Kí hiệu vào Trạng thái
Trong đĩ dịng i, cột j là ơ trống nếu ( , )δ q a i j khơng xác định
2) Phương pháp cho bằng đồ thị chuyển
Cho Automata A=<Q, , , ,∑ δ q F0 > Ánh xạ chuyển δ cĩ thể cho bằng
một đa đồ thị cĩ hướng, cĩ khuyên G như sau: Tập đỉnh của G là Q, nếu a ∈ ∑
và từ trạng thái q chuyển sang trạng thái p bởi đẳng thức ( , )δ q a = p thì sẽ cĩ một cung từ q tới p được gán nhãn a ðỉnh vào của đồ thị chuyển là đỉnh ứng với trạng thái ban đầu q0 Các đỉnh được khoanh bởi các vịng trịn, tại đỉnh q0 cĩ mũi tên đi vào, riêng với đỉnh trạng thái kết thúc được khoanh bởi vịng trịn đậm
Trang 28ðể mơ tả quá trình đốn nhận một từ, người ta đưa vào khái niệm ánh xạ mở rộng δ' từ tập con của Q × ∑ vào Q như sau : *
2.1.3 ðịnh nghĩa : Cho Automata hữu hạn đơn định A=<Q, , , ,∑ δ q F0 > , ánh
xạ mở rộng 'δ từ tập con của Q × ∑ vào Q được xác định như sau : *
ω∈ ∑ L là một ngơn ngữ trên ∑ , ta nĩi :
- ω được đốn nhận bởi A nếu δ( , )q0 ω ∈F
- L được đốn nhận bởi A nếu *
0
L= ω∈ ∑ δ q ω ∈F và kí hiệu L là T(A) Lưu ý rằng, đồ thị chuyển của A, ω∈ ∑ được đốn nhận bởi A khi và chỉ *khi ω ứng với một đường đi từ đỉnh q0 đến một trong các đỉnh kết thúc Cụ thể, nếu ω=a a a1 2 n thì đường đi là (q q q q0 1 2 )n với cung q q i−1 i cĩ nhãn ai, (1≤ ≤i n) và q n∈F Vậy, T(A) là tập hợp tất cả các đường đi từ q0 đến các đỉnh kết thúc
2.1.5 ðịnh nghĩa : Hai Automata hữu hạn đơn định A và A’ được gọi là hai
Automata hữu hạn đơn định tương đương nếu T(A) = T(A’)
Ví dụ 1 : Cho Automata hữu hạn đơn định :
Trang 29Trước hết, ta nhận thấy rằng không có ñường ñi từ q0 ñến ñỉnh kết thúc q4, do ñó Automata A tương ñương với Automata A’ sau :
ðồ thị chuyển của A’ là :
Các ñường ñi từ q0 ñến ñỉnh kết thúc q1 ứng với các xâu 0n1, n≥ 0 Các ñường ñi
Trang 302.1.7 ðịnh lý: Nếu L là ngơn ngữ được đốn nhận bởi Automata hữu hạn đơn
định thì tồn tại số tự nhiên n sao cho với mọi α∈ cĩ ( )L d α ≥ đều cĩ thể phân n
tích dưới dạng α =uvw, trong đĩ ( )d uv ≤n d v, ( ) 1≥ và i∀ ∈N, ta cĩ uv w L i ∈
Chứng minh:
Giả sử L=T(A), với A=<Q, , , ,∑ δ q F0 > là một Automata hữu hạn đơn
định Gọi n= Q Ta chứng minh n là số tự nhiên cần tìm
Cho α =a a a1 2 m∈L m n, ≥ Khi đĩ ∃q q1, , ,2 q m∈Q sao cho
1(q i , )a i q i, 1 i m q, m F
Do m n≥ nên trong dãy q q1, , ,2 q m cĩ ít nhất hai trạng thái trùng nhau Gọi k là
số nhỏ nhất sao cho tồn tại (i i k n≤ ≤ ) để qi = qk
ðặt u a a a v a= 1 2 ,i = i+1 ,a w a k = k+1 a m Ta cĩ α =uvw, d(vu) = k ≤ n, d(v)≥ 1 (do i <k)
2.1.8 Hệ quả : Cho A là một Automata hữu hạn đơn định cĩ n trạng thái và L là
ngơn ngữ được đốn nhận bởi A Khi đĩ L ≠ ∅ khi và chỉ khi tồn tại ω∈ sao L
cho ( )d ω < n
Chứng minh :
( ) :⇒ L ≠ ∅ Giả sử mọi từ trong L đều cĩ độ dài ≥ n Gọi α là từ cĩ độ dài nhỏ nhất trong L ( ( )d ω ≥ ) Theo định lý 2.1.7, ta cĩ n α =uvw, trong đĩ ( )
d uv ≤ , ( ) 1n d v ≥ và với mọi i N∈ ta cĩ uv w L i ∈ Với i=0 , α =uw L∈ mà ( ) ( )
d uw <d α ðiều này mâu thuẫn với tính nhỏ nhất của d(α ) Vậy tồn tại
L
ω∈ sao cho ( )d ω < n
( ) :⇐ ðiều kiện đủ là hiển nhiên
Hệ quả được chứng minh
Trang 312.1.9 Hệ quả : Tồn tại một ngơn ngữ phi ngữ cảnh mà khơng được đốn nhận
bởi bất kì một Automata hữu hạn đơn định nào
Chứng minh : Cho ngơn ngữ L={a b n n n ≥ trên bảng chữ cái 1} ∑ ={ , }a b Ta
cĩ L = L(G), trong đĩ G=< ∑,{ },{S S→aSb S, →ab}> là văn phạm phi ngữ cảnh Giả sử L = T(A) với A=<Q, , , ,∑ δ q F0 > là một Automata hữu hạn đơn định Với n đủ lớn, α =a b n n cĩ ( )d α ≥ Q Theo đinh lý 2.1.7, a b n n =uvw, trong đĩ ( )d uv ≤ Q d v, ( ) 1,≥ uv w L i N i ∈ ∀ ∈
2.1.10 Hệ quả : Với Automata hữu hạn đơn định A=<Q, , , ,∑ δ q F0 > bất kỳ, ta luơn cĩ thể xây dựng một Automata hữu hạn đơn định đầy đủ A’ tương đương với A
Chứng minh : Thật vậy, lấy S Q ∉ (do đĩ S∉F ), đặt Q'=Q∪{ }S và ': 'Q Q'
δ × ∑ → xác định bởi : ∀ ∈q Q,∀ ∈ ∑a , '( , )δ q a =δ( , )q a nếu ( , )δ q a
được xác định, '( , )δ q a = nếu ( , )S δ q a khơng được xác định và '( , )δ S a = S
Khi đĩ :
0' ', , ', ,
A =<Q ∑ δ q F >
là Automata hữu hạn đơn định đầy đủ mà T(A’) = T(A)
2.1.11 ðịnh nghĩa: Một Automata hữu hạn khơng đơn định (NDFA) là một
bộ năm:
0, , , ,
A=<Q ∑ δ q F >
Trong đĩ:
- Q là một tập hữu hạn khác rỗng được gọi là tập trạng thái;
- ∑ là một bảng chữ cái được gọi là bảng chữ vào;
Trang 32- δ : Q× ∑ →P(Q) , (P(Q) là tập hợp các tập con của Q) gọi là ánh xạ chuyển;
- q0∈ được gọi là trạng thái đầu; Q
- F Q⊂ , được gọi là tập các trạng thái kết thúc
Trong trường hợp ( , )δ q a ≠ ∅ ∀ ∈, q Q a,∀ ∈ ∑ ta nĩi A là đầy đủ
Nếu δ( , ) { , , , }q a = p p1 2 p k thì ta nĩi Automata A ở trạng thái q gặp kí hiệu a thì cĩ thể chuyển đến một trong các trạng thái p1, p2,…,pk
Nếu ( , ) { }δ q a = p thì ở trạng thái q gặp kí hiệu a, Automata A chỉ chuyển đến một trạng thái duy nhất p
Nếu ( , )δ q a = ∅ thì ở trạng thái q gặp kí hiệu a, Automata A khơng thể chuyển đến trạng thái nào Trường hợp này giống như ( , )δ q a khơng xác định của Automata hữu hạn đơn định Như vậy ta thấy rằng, một Automata hữu hạn đơn định là trường hợp riêng đặc biệt của Automata hữu hạn khơng đơn định
Hoạt động của Automata hữu hạn khơng đơn định A=<Q, , , ,∑ δ q F0 > khi cho xâu vào ω=a a a1 2 n cĩ thể được mơ tả như sau :
Khi bắt đầu làm việc, máy ở trạng thái đầu q0 và đầu đọc đang nhìn vào ơ
cĩ kí hiệu a1 Tiếp theo máy chuyển từ trạng thái q0 dưới tác động của ký hiệu a1
về trạng thái mới δ( , ) { , , , }q a0 1 = p p1 2 p k , máy xác định các trạng thái cĩ thể tiếp theo là p p1, , ,2 p kvà đầu đọc chuyển sang phải một ơ, tức là nhìn vào ơ cĩ
kí hiệu a2 Tiếp tục với mỗi pi, (1 i k≤ ≤ ), và kí hiệu tiếp theo là a2, các trạng thái tiếp theo cĩ thể đến được là δ( , ) p a1 2 ∪ ∪δ( , )p a k 2 Quá trình đĩ tiếp tục cho tới khi gặp một trong các trường hợp sau :
- Trong trường hợp tập trạng thái tiếp theo sau khi đọc aj nào đĩ là rỗng hoặc sau khi đọc kí hiệu an là Q’ mà 'Q∩F = ∅ , ta nĩi rằng A khơng đốn nhận