Một trong những lý thuyết cơ sở của mônkhoa học này là lý thuyết về văn phạm và ngôn ngữ hình thức.. Về văn phạm.Với mục đích sản sinh hay đoán nhận ngôn ngữ, vănphạm được dùng như một
Trang 2Người hướng dẫn khoa học
TS KIỀU VĂN HƯNG
Hà Nội - 2016
Trang 3Trước khi trình bày nội dung chính của khóa luận tốt nghiệp, em xinbày tỏ lòng biết ơn sâu sắc tới T.S Kiều Văn Hưng đã tận tình hướngdẫn để em có thể hoàn thành đề tài này.
Em cũng xin bày tỏ lòng biết ơn chân thành tới toàn thể các thầy côgiáo trong khoa Toán, Trường Đại học Sư phạm Hà Nội 2 đã dạy bảo emtận tình trong suốt quá trình học tập tại khoa
Nhân dịp này em cũng xin được gửi lời cảm ơn chân thành tới gia đình,bạn bè đã luôn bên em, động viên, giúp đỡ em trong suốt quá trình họctập và thực hiện đề tài thực tập này
Hà Nội, ngày 04 tháng 05 năm 2016
Sinh viênNgô Thị Tú Uyên
Trang 4Tôi xin cam đoan rằng số liệu và kết quả nghiên cứu trong khóa luậnnày là trung thực và không trùng lặp với các đề tài khác Tôi cũng xin camđoan rằng mọi sự giúp đỡ cho việc thực hiện khóa luận này đã được cảm
ơn và các thông tin thu trích dẫn trong khóa luận đã được chỉ rõ nguồngốc
Hà Nội,ngày 04 tháng 05 năm 2015
Sinh viênNgô Thị Tú Uyên
Trang 5Lời mở đầu iii Danh mục các kí hiệu và chữ viết tắt v
1.1 Các khái niệm cơ bản về ngôn ngữ hình thức 2
1.1.1 Bảng chữ cái 2
1.1.2 Từ 2
1.1.3 Ngôn ngữ 4
1.2 Các phép toán trên từ 5
1.2.1 Phép nhân ghép 5
1.2.2 Phép lấy từ ngược 7
1.2.3 Phép chia từ 8
1.3 Các phép toán trên ngôn ngữ 9
1.3.1 Phép hợp 9
1.3.2 Phép giao 9
1.3.3 Phép lấy phần bù 11
1.3.4 Phép nhân ghép 12
1.3.5 Phép lặp 14
Trang 61.3.6 Phép lấy ngôn ngữ ngược 15
1.3.7 Phép chia ngôn ngữ 16
2 VĂN PHẠM 18 2.1 Văn phạm và ngôn ngữ sinh bởi văn phạm 19
2.1.1 Định nghĩa văn phạm 19
2.1.2 Ngôn ngữ sinh bởi văn phạm 21
2.1.3 Phân loại văn phạm theo Chomsky 24
2.2 Các tính chất của văn phạm và ngôn ngữ 27
2.2.1 Một số tính chất của văn phạm và dẫn xuất 27
2.2.2 Tính đóng của lớp ngôn ngữ sinh bởi văn phạm 32 Bài tập 37
Tài liệu tham khảo 53
Trang 7Lời mở đầu
Sự phát triển của thế giới ngày càng gắn liền với sự phát triển bùng
nổ của khoa học máy tính Một trong những lý thuyết cơ sở của mônkhoa học này là lý thuyết về văn phạm và ngôn ngữ hình thức
Về ngôn ngữ hình thức Ngôn ngữ là phương tiện để giao tiếp, sự giaotiếp có thể hiểu là giao tiếp giữa con người với con người, giao tiếp giữangười và máy, hay giao tiếp giữa máy với máy Ngôn ngữ để giao tiếpgiữa người với người là ngôn ngữ tự nhiên như ta đã biết, ví dụ tiếngViệt, tiếng Anh, Tiếng Trung Còn ngôn ngữ giao tiếp giữa người vớimáy, giữa máy với nhau là ngôn ngữ hình thức Vậy tại sao cần sử dụngngôn ngữ hình thức mà không phải ngôn ngữ tự nhiên? Ngôn ngữ hìnhthức được xây dựng thế nào? Nó có tính chất gì? Những câu hỏi này
sẽ được trả lời trong Chương 1: Ngôn ngữ hình thức
Về văn phạm.Với mục đích sản sinh ( hay đoán nhận) ngôn ngữ, vănphạm được dùng như một cách thức hiệu quả để biểu diễn ngôn ngữ.Vậy văn phạm trong khoa học máy tính là gì? Ngôn ngữ sinh bởi vănphạm này khác ngôn ngữ tự nhiên như thế nào? Văn phạm có nhữngtính chất gì? Những câu hỏi này sẽ được trả lời trong Chương 2: Vănphạm
Tác giả luận văn chân thành cảm ơn T.S Kiều Văn Hưng đã tận tìnhhướng dẫn tác giả đọc các tài liệu, tập dượt nghiên cứu và góp ý chi tiết
về cách trình bày một số kết quả trong luận văn
Tác giả chân thành cảm ơn các thầy cô giáo Khoa Toán trường Đại
Trang 8học Sư phạm Hà Nội 2, đặc biệt là tổ Ứng dụng, đã tạo điều kiện thuậnlợi cho tác giả trong quá trình học Đại học và thực hiện bản khóa luậnnày.
Hà Nội, ngày 04 tháng 05 năm 2016
Tác giả khóa luận
Ngô Thị Tú Uyên
Trang 9Danh mục các kí hiệu và chữ viết tắt
Trang 10NGÔN NGỮ HÌNH THỨC
Ngôn ngữ tự nhiên Ngôn ngữ giao tiếp giữa người với người gọi làngôn ngữ tự nhiên , như tiếng Anh, tiếng Trung, tiếng Việt, Cácquy tắc cú pháp của ngôn ngữ tự nhiên nói chung rất phức tạp,nhưng các yêu cầu nghiêm ngặt về mặt ngữ nghĩa thì lại thiếu chặtchẽ, chẳng hạn cùng một từ hay một câu ta có thể hiểu chúng theonhững nghĩa khác nhau tùy theo từng ngữ cảnh cụ thể Do đó ngônngữ tự nhiên không thích hợp để dùng giao tiếp giữa người với máy,hoặc giữa máy với máy
Ngôn ngữ hình thức Để có sự giao tiếp giữa người với máy, hay giữamáy với nhau, cần phải có một loại ngôn ngữ với các quy tắc cúpháp chặt chẽ hơn so với ngôn ngữ tự nhiên, với một từ hay mộtcâu thì ngữ nghĩa của chúng phải là duy nhất và không phụ thuộcvào ngữ cảnh Những ngôn ngữ như thế được gọi là ngôn ngữ hìnhthức
Trang 111.1 Các khái niệm cơ bản về ngôn ngữ hình thức
1.1.1 Bảng chữ cái
Định nghĩa 1.1 Tập Σ khác rỗng gồm hữu hạn các kí hiệu được gọi
là bảng chữ cái Mỗi phần tử a ∈ Σ được gọi là một chữ cái hay một kíhiệu
Ví dụ 1.1 Dưới đây là các bảng chữ cái thông thường:
là một từ hay một xâu trên Σ
Trong một từ, một chữ cái có thể xuất hiện nhiều lần
Tổng số vị trí của các kí hiệu xuất hiện trong từ α được gọi là độ dàicủa từ α, và kí hiệu là |α|
Từ không có kí tự nào được gọi là từ rỗng, và được kí hiệu là ε Rõràng |ε| = 0 , và nó thuộc mọi bảng chữ cái
Trang 12Hai từ α = a1 a2 an và β = b1 b2 bn được gọi là bằng nhau, kíhiệu là α = β, nếu n = m (tức là α và β có độ dài bằng nhau) và ai = bivới mọi i = 1, 2, , n.
Nếu α là một từ trên bảng chữ cái Σ1, và Σ1 ⊆ Σ2 thì α cũng là từtrên bảng chữ cái Σ2
Tập mọi từ trên bảng chữ cái Σ được kí hiệu là Σ∗, tập mọi từ khácrỗng trên bảng chữ cái Σ được kí hiệu là Σ+ Như vậy: Σ+ = Σ∗\{ε} và
Σ∗ = Σ+∪ {ε} Dễ thấy rằng các tập Σ+ và Σ∗ là vô hạn
Về cấu trúc đại số thì Σ∗ là một vị nhóm tự do sinh bởi Σ với phần
tử đơn vị là từ rỗng (ε), còn Σ+ là một nửa nhóm tự do sinh bởi Σ Cóthể chứng minh được rằng các tập Σ∗ và Σ+ là vô hạn đếm được
Trang 13Chú ý: Ngôn ngữ rỗng L = ∅ khác với ngôn ngữ chỉ gồm một từrỗng L = {ε} Ngôn ngữ L = ∅ không có từ nào, còn ngôn ngữ L = {ε}
4 L1 = {ε, a, b, aa, ab, abb, bbb}, L2 = {anbn | n ∈ N} là hai ngôn ngữtrên bảng chữ cái Σ = {a, b} L1 là ngôn ngữ hữu hạn, L2 là ngôn
Trang 14ngữ vô hạn.L1, L2 cũng là ngôn ngữ trên bảng chữ cái Σ0 = {a, b, c}.
Trang 15• Đối với phép nhân ghép,thì hàm độ dài có một số tính chất hìnhthức của logarit, tức là với mọi từ α, β và mọi số tự nhiên n thì
|αβ| = |α| + |β|
|αn| = n|α|
|ε| = 0
Một vài khái niệm liên quan
• Đối với các từ ω, t1, ϕ, t2 trên bảng chữ cái Σ mà ω = t1ϕt2 thì ∗ϕ∗(∗ không phải là một kí hiệu của Σ) gọi là một vị trí của ϕ trên Σ
• Xâu ϕ được gọi là một từ con trong ω nếu tồn tại ít nhất một vịtrí của ϕ trong ω
• Nếu t1 = ε, tức là ω = ϕt2 thì ϕ được gọi là tiền tố (phần đầu) của
từ ω, nếu t2 = ε, tức là ω = t1ϕ thì ϕ được gọi là hậu tố
(phần cuối) của từ ω Dễ thấy rằng từ rỗng ε là tiền tố, là hậu tố
và là từ con của một từ ω bất kì trên bảng chữ cái Σ
Trang 162 Cho Σ = {a, b, c}, khi đó từ ω = abcbcb chứa 2 vị trí của bcb, đó là
a∗bcb∗cb và abc∗bcb∗, ϕ = bcb là một từ con của ω Từ ω chứa một
vị trí của kí hiệu a, đó là ∗a∗bcbcb
3 Từ ω = 011001 trên bảng chữ cái Σ = {0, 1}, có độ dài 6, trong đó
01 là tiền tố, 1001 là hậu tố của ω
1.2.2 Phép lấy từ ngược
Định nghĩa 1.5 Giả sử có từ khác rỗng ω = a1a2 am−1am trên bảngchữ cái Σ, khi đó từ amam−1 a2a1 được gọi là từ ngược ( hay từ soigương ) của từ ω, được kí hiệu là ωR, hay ωˆ Khi ω = ε ta quy ước
Trang 17tố β trong từ α, và được kí hiệu là β\α.
Định nghĩa 1.7 Phép chia phải của từ α cho từ γ (hay thương bênphải của từ α và γ) cho kết quả là phần còn lại của từ α sau khi ngắt
bỏ hậu tố γ trong từ α và được kí hiệu là α/γ
1 β\α = 456789 và α/γ = 123456
2 (β\α)R = (456789)R = 987654 = 987654321/321 = αR/βR
Trang 181.3 Các phép toán trên ngôn ngữ
Vì mỗi ngôn ngữ là một tập hợp, nên ta có các phép toán đại số tậphợp như: phép giao, phép hợp, phép lấy phần bù, trên các ngôn ngữ
1.3.1 Phép hợp
Định nghĩa 1.8 Hợp của hai ngôn ngữ L1 và L2 trên bảng chữ cái Σ,
kí hiệu là L1 ∪ L2, là một ngôn ngữ trên bảng chữ cái Σ, đó là tập từ:
L = {ω ∈ Σ∗ | ω ∈ L1 hoặc ω ∈ L2}Định nghĩa phép hợp có thể mở rộng cho một số hữu hạn các ngônngữ, tức là hợp của các ngôn ngữ L1, L2, , Ln trên bảng chữ cái Σ, làtập hợp từ:
Định nghĩa 1.9 Giao của hai ngôn ngữ L1 và L2 trên bảng chữ cái Σ,
kí hiệu là L1 ∩ L2, là một ngôn ngữ trên bảng chữ cái Σ, đó là tập từ:
Trang 19L = {ω ∈ Σ∗ | ω ∈ L1 và ω ∈ L2}Định nghĩa phép giao có thể mở rộng cho một số hữu hạn các ngônngữ, tức là giao của các ngôn ngữ L1, L2, , Ln trên bảng chữ cái Σ, làtập từ:
Trang 201.3.3 Phép lấy phần bù
Định nghĩa 1.10 Ngôn ngữ phần bù của ngôn ngữ L trên bảng chữcái Σ, kí hiệu là CΣL (hay đơn giản là CL, nếu không gây nhầm lẫn), làmột ngôn ngữ trên bảng chữ cái Σ, đó là tập từ:
Trang 211.3.4 Phép nhân ghép
Định nghĩa 1.11 Cho hai ngôn ngữ L1 trên bảng chữ cái Σ1 và L2 trênbảng chữ cái Σ2 Nhân ghép hay tích của hai ngôn ngữ L1 và L2 là mộtngôn ngữ trên bảng chữ cái Σ1 ∪ Σ2, kí hiệu là L1L2, được xác định bởi
L1L2 = {αβ | α ∈ L1 và β ∈ L2 }Tính chất: Phép nhân ghép (tích) các ngôn ngữ có các tính chất sau:
Trang 221 Phép nhân ghép không có tính phân phối với phép giao
3 Phép giao không có tính phân phối với phép nhân ghép
Trang 23• (L∗)∗ = L∗
• {ε}∗ = {ε}
• (∅)∗ = {ε} ∪ ∅ ∪ ∅.∅ ∪ = {ε}
• (∅)+ = ∅
Trang 24Ví dụ 1.10 .
1 Xét ngôn ngữ L = {0, 1} trên bảng chữ cái Σ = {0, 1}, ta có
L2 = {00, 01, 10, 11} là tập hợp các xâu nhị phân có độ dài 2
L3 = {000, 001, 010, 011, 100, 101, 110, 111} là tập hợp các xâu nhịphân có độ dài 3
Ln là tập các xâu nhị phân có độ dài n
Vậy L∗ là tập hợp tất cả các xâu nhị phân
2 Trên bảng chữ cái Σ = {a} cho hai ngôn ngữ:
1.3.6 Phép lấy ngôn ngữ ngược
Định nghĩa 1.13 Cho ngôn ngữ L trên bảng chữ cái Σ, khi đó ngônngữ ngược của L là một ngôn ngữ trên bảng chữ cái Σ, được kí hiệu là
LR hay Lˆ, là tập từ:
LR = {ω ∈ Σ∗| ωR ∈ L}
Tính chất: Phép lấy ngôn ngữ ngược có các tính chất sau:
• (LR)R = L
Trang 26Ví dụ 1.12 Trên bảng chữ cái Σ = {a, b, c, , z}, cho các ngôn ngữ
X = {unhappy, overwork, superman, teacher, agreement, learning}
Y = {un, over, super}
Z = {er, ment, ing}
Khi đó, ta có
+ Y\X = {happy, work, man}
+ X/Z = {teach, agree, learn}
+ X\X = {ε}
+ Y/Y = {ε}
Trang 27VĂN PHẠM
Lý thuyết ngôn ngữ hình thức liên quan nhiều đến đặc tả cú phápcủa ngôn ngữ hơn là những vấn đề ngữ nghĩa Nhiệm vụ chính của lýthuyết ngôn ngữ là nghiên cứu các cách đặc tả hữu hạn cho các ngônngữ vô hạn
Trong ngôn ngữ học, văn phạm là một tập các quy tắc về cấu tạo từ
và các quy tắc về cách thức liên kết các từ lại thành câu
Trong lý thuyết ngôn ngữ hình thức, ta có thể hình dung một vănphạm như một "thiết bị tự động" mà nó có khả năng sinh ra một tậphợp các từ trên một bảng chữ cái cho trước Mỗi từ được sinh ra saumột số hữu hạn các quy tắc của văn phạm
Việc sinh ra các từ có thể được thực hiện bằng nhiều cách khác nhau:bởi các văn phạm, các Otomat, các máy hình thức như máy Turing, Ởđây ta đề cập đến cách của CHOMSKY đưa ra vào những năm 1956 -
1957 Ông đã đưa ra mô hình toán học cho văn phạm, tuy chưa mô tảđược hoàn toàn ngôn ngữ tự nhiên (tiếng Anh), nhưng đã tạo ra môhình cho những ngôn ngữ hình thức thực hiện dễ dàng trên máy tính
Trang 282.1 Văn phạm và ngôn ngữ sinh bởi văn phạm
+ ∆ là một bảng chữ cái, ∆ ∩ Σ = ∅, gọi là bảng chữ cái không kếtthúc (hay bảng ký hiệu phụ), mỗi phần tử của nó được gọi là ký hiệukhông kết thúc hay ký hiệu phụ
+ S ∈ ∆ được gọi là ký hiệu xuất phát hay tiên đề
+ P là tập hợp các quy tắc sinh có dạng α → β, α được gọi là vế trái
và β được gọi là vế phải của quy tắc này, với α, β ∈ (Σ ∪ ∆)∗ vàtrong α chứa ít nhất một ký hiệu không kết thúc
Trang 29Ví dụ 2.1 Các bộ bốn sau đây là các văn phạm:
1 G1 =< {0, 1}, {S}, S, {S → 0S1, S → ε} >
2 G2 =< {a, b}, {S, C}, S, {S → aCa, C → aCa, C → b} >
3 G3 =< {0, 1, 2}, {S, A}, S, {S → 0SA2, S → 012, 2A → A2, 1A →11} >
4 Trong tiếng Việt (là một ngôn ngữ tự nhiên) xét mẫu câu có dạng:
cú pháp Ví dụ như: thay "Nam" bằng "Linh", "ăn" bằng "uống",
"cơm" bằng "cafe", ta được câu: "Linh uống cafe"
Trang 30+ <câu> là kí hiệu mở đầu.
Với các quy tắc cú pháp như trên
Vậy ta có thể xây dựng một văn phạm cho mẫu ngôn ngữ tiếng Việttrên như sau:
→ <động từ 2> <danh từ 2>, <động từ 1> → ăn, <động từ 2>
→ uống, <danh từ 1> → cơm, <danh từ 2> → cafe }
Chú ý: Nếu các quy tắc có vế trái giống nhau có thể viết gọn lại: haiquy tắc α → β, α → γ có thể viết là α → β|γ Chẳng hạn như trongvăn phạm G1 ở ví dụ 2.1.1, ta có thể viết hai quy tắc của nó dưới dạng
S → 0S1| ε
2.1.2 Ngôn ngữ sinh bởi văn phạm
Định nghĩa 2.2 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ắngọn là η ` ω (nếu không sợ nhầm lẫn), nếu tồn tại quy tắc α → β ∈ P
và γ, δ ∈ (Σ ∪ ∆)∗ sao cho η = γαδ, ω = γβδ
Điều này có nghĩa là nếu η nhận vế trái α của quy tắc α → β như là
Trang 31từ con thì thay α bằng β để được từ mới ω.
Định nghĩa 2.3 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à η |= ω (nếu không sợ nhầm lẫn), nếu η = ω hoặc tồn tại một dãy
D = ω0, ω1, , ωk ∈ (Σ ∪ ∆)∗ sao cho ω0 = η, ωk = ω và ωi−1 ` ωi với
i = 1, 2, , k
Dãy D = ω0, ω1, , ωk được gọi là một dẫn xuất của ω từ η trong G
và số k được gọi là độ dài của dẫn xuất này Nếu ω0 = S và ωk ∈ Σ∗ thì
D gọi là dẫn xuất đầy đủ Nếu ωi được suy dẫn trực tiếp từ ωi−1 bằngviệc áp dụng một quy tắc P nào đó trong G thì ta nói quy tắc P được
áp dụng ở bước thứ i
Nhận xét:
+ Khi áp dụng một quy tắc nào đó trong tập quy tắc R để chuyểnmột từ η thành một từ khác ω tức là đã dẫn trực tiếp từ η đến ω.+ Suy dẫn trực tiếp là trường hợp của suy dẫn với độ dài dẫn xuất
k = 1
Định nghĩa 2.4 Cho văn phạm G =< Σ, ∆, S, P > Từ ω ∈ Σ∗ đượcgọi là sinh bởi văn phạm G nếu tồn tại suy dẫn S |= ω Ngôn ngữ sinhbởi văn phạm G, kí hiệu L(G), là tập hợp tất cả các từ sinh bởi vănphạm G:
L(G) = {ω ∈ Σ∗| S |=G ω}
Trang 32Các từ không do văn phạm sinh ra được gọi là các từ ngoại lai.
Như vậy L(G) là tập tất cả các từ chỉ toàn kí hiệu kết thúc
Định nghĩa 2.5 Hai văn phạm G1 = < Σ1, ∆1, S1, P1 > và G2 = <
Σ2, ∆2, S2, P2 > được gọi là tương đương nếu L(G1) = L(G2)
+ Mặt khác, mọi xâu của L(G2) đều được sinh ra từ văn phạm
G2, đều bắt đầu bằng quy tắc 1: S → aCa, và đều kết thúcbằng quy tắc 3: C → b (vì ngôn ngữ chỉ chứa toàn kí hiệu kếtthúc)
Nếu áp dụng quy tắc 1, rồi áp dụng ngay quy tắc 3 ta đượcxâu aba
Nếu áp dụng quy tắc 1, sau đó áp dụng n lần (n ≥ 0) quy tắc
2, sau đó áp dụng quy tắc 3 để kết thúc ta được xâu anban
Từ đó suy ra L(G2) ⊆ {anban | n ≥ 1}
Kết hợp hai bao hàm thức, ta có: L(G2) = {anban | n ≥ 1}
2 Cho hai văn phạm G =< Σ, ∆, S, P >, G0 =< Σ, ∆, S, P0 >, trongđó:
Trang 33Σ = {a, b}, ∆ = {S}
P = {S → aSb, S → ab}
P0 = {S → aSb, S → aabb, S → ab}
Dễ thấy rằng hai văn phạm này cùng sinh ra một loại ngôn ngữ
L = {anbn | n ≥ 1} Vì vậy G và G’ là tương đương nhau
2.1.3 Phân loại văn phạm theo Chomsky
Trước khi thực hiện phân loại ngôn ngữ, chúng ta cần đưa thêm kháiniệm ngữ cảnh
Xét quy tắc dẫn xuất dạng αAα0 → αωα0, trong đó: A ∈ ∆, ω, α, α0 ∈(Σ ∪ ∆)∗, α gọi là ngữ cảnh trái, α0 được gọi là ngữ cảnh phải và αωα0
là xâu thay thế Khi đó ta chỉ có thể thực hiện dẫn xuất theo ngữ cảnh
và có xâu thay thế trong ngữ cảnh trái và phải như đã xác định
Ví dụ:
+ Trong aAbc → aBAbc, a là ngữ cảnh trái, bc là ngữ cảnh phải.+ Trong AB → A , A là ngữ cảnh trái, ε là ngữ cảnh phải và ω = ε.+ Trong B → ε, cả ngữ cảnh phải và trái và ω đều là ε Quy tắc nàycho phép xóa biến B trong mọi ngữ cảnh
Dựa vào đặc điểm của tập quy tắc mà người ta chia các văn phạmthành các nhóm khác nhau Noam Chomsky (Viện Giáo sư, Viện Côngnghệ Massachusetts Sinh ngày 7 tháng 12 năm 1928 tại Philadelphia,Pennsylvania, USA) đã phân loại thành 4 nhóm: