LÝ THUYẾT NGÔN NGỮ HÌNH THỨC

95 59 0
LÝ THUYẾT NGÔN NGỮ HÌNH THỨC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục lục MộT Số KIếN THứC TOÁN HọC CƠ Sở I II LÔGICH I.1 Khái niệm lơgích Các phép tính lơgích I.2 Các tính chất I.3 Biểu thức lơgích II.1 II.2 II.3 II.4 II.5 III III.1 III.2 III.3 IV V V.1 V.2 Mở DầU I II II.1 II.2 II.3 II.3.1 II.3.2 II.3.3 III III.1 III.2 III.3 III.4 TậP HợP Biểu diễn tập hợp Quan hệ tập hợp Các phép toán tập hợp Ánh xạ Tính đếm tập hợp vơ hạn CÁC QUAN Hệ TRÊN TậP HợP Khái niệm Các quan hệ tương đương Bao đóng quan hệ CHứNG MINH QUY NạP 10 Đồ THị VÀ CÂY 11 Định nghĩa đồ thị 11 Cây (Tree) 11 CƠ Sở CủA MON HọC CÁC KHÁI NIệM Khái niệm toán Khái niệm chương trình Hình thức hóa tốn Bảng chữ câu Biểu diễn toán Ngôn ngữ MÔ Tả NGÔN NGữ Các phép tốn ngơn ngữ Biểu thức qui Các ngơn ngữ phi qui Vấn đề biểu diễn ngôn ngữ .10 ÔTÔMAT HữU HạN 12 I II II.1 II.2 ÔTÔMAT HữU HạN ĐƠN ĐịNH .13 Mô tả 13 Mơ hình hóa 14 Biểu diễn ôtômat sơ đồ 14 ÔTÔMAT HữU HạN KHÔNG ĐƠN ĐịNH 17 Mô tả 17 Khử bỏ tính không đơn định .19 II.3 Ơtơmat hữu hạn biểu thức qui .23 I.1 I.2 I.3 II.2.1 II.2.2 II.2.3 II.3.1 II.3.2 Nguyên tắc xây dựng 19 Hình thức hóa việc xây dựng 19 Tính đắn phương pháp 22 Xây dựng ôtômat từ biểu thức qui 24 Xây dựng ngôn ngữ quy từ ơtơmat .26 PGS TS Phan Huy Khánh biên soạn CÁC VĂN PHạM CHÍNH QUY 29 I II II.1 II.2 II.3 III III.1 III.2 III.3 III.4 III.4.1 III.4.2 III.4.3 IV Mở ĐầU 29 CÁC VĂN PHạM 31 Định nghĩa 31 Phân cấp loại văn phạm Chomsky 32 Các văn phạm qui 34 CÁC NGƠN NGữ CHÍNH QUY .36 Các tính chất ngơn ngữ quy 36 Các thuật giải .37 Nhận xét .38 Định lí "bơm" (Pumping Theorem) .39 Phát biểu định lý "bơm" 39 Phát triển định lý "bơm" 39 Ứng dụng định lí "bơm" .39 ỨNG DụNG CÁC NGƠN NGữ CHÍNH QUI 40 ÔTÔMAT ĐẩY XUốNG VÀ NGÔN NGữ PHI NGữ CảNH 42 I II I.1 I.2 I.3 II.1 II.2 II.3 III III.1 III.2 III.3 III.4 IV IV.1 IV.2 IV.3 IV.4 IV.5 CÁC ÔTÔMAT ĐẩY XUốNG 42 Mô tả 42 Mơ tả hình thức 43 Một số ví dụ 44 CÁC NGÔN NGữ PHI NGữ CảNH 45 Định nghĩa 45 Quan hệ với ôtômat đẩy xuống 45 Tính chất ngôn ngữ phi ngữ cảnh 46 LÀM VIệC VớI CÁC NGÔN NGữ PNC 47 Khái niệm phân tích 47 Định lý “bơm” .49 Ap dụng định lý “bơm” 51 Các thuật giải cho ngôn ngữ PNC 51 CÁC ÔTÔMAT ĐẩY XUốNG ĐƠN ĐịNH 55 Nguyên lý .55 Hình thức hóa 55 Các ngôn ngữ PNC đơn định .56 Tính chất ngơn ngữ PNC đơn định .56 Ứng dụng .56 CÁC MÁY TURING 58 I I.1 I.2 I.3 I.4 I.5 I.5.1 I.5.2 I.6 I.7 II II.1 II.2 II.2.1 II.2.2 II.2.3 ĐịNH NGHĨA MÁY T URING 58 Mô tả máy Turing đơn định 58 Định nghĩa hình thức 59 Ngôn ngữ thừa nhận ngôn ngữ xác định 62 Các hàm tính máy Turing 64 Các định nghĩa khác máy Turing 65 Máy Turing loại 65 Máy Turing loại 65 Các ngôn ngữ đệ quy liệt kê đệ quy .65 Luận đề Turing-Church 65 CÁC Kỹ THUậT XÂY DựNG MÁY TURING 66 Ghi nhớ điều khiển hữu hạn .66 Mở rộng máy Turing .67 Băng vơ hạn hai phía 67 Máy Turing có nhiều băng 67 Các máy Turing có nhớ truy cập trực tiếp .68 III III.1 III.2 III.3 IV IV.1 IV.2 V V.1 V.2 V.3 MÁY TURING KHÔNG ĐƠN ĐịNH 69 Khái niệm .69 Khử bỏ tính khơng đơn định .69 Các máy Turing vạn 70 MÁY TURING VÀ VĂN PHạM NGữ CảNH 70 Định nghĩa 70 Sự tương đương văn phạm ngữ cảnh máy Turing 71 ƠTƠMAT TUYếN TÍNH GIớI NộI VÀ VĂN PHạM CảM NGữ CảNH 73 Ơtơmat tuyến tính giới nội 73 Văn phạm cảm ngữ cảnh 74 Sự tương đương LBA văn phạm CNC 75 MộT Số Đề THI 77 TÀI LIệU THAM KHảO .79 CHƯƠNG Một số kiến thức Tốn học sở I Lơgich I.1 Khái niệm lơgích Lơgích sử dụng thực phép suy luận toán học (reasonin) Người ta phân biệt hai mặt lơgích : - Mặt cú pháp (syntaxe) thao tác hình thức (formal manipulation) ký hiệu - Mặt ngữ nghĩa (semantic) cho biết ý nghĩa sử dụng (meaning) đặt ký hiệu Từ người ta xây dựng mơ hình lơgích (lơgích model) dựa ngơn ngữ ký hiệu số quy tắc thao tác, hay luật Chẳng hạn mặt cú pháp, 3+4 biểu thức toán học, mặt ngữ nghĩa, phép cộng cho kết Ví dụ chương trình máy tính dãy ký hiệu, ngơn ngữ lập trình dãy quy tắc cú pháp cho phép đặt ký hiệu Một chương trình phải tuân thủ theo quy tắc cú pháp phải có nghĩa sử dụng định (ngữ nghĩa) để giải toán Cơ sở để xây dựng mơn học lơgích mệnh đề (proposition) Mệnh đề lơgích phát biểu (câu) đó, xét hồn cảnh thời gian khơng gian đó, nhận hai giá trị (true) sai (false), mà vừa vừa sai Giá trị sai gọi chân giá trị (truth value) Ví dụ I.1 : Mệnh đề lơgích Giải thích y>x+1 Tuỳ theo giá trị x y mà có giá trị sai chẳng hạn x=1 y=3 có giá trị Hôm trời mưa ! 2+3=5 Luânđô thủ nước Đức Đúng thời điểm nói trời mưa, sai khơng phải Ln ln có giá trị Ln ln có giá trị sai Hơm ngày ? Mời anh vào ! PGS TS Phan Huy Khánh biên soạn Câu hỏi mệnh đề Câu mệnh lệnh mệnh đề, v.v Ơtơmat hữu hạn Các phép tính lơgích Cho trước mệnh đề lơgích p, q, r nhận giá trị sai, ta có phép tính lơgích sau : Phép phủ định (not) hay phép đối p, ký hiệu ¬p, có giá trị sai p có giá trị Phép (and) hay nhân lơgích p q, ký hiệu p ∧ q, có giá trị p q có giá trị Phép (or) hay cộng lơgích p q, ký hiệu p ∨ q, có giá trị sai p q có giá trị sai Phép kéo theo (implication) hay phép suy ra, ký hiệu p ⇒ q, có giá trị sai p q sai, lại Phép tương đương (equivalence) p q, ký hiệu p ⇔ q, có giá trị p q sai, có giá trị sai p sai, q đúng, p đúng, q sai Biểu diễn quy ước giá trị 1, giá trị sai 0, ta có bảng chân giá trị phép tính lơgích sau : p q 0 1 1 ¬p 1 0 p∧q 0 p∨q 1 p⇒q 1 p⇔q 0 I.2 Các tính chất Cho trước mệnh đề lơgích p, q, r, ta có tính chất sau : ¬(¬ p) = p p∧1 =p p∧0 =0 p∧¬p =0 p∧q =q∧p p ∧ (q ∧ r) = (q ∧ p) ∧ r = p ∧ q ∧ r p∨1 =1 p∨0 =p p∨¬p =1 p∨q =q∨p p ∨ (q ∨ r) = (q ∨ p) ∨ r = p ∨ q ∨ r Định luật De Morgan : ¬ (p ∨ q) = ¬ p ∧ ¬ q ¬ (p ∧ q) = ¬ p ∨ ¬ q Tính chất phân phối : p ∨ (q ∧ r) = (p ∨ q) ∧ (p ∨ r) p ∧ (q ∨ r) = (p ∧ q) ∨ (p ∧ r) Chuyển đổi phép kéo theo tương đương : p ⇔ q = (p ⇒ q) ∧ (q ⇒ p) p ⇒ q = ¬ p ∨ q = (¬ q) ⇒ (¬ p) (¬ p) ⇒ = p Trong phép kéo theo p ⇒ q, ta gọi p giả thiết, q kết luận Phép q ⇒ p gọi phép đảo p ⇒ q Ta diễn tả phép kéo theo p ⇒ q cách sau : - Muốn có q, cần có p đủ, p q Ơtơmat hữu hạn - p điều kiện đủ để có q, q điều kiện cần để có p Phép tương đương p ⇔ q diễn tả sau : - Muốn có p, cần đủ phải có q, p điều kiện cần đủ để có q - p q, p q Phép suy luận phản chứng Để chứng minh mệnh đề p ⇒ q đúng, ta giả thiết p đúng, q sai, sau cần chứng minh điều dẫn đến mâu thuẫn Bởi ta chứng minh mệnh đề (p ∧ (¬ q) sai, tức mệnh đề (¬ p ∨ q) đúng, tức p ⇒ q I.3 Biểu thức lơgích Kết hợp mệnh đề lơgích phép tốn lơgích cách tuỳ ý, ta nhận biểu thức lơgích Thứ tự thực phép tính lơgích theo độ ưu tiên phép phủ định, phép và, phép hoặc, phép kéo theo cuối phép tương đương Có thể thêm cặp dấu ngoặc () vào biểu thức lơgích để thay đổi thứ tự thực phép tính để muốn dễ đọc Nếu biểu thức lơgích có chứa cặp dấu ngoặc lồng thứ tự thực từ ngoài, từ trái qua phải Để tính giá trị biểu thức, người ta thường lập bảng chân lý Ví dụ I.2 : Tính giá trị biểu thức E(p, q) = (p ∧ ¬ q) ∨ (¬ p ∧ q) : p q 0 1 1 ¬p 1 0 ¬q 1 p∧¬q 0 ¬p∧q 0 (p ∧ ¬ q) ∨ (¬ p ∧ q) 1 Kết biểu thức cột cuối cùng, chẳng hạn E(0, 0) = 0, E(0, 1) = 1, v.v Ơtơmat hữu hạn II Tập hợp II.1 Biểu diễn tập hợp Tập hợp (set) nhóm hay sưu tập đối tượng1 phân biệt, chúng gọi phần tử (elements) tập hợp Do phần tử tập hợp không xếp thứ tự nên người ta không nói đến phần tử thứ nhất, phần tử thứ hai, v.v Trong hồn cảnh xét đó, tập hợp tất phần tử có chất gọi tập hợp vũ trụ (universal set), giả sử tập hợp U Khi cho trước tập hợp Snào đo, người ta xem phần tử thuộc S thuộc U Trong giáo trình, tập hợp đặt tên chữ hoa S, A, B, , phần tử đặt tên chữ thường a, b, x, y, Các phần tử thuộc tập hợp đặt cặp dấu ngoặc { } Chẳng hạn sau tập hợp : A = { 0, 1, 2, 3, 4, 5, 6, 7, 8, } B = { ♣, ♦, ♥, ♠ } Tập hợp không chứa phần tử gọi tập hợp rỗng (empty set), ký hiệu ∅ Người ta viết A = ∅ hay A = { } Một tập hợp có phần tử x x gọi đơn tử ký hiệu { x } Người ta gọi số (cardinality) tập hợp số phần tử thuộc tập hợp đó, ký hiệu |A | card(A) Chẳng hạn tập hợp có |A| = 10, |B| = Bản số tập hợp rỗng Cho tập hợp A gồm phần tử x Ta nói phần tử x thuộc A, ký hiệu x ∈ A, phần tử x không thuộc A, ký hiệu x ∉ A, dĩ nhiên x ∈ U Khái niệm lượng tử Lượng tử phổ cập ∀ đọc «với mọi» hay «với mỗi» Lượng tử tồn ∃ đọc «tồn phần tử» Ký hiệu ∃! có nghĩa « tồn phần tử» Tên biến (đối tượng) lượng tử tác động đến lấy : ∀x, x ∈ A, P(x) ⇔ ∀y, y ∈ A, P(y) phần tử A có tính chất P ∃x, x ∈ A, P(x) ⇔ ∃y, y ∈ A, P(y) tồn phần tử A có tính chất P Phép phủ định mệnh đề lượng tử hố sau : ¬ (∀x, x ∈ A, P(x) ) ⇔ ∃x, x ∈ A, ¬ P(x) ¬ (∃x, x ∈ A, P(x) ) ⇔ ∀x, x ∈ A, ¬ P(x) Để biểu diễn tập hợp A gồm số hữu hạn phần tử, ta liệt kê hết phần tử A ví dụ Trong trường hợp A có vơ hạn phần tử, người ta khơng thể liệt kê hết phần tử A, mà dùng cách biểu diễn tính chất (property) phần tử, có dạng : A = { x | P(x) } Ví dụ II.1 : tập hợp phần tử x cho x thoả mãn tính chất P Khái niệm đối tượng có tính trực giác, nhà Tóan học Đức G Cantor đưa từ năm 1985 Lý thuyết tập hợp dẫn đến nghịch lý tóan học (paradox) hay mâu thuẫn lơgích nhà triết học người Anh B Russell năm 1902 Ví dụ Ơtơmat hữu hạn M = { i | i nguyên dương ∃j nguyên dương cho i = * j} hay viết gọn : M = { i | i ∈ N ∃j ∈ N cho i = * j } II.2 Quan hệ tập hợp Cho A, B tập hợp (có phần tử thuộc tập hợp vũ trụ U đó) Người ta xây dựng phép toán tập hợp sau : A⊆B A nằm B, hay A phận B, hay A tập hợp (subset) B, thoả mãn ∀x (x ∈ A ⇒ x ∈ B) Khi A nằm hoàn toàn B, người ta viết A ⊂ B Trường hợp ngược lại, người ta viết A ⊇ B, hay A ⊃ B A=B A B A B có phần tử : ∀x (x ∈ A ⇒ x ∈ B) ∀x (x ∈ B ⇒ x ∈ A), hay A ⊆ B B ⊆ A A≠B A khác B A B rời khơng có phần tử II.3 Các phép toán tập hợp Cho A, B tập hợp Người ta xây dựng phép toán sau : Ký hiệu Ý nghĩa A∪B hợp A B, tập hợp {x | x ∈ A ∨ x ∈B } A∩B giao A B, tập hợp {x | x ∈ A ∧ x ∈B } Nếu |A|= m, |B| = n, |A ∪ B| = m + n - | A ∩ B | phần tử A-B hay A\B, hiệu A B, tập hợp {x | x ∈ A ∧ x ∈B } A∆B hiệu đối xứng A B, tập hợp A-B ∪ B-A bù tập hợp A tập hợp {x | x ∈ U ∧ x ∉ A }, hay U - A, với U tập hợp vũ trụ A×B tích Đêcac (Cartesian product) A B, gồm cặp phần tử có thứ tự (a, b), a ∈ A b ∈ B Nếu |A|= m, |B| = n, |A × B| = m × n phần tử 2A hay ℘ (A), tập lũy thừa A, hay tập tập hợp A A Ta có |2A|= 2|A| = 2m, |A|= m Chú ý ℘(∅) = { ∅ }, ℘ ( {∅} ) = { ∅, { ∅ } } Các phép toán ∪, ∩, hiệu, hiệu đối xứng bù tập hợp minh hoạ giản đồ Venn hình A B A B A B A B A A∪B A∩B A-B A∆B A Hình II.1 Giản đồ Venn biểu diễn phép toán tập hợp Chú ý hình chữ nhật biểu diễn tập hợp vũ trụ Ví dụ II.2 : Cho A = {a, b}, B = {b, c} với U tập hợp chữ tiếng Anh a z Khi : Ơtơmat hữu hạn A ∪ B = {a, b, c} A ∩ B = {b} A - B = {a} A ∆ B = {a, c} A = { c z } A × B = {(a, b), (a, c), (b, b), (b, c)} 2A = {∅, {a}, {b}, {a, b}} Một số tính chất phép toán tập hợp Cho A, B C ba tập hợp Tính chất giao hốn (commutative) : A∪B = B∪A B = BÌA Tính chất kết hợp (associative) : (A∪B)∪C = A∪(B∪C) (B) ÌC = (BÌC) Tính chất phân phối (distributive) : A∪(B∩C) = (A∪B) ∩(A∪C) (A∩B) ∪ C = (A∪C) ∩(B∪C) A∩(B∪C) = (A∩B) ∪(A∩C) (A∪B) ∩ C = (A∩C) ∪(B∩C) Luật DeMorgan : A ∪ B=B ∩ A A ∩ B=B ∪ A II.4 Ánh xạ Cho A, B hai tập hợp tích Đêcac A × B Xét f tập hợp con, f ≠ ∅, tích Đêcac A × B, f gọi ánh xạ (mapping), hay gọi đồ thị hàm, từ A vào B sau : f: A→B Ta viết : y = f (x), y ∈ B, x ∈ A, y ảnh x Từ ánh xạ f, ta xây dựng quan hệ R(x, y) phần tử x∈A y∈B, cho : R (x, y) = { (x, y) | x ∈ A ⇒ ∃! y ∈ B, y = f (x) } Anh xạ f gọi : • Tồn ánh, hay ánh xạ lên (surjection), f (x) = y tức : ∀y ∈ B ⇒ ∃x ∈ A cho y = f (x) • Đơn ánh hay phép nhúng (injection), f (x) = f (x’) ⇒ x = x’ • Song ánh hay xánh xạ - 1, phép đặt lên (bijection) f vừa tồn ánh, vừa đơn ánh II.5 Tính đếm tập hợp vô hạn Cho A tập hợp Nếu A có hữu hạn phần tử A gọi đếm hay liệt kê (enumerable) Cho A, B hai tập hợp đếm Ta nói A B có số ∃ song ánh chúng : card(A) = card(B) Nếu A tập hợp thực B ta có card(A) < card(B) ≤ K < ∞, với K số Ơtơmat hữu hạn Trong trường hợp A có vơ hạn phần tử xảy A đếm không đếm Để chứng minh tập hợp cho vô hạn đếm được, cần xây dựng song ánh A tập hợp số tự nhiên N Ví du : Cho A = {i ∈ N | i chẵn}, B = N Khi đó, card(A) = card(B) tồn ánh xa 11 A B Trong trường hợp này, để xác định xem hai tập hợp có kích thước (có số phần tử), người ta đặt tương ứng cặp phần tử hai tập hợp Nói cách khác, tồn song ánh hai tập hợp (hay ánh xạ 1.1) Ví dụ 1.7 : Các tập hợp { 0, 1, 2, }, { a, b, c, d } { α, β, γ, δ } có kích thước Chẳng hạn đặt tương ứng cặp phần tử sau : { (0, α), (1, β), (2, γ), (3, δ) } Một tập hợp vô hạn liệt kê đếm tồn song ánh tập hợp tập hợp số tự nhiên Bản số tập hợp đếm thường ký hiệu ℵ (ℵ chữ đầu bảng chữ Do thái, đọc aleph) Ví dụ 1.8 : Tập hợp số chẵn đếm nhờ có song ánh : { (0, 0), (2, 1), (4, 2), (6, 3), } suy tập hợp vô hạn số tự nhiên đếm Các số hữu tỉ đếm Thực vậy, số hữu tỉ viết dạng a b với b≠0 a b khơng có ước số chung Ta phân loại số theo thứ tự tổng a+b tăng dần Ta có song ánh : 1 { ( , 0), ( , 1), ( , 2), ( , 3), ( , 4), ( , 5), } 1 Tập hợp câu bảng chữ { a, b } đếm Để nhận phép song ánh, người ta phân loại câu theo thứ tự tăng dần độ dài Với câu có độ dài, người ta săp xếp chúng theo thứ tự từ vựng (theo thứ tự từ điển) Ta có song ánh : { (ε, o), (a, 1), (b, 2), (aa, 3), (ab, 4), (ba, 5), (bb, 6), } Các biểu thức qui đếm Thật vậy, chúng xâu ký tự bảng chữ hữu hạn Theo ví dụ trên, tập hợp câu bảng chữ đếm Các biểu thức qui tập hợp vô hạn xâu ký tự chúng đếm theo lý luận Từ ví dụ ta tự đặt câu hỏi : có phải tập hợp vơ hạn có số ℵo ? Khơng phải có tập hợp vơ hạn có số lớn ℵo, chẳng hạn tập hợp tất tập hợp tập hợp đếm Ta có định lý sau : Định lý 1.2 : Tập hợp tất tập hợp tập hợp đếm cho trướ c không đếm Chứng minh : Ta sử dụng kỹ thuật chéo hóa (Diagonalisation) sau : Giả sử cho A tập hợp đếm : A = { a0, a1, a2, } Gọi S tập hợp tất tập hợp A Giả sử S đếm đó, S = { s0, s1, s2, } Các máy Turing 65 I.5 Các định nghĩa khác máy Turing Người ta nghĩ nhiều kiểu máy Turing khác Chẳng hạn, có hai kiểu máy tương đối phổ biến cho phép xây dựng lớp ngôn ngữ thừa nhận xác định I.5.1 Máy Turing loại Trong số trạng thái máy, có trạng thái thừa nhận, gọi trạng thái dừng (halt state) Mặt khác, hàm dịch chuyễn định nghĩa thời điểm Tại trạng thái dừng, máy thừa nhận không thừa nhận câu vào tùy theo đầu băng có chứa dấu hiệu "thừa nhận" (1) hay dấu hiệu "không thừa nhận" (0) Máy thừa nhận ngôn ngữ với câu ngơn ngữ cho, việc đốn nhận đạt trạng thái dừng, băng chứa số Với câu không thuộc ngơn ngữ, việc đ ốn nhận khơng dừng (vô hạn) đạt trạng thái dừng băng chứa số Máy xác định ngôn ngữ máy luôn đạt trạng thái dừng, băng chưá số cho câu thuộc ngôn ngữ, băng chưá số với câu không thuộc ngôn ngữ I.5.2 Máy Turing loại Trong số trạng thái máy, người ta phân biệt hai trạng thái dừng QY QN Hàm chuyển tiếp định nghĩa thời điểm Máy thừa nhận ngôn ngữ, với câu ngơn ngữ việc đốn nhận máy đạt trạng thái dừng QY Với câu khơng thuộc ngơn ngữ, việc đốn nhận không dừng (vô hạn) đạt trạng thái dừng QN cho câu không thuộc ngôn ngữ I.6 Các ngôn ngữ đệ quy liệt kê đệ quy Các ngôn ngữ xác định máy Turing gọi đệ quy (recusive) Các ngôn ngữ thừa nhận máy Turing gọi liệt kê đệ quy (recursively enumerable) Từ ta có định nghĩa sau : Định nghĩa : Một ngơn ngữ đệ quy xác định máy Turing Định nghĩa : Một ngôn ngữ liệt kê đệ quy n ếu thừa nhận máy Turing I.7 Luận đề Turing-Church Luận đề Turing-Church phát biểu sau : Các ngôn ngữ nhận biết thủ tục hiệu ngôn ngữ xác định máy Turing Alonzo Church calculus ) : nhà Toán học người Mỹ nghiên cứu quan điểm tính tính (computability) từ việc tính hàm (functional Các máy Turing 66 Thường người ta phát biểu luận đề Turing - Chunch theo nghĩa phép tính hàm : Các hàm tính thủ tục hiệu hàm tính đợc máy Turing Luận đề Turing-Church đóng vai trò quan trọng việc nghiên cứu lý thuyết tính tốn (computability) Thật vậy, luận đề đưa lý lẽ để chứng minh số ngôn ngữ khơng thể đốn nhận thủ tục hiệu : thực chất hình thức hóa khái niệm tính tốn Luận đề Turing-Church khơng phải định lý, nên khơng thể chứng minh Bởi Luận đề Turing-Church áp dụng mơ hình lý thuyết máy Turing định nghĩa chặt chẽ để mơ hình hoá quan niệm v ề thủ tục hiệu khái niệm không xác định rõ ràng Ta thấy thuật giải xác định máy Turing không xác định thủ tục hiệu Thật vậy, dễ dàng mô tự hoạt động máy Turing nhờ bút chì tờ giấ y hay đại hơn, nhờ chương trình chạy máy tính cụ th ể Vả lại, khó phán định luận đề cho ngôn ngữ xác định thủ tục hiệu laị xác định máy Turing Để làm đ iều đó, lý luận áp dụng tất mơ hình hóa khái niệm thủ tục hiệu đồng với khái niệm ngôn ngữ xác định máy Turing Luận đề Turing-church phán định sau: Sự mở rộng máy Turing xây dựng kiểu máy Turing khác (nhất máy có nhớ truy cập trực tiếp) xác định ngôn ngữ nhờ máy Turing đ ã xác định Một mơ hình hóa khác với khái niệm thủ tục hiệu (các hàm đệ quy chẳng hạn) đồng với mơ hình máy Turing II Các kỹ thuật xây dựng máy Turing II.1 Ghi nhớ điều khiển hữu hạn Có thể ghi nhớ số hữu hạn thông tin nhờ trạng thái b ộ điều khiển : xem trạng thái cặp phần tử Phần tử đầu tham gia điều khiển, phần tử thứ hai thông tin cần nhớ Mặc dầu làm số trạng thái tăng lên, hữu hạn Có thể xem trạng thái gồm n phần tử, n-1 phần tử để ghi nhớ thơng tin Ví dụ 5.3 : Xây dựng máy Turing cho sau đọc ký tự ghi nhớ sau kiểm tra ký hiệu khơng xuất nơi khác băng M = ({ 0, }, Q, { 0, 1, B }, d, [q0, B], B, A) Q = { q0, q1 } × { 0, 1, B } A = { [q1, B] } Hàm d cho sau : Từ trạng thái đầu [q0, B], M ghi nhớ ký hiệu đ ã đọc vào thành phần thứ hai trạng thái d ([q0, B], 0) = ([q1, 0], 0, R) d ([q0, B], 1) = ([q1, 1], 1, R) Nếu ký hiệu đọc không giống với ký hiệu ghi nhớ vượt qua bên phải 67 Các máy Turing d ([q1, 0], 1) = ([q1, 0], 1, R) d ([q1, 1], 0) = ([q1, 1], 0, R) M rơi vào trạng thái cuối [q1, B] gặp B d ([q1, 0], B) = ([q1, B], 0, L) d ([q1, 1], B) = ([q1, B], 1, L) Vậy M đọc hết câu vào thừa nhận Nếu gặp phải ký hiệu ghi nhớ bị hóc ( ([q1, 0], 0) ( ([q1, 1], 1) không xác định Ta có : L(M) = { 01n 10n } II.2 Mở rộng máy Turing Mục trình bày hai mở rộng máy Turing chứng minh ngôn ngữ thừa nhận hay xác định máy mở rộng thừa nhận hay xác định máy Turing II.2.1 Băng vơ hạn hai phía Xét máy Turing có băng vơ hạn hai phía : a-3 a-2 a-1 a0 a1 a2 a3 Cách định nghĩa máy Turing có băng hồn tồn giống với máy Turing xét, trừ ngoại lệ đầu đọc di chuyển tùy ý phía trái Ta cần chứng minh ngơn ngữ thừa nhận xác định kiểu máy Turing mở rộng ngôn ngữ thừa nhận xác định b ởi máy Turing có băng vơ hạn phía Ý tưởng để chứng minh chuyển băng vô hạn hai phía thành băng vơ hạn phía cách gập đơi băng lại Kết băng mà ô chứa mà hai ký hiệu a0 a1 a2 a3 $ a-1 a-2 a-3 Mặc khác, cần chứng tỏ cặp ký tự xét ký tự bảng chữ lớn cho hàm chuyển tiếp máy Turing thỏa mãn điều kiện có phía băng vơ hạn II.2.2 Máy Turing có nhiều băng Xét máy Turing có nhiều băng lúc có nhiều đầu đọc Loại máy s ẽ có hình trạng đặc trưng trạng thái, nội dung băng đầu đọc Ta mô tả loại máy Turing lần máy Turing có băng mà 68 Các máy Turing Nguyên lý việc mô sử dụng ký tự tổ hợp mô tả nội dung băng khác vị trí đầu đọc Chẳng hạn, để mơ máy có hai băng, ta sử dụng máy mà bảng chữ băng b ốn sử dụng để biểu diễn nội dung băng, hai phần tử lại để biểu diễn vị trí tương ứng đầu đọc (chẳng hạn giá trị vị trí đầu đọc chỗ khác) Để mô giai đoạn thực máy hai băng, máy b ăng phải : • Tìm thấy vị trí đầu đọc xác định ký tự đ ã đọc • Thay đổi ký tự này, di chuyển đầu đọc thay đổi trạng thái Việc xây dựng xác máy Turing phức tạp, vấn đề thuyết phục tính khả thi phương pháp II.2.3 Các máy Turing có nhớ truy cập trực tiếp Ta xem xét máy giống hệt máy tính thực kiểu máy mơ máy Turing Giả sử mơ có nhớ truy cập trực tiếp (RAM: random access memory) số ghi, có đếm chương trình (PC: program counter) Máy mơ máy Turing có nhiều băng Một băng dùng cho b ộ nhớ băng khác dùng cho ghi RAM R1 Ri PC Nội dung b ộ nhớ biểu diễn cặp câu (địa chỉ, nội dung) Các phần tử cặp vậ y ngăn cách dấu * cặp liên tiếp đặt cách ký tự # # * # v0 # * v1 # # # a d d i * vi Máy Turing mơ máy có nhớ RAM cách lặp chu k ỳ sau : Chạy băng biểu diễn nhớ RAM tìm thấy địa tương ứng với nội dung đếm chương trình PC Đọc giải mã lệnh (decoding) địa Đôi tìm thấy tốn hạng lệnh Thực lệnh Có thể việc thực làm thay đổi nhớ và/hoặc ghi Tăng đếm chương trình (trừ trường hợp lệnh lệnh rẽ nhánh) chuyển qua chu kỳ Các máy Turing 69 Việc xây dựng đầy đủ chi tiết nặng nề Vấn đề quan trọng dẫn tới mục đích mong muốn III Máy Turing không đơn định III.1 Khái niệm Các máy Turing đ ã xét đơn định theo nghĩa : xuất phát từ hình trạng cho, có nhiều hình trạng chuyển tới giai đoạn Vấn đề xem xét ngôn ngữ thừa nhận máy Turing thay đổi ta loại b ỏ điều kiện vừa nói Định nghĩa 5.8 : Một máy Turing không đơn định đồng với máy Turing đơn định trừ cách xây dựng hàm chuyển tiếp cho theo quan hệ sau : D : (Q × G) × (Q × G × { L, R }) Nghĩa với trạng thái hình trạng cho (định nghĩa khơng ba (Q × G × { L, R }), mà tới tập hợp ba Dễ thay tiến hành, máy chọn ba Một cách hình thức, hình trạng chuyển đổi từ hình trạng khác trạng thái ba (q’, x, X) cho : ((q, a), (q’, x, X)) ∈ D Các khái niệm khác định nghĩa tương tự máy Turing đơn định Tuy nhiên, mộ t máy Turing không đơn định đốn nhận cần đốn nhận có chứa hình trạng mà trạng thái cuối đạt để máy thừa nhận III.2 Khử bỏ tính khơng đơn định Kết thật đáng ngạc nhiên tính khơng đơn định khơng làm cho máy Turing mạnh lên Ta có định lý sau : Định lý : Mọi ngôn ngữ thừa nhận máy Turing không đơn định thừa nhận máy Turing đơn định Chứng minh : Định lý xét cho ngơn ngữ thừa nhận quan niệm ngôn ngữ xác định nghĩa cho máy khơng đơn định Việc chứng minh định lý dựa ý tưởng đơn giản sau : cần máy Turing đơn định mô tất đốn nhận máy Turing khơng đơn định Ở tất đốn nhận khơng thể mô đồng thời (điều xét với ôtômát hữu hạn việc chứng minh định lý 1) Thật vậy, để mơ đốn nhận, ta cần xét băng vào Nhở băng khó sử dụng nhiều đốn nhận lúc Lời giải chấp nhận nên mô đốn nhận Sẽ có số đốn nhận vô hạn Nếu không may mắn vậy, ta s ẽ b đầu mơ đốn nhận vơ hạn, lúc khơng đoán nhận khác lại đoán nhận thừa nhận câu vào Việc mô tất đ oán nhận cần tiền tố có độ dài tăng dần Trước hết, ta mơ đốn nhận có độ dài tiền tố 1, độ dài tiền tố 2, 3, Khi Các máy Turing 70 đoán nhận đạt đến trạng thái cuối (thừa nhận), câu vào thừa nhận Ta hình thức hóa ý sau : Từ máy Turing khơng đơn định cho, có số tối đa (maximum) chọn lựa lấy từ quan hệ chuyển tiếp D Số : r = max q∈ Q, a∈ D | { ((q, a), (q’, x, X)) ∈ D } | Giả sử với cặp (q, a), ta định số lựa chọn cho phép quan hệ chuyển tiếp từ đến r (đến số nhỏ r có r lựa chọn) Lúc này, để mô tả lựa chọn thực tiền tố đốn nhận có độ dài m, cần đưa dãy gồm m số nhỏ r (n ếu việc lựa chọn đ ã không tương ứng với chuyển tiếp hữu, việc đoán nhận dừng lại mà khơng thừa nhận) Như vậy, ta xây dựng máy Turing đơn định có ba băng để mô máy Turing không đơn định sau : Băng thứ chứa câu vào không bị thay đổi (cho phép tìm lại câu vào bắt đầu đ oán nhận) Băng thứ hai dùng để chứa dãy số nhỏ r Băng thứ ba dùng cho máy đơn định để mô chức máy không đơn định Máy đơn định hình thành sau : Trên băng thứ hai, máy sản sinh tất dãy hữu hạn số nhỏ r Các dãy sinh thứ tự tăng dần độ dài Với dãy, máy mô máy không đơn định cách sử dụng lựa chọn biểu diễn dãy số Máy dừng thừa nhận mơ đốn nhận máy không đơn định đạt đến trạng thái thừa nhận III.3 Các máy Turing vạn Một vấn đề thú vị liệu có máy Turing mơ máy Turing ? Một cách tường minh, ta muốn cung cấp cho máy Turing M mô tả máy Turing M’ cho với câu vào w đó, máy Turing M’ mơ đốn nhận M w Một máy Turing s ẽ nhại lại máy Turing khác, gọi máy Turing vạn (Universal Turing Machine) IV Máy Turing văn phạm ngữ cảnh IV.1 Định nghĩa Văn phạm ngữ cảnh, hay gọi văn phạm ngữ cấu (văn phạm loại 0) G = (S, D, P, S), : − D tập hữu hạn biến hay ký hiệu khơng kết thúc, ký hiệu N (Non-terminal symbols) − S tập hữu hạn ký hiệu cuối, D ∩ S = ∅ Các máy Turing 71 − S ∈ D ký hiệu đầu − P tập hợp sản xuất có dạng a → b, với a, b ∈ (D ∪ S)* a ≠ e a chứa biến, ngồi khơng có hạn chế Từ P xây dựng hệ thống viết lại (rewriting) phép suy dần dạng câu theo * xét quan hệ ⇒ ⇒ Ngôn ngữ sản sinh văn phòng ngữ cảnh G : * w} L (G) = { w | w ∈ S* S ⇒ Ví dụ 5.4 : Cho văn phạm ngữ cảnh sản sinh ngôn ngữ L = {ai | i lũy thừa dương 2} sau : S → ACaB aD → Da Ca → aaC AD → AC CB → DB aE → Ea CB → E AE →e Trong văn phạm này, A B có vai trò đ ánh dấu mút trái mút phải dạng câu Biến C di chuyển từ trái qua phải vượt qua ký tự a nằm A & B, gấp đơi số a lên theo sản xuất Khi C gặp nút phải B, biến C trở thành D theo sản xuất 3, hay C thành E, theo sản xuất Nếu D chọn, D lộn trái 5, đến gặp A lại trở thành C, theo sản xuất Từ lại tiếp tục chu trình C Còn E chọn sản xuất 4, biến B biến mất, tiếp đó, E lộn qua trái theo sản xuất 7, gặp mút trái A xóa A biến theo Như lại câu gồm i ký tự a, i > Có thể chứng minh quy nạp theo số bước suy dẫn sản xuất chưa dùng đến dạng câu suy dẫn dạng sau : 1.S A aiCajB, i + 2j lũy thừa dương 3.A aiDajB, i + j lũ y thừa dương Khi áp dụng sản xuất có dạng câu AaiE, i lũy thừa dương Tiếp áp dụng i lần sản xuất để tới dạng câu Aeai Cuối cùng, với sản xuất ta có dạng câu với i lũy thừa dương IV.2 Sự tương đương văn phạm ngữ cảnh máy Turing Định lý Nếu L = L(G), G = (S, D, P, S) văn phạm ngữ cảnh, L = L(M) với M máy Turing Chứng minh : Xây dựng máy Turing M không đơn định hai băng thừa nhận L, Băng M chứa câu vào w Trên băng 2, M sản sinh dạng câu a G Lúc đầu a S Sau M lặp lại q trình sau : 72 Các máy Turing Chọn cách không đơn định vị trí i a (1 ≤ i ≤ | a |) Nghĩa bên trái a , chọn hai khả : chọn i vị trí hành, tiến qua phải lặp lại trình Chọn cách không đơn định sản xuất b → g G Nếu b xuất a kể từ vị trí i, thay b g Nếu | b | ≠ | g | phải chuyển dời phần cuối a để đủ chỗ cho thay So sánh dạng câu thu băng với w băng Nếu giống thừa nhận w, khơng quay lên bước Có thể chứng minh tất câu G xuất băng bước Vậy : L (M) = L (G) = L (qed) Định lý 5.3 : Nếu L = L (M) với máy Turing L = L(G) với văn phạm ngữ cảnh G Chứng minh : Giả sử L thừa nhận M = (S, Q, T, G, d, q0, B, A) Lập văn phạm ngữ cảnh G mà trình suy dẫn M (một cách phi hình thức) diễn qua giai đoạn sau : G sản sinh cách ngẫu nhiên (không đơn định) câu w ∈ S*, sau w thành bản, giữ nguyên cuối, b ản biến đổi theo cách làm việc M G mơ q trình làm việc M câu w, cách diễn lại trình làm việc hệ viết lại ngầm định M Chỉ sau giai đoạn kết thúc với xuất trạng thái q ∈ A M (tức câu w đ ã M thừa nhận), lúc G bắt đầu “thu dọn” để chuyển dạng câu có trở câu w, w sản sinh Một cách hình thức, G = (S, D, P, S1), : D = ((S ∪ { e }) × G) ∪ { S1, S2, # } Các sản xuất P sau : 1.1 S1 → #q0 S2# 1.2 S2 → [a, a]S2 với ∀ a ∈ S 1.3 S2 → e Nếu d(q, x) = (p, Y, R) với p, q ∈ Q X, Y ∈ G thêm sản xuất sau vào P : 2.1 q[a, X][b, Z] → [a, Y]p[b, Z] với ∀ a, b ∈ S ∪ { e } ∀ Z ∈ G q[a, X]# → [a, Y]p[e, B]# với ∀ a ∈ S ∪ { e } Nếu d(q, X) = (p, Y, L) với p, q∈Q X, Y ∈ G, thêm sản xuất sau vào P : 2.3 [b, Z]q[a, X] → q[b, Z][a, Y] với ∀ a, b ∈ S ∪ { e } ∀ Z ∈ G Nếu q ∈ A với ∀ a∈S ∪ { e } ∀ X ∈ G, thêm sản xuất sau vào P : 3.1 [a, X]q → qaq 3.2 q[a, X] → qaq 3.3 q# → e #q → e Các máy Turing 73 q→e Ap dụng sản xuất 1.1, 1.2 1.3, ta có : S1 ⇒* #q0[a1, a1][a2, a2 ] [an, an]# G dạng câu đại diện cho hình trạng đầu M #q0a1a2 an# Từ đó, áp dụng sản xuất 2.1, 2.2 2.3 nhại lại chuyển tiếp M Sự suy dẫn G tức trình làm việc củ a M Nếu M dẫn đến trạng thái cuối q ∈ A, tương ứng với câu a1 a2 an thừa nhận, sản xuất từ 3.1 đến 3.5 áp dụng để nhận câu a1a2 an Vậy : S1 ⇒* a1a2 an G Cuối cần chứng minh L (M) ⊆ L(G) L(G) ⊆ L(M) Từ dẫn đến L(M) = L(G) (qed) V Ơtơmat tuyến tính giới nội văn phạm cảm ngữ cảnh Ta xét loại ôtômat không mạnh b ằng máy Turing văn phạm tương ứng với V.1 Ơtơmat tuyến tính giới nội Ơtơmat tuyến tính giới nội (LBA - Linear Bounded Automation) máy Turing không đơn định khơng có khả nới rộng vùng làm việc khỏi mút trái mút phải câu vào LBA không dùng tới ký tự trắng băng hai phía, phía trái phía phải, câu vào, LBA khơng cần dùng ký hiệu B Để nhận biết giới hạn trái phải câu vào, LBA có hai ký hiệu đặc biệt #L #R để đánh dấu hai nút L R Lúc bắt đầu, băng có dạng #Lw#R, w ∈ (S ∪ {#L, #R})* câu cần đoán nhận Khi hoạt động, đầu đọc LBA tới ô chứa ký tự #L hay #R bước đổi trạng thái, chuyển đầu đọc trở vào phía (đầu đọc qua phải gặp #L, qua trái gặp #R), mà không làm thay đổi ô #L #R Một cách hình thức, LBA : M = (S, Q, G, d, q0, #L, #R, A) Q, S, G, d, q0, A, giống máy Turing, #L, #R thêm vào Hàm d : d : Q × G → ℘(Q × G × {L, R}) thỏa mãn đ iều kiện : Nếu (p, Y, E) ∈ d (q, #L) Y = #L E = R Nếu (p, Y, E) ∈ d(q, #R) Y = #R E = L p, q ∈ Q 74 Các máy Turing Hệ viết lại, hay văn phạm, ngầm định LBA có chữ V = Q ∪ G ∪ {#L, #R} tập P sản xuất có dạng : ∀ p, q ∈ Q, X, Y ∈ G - {#L, # R} ∀ Z ∈ G : qX → Yp tương ứng với (p, Y, R) ∈ d(q , X) ZqX → pZY tương ứng với (p, Y, L) ∈ d(q, X) q#L → #Lp tương ứng với (p, #L, R) ∈ d(q , #L) Zq#R → pZ#R tương ứng với (p, #R, L) ∈ d(q , #R) * , ta định nghĩa ngôn ngữ thừa nhận LBA M : Với quan hệ suy dẫn ⇒ ⇒ L(M) = {w | w ∈ (S- {#L, #R})* *g pg với p ∈ A g , g ∈ G* } #Lq0w#R ⇒ 2 Chú ý : Theo dạng sản xuất từ đến sản xuất a → b hệ viết lại ngầm định LBA ln ln có |a | = |b| Trái lại, máy Turing có sản xuất dạng qX# → YpB# (nới rộng vùng làm việc qua phải) không thỏa mãn yêu cầu V.2 Văn phạm cảm ngữ cảnh Một văn phạm cảm ngữ cảnh (CNC) hệ thống G = (S, D, P, S), : S tập hợp hữu hạn ký tự cuối (kết thúc) D tập hữu hạn biến (không kết thúc) • S ký hiệu đầu P tập hợp hữu hạn sản xuất dạng a → b a, b ∈ (D ∪ S)*, a chứa biến |a | ≤ |b| * , ta định nghĩa ngôn ngữ G sinh : Với quan hệ suy dẫn ⇒ ⇒ * w} L(G) = { w | w ∈ S* S ⇒ L(G) gọi ngôn ngữ cảm ngữ cảnh (văn phạm loại 1) Thuật ngữ cảm ngữ cảnh bắt nguồn từ dạng chuẩn sản xuất văn phạm tương ứng : a1 Aa2 → a1ba2 với b ≠ e, cho thấy biến A thay dạng câu b ngữ cảnh a1 a2 Trái lại, văn phạm phi ngữ cảnh, sản xuất có dạng : A → b, với (|b| ≤ 0) biến A thay không cần ngữ cảnh (thay A b nơi dạng câu có xuất A) Ví dụ 5.5 : Xét văn phạm CNC G = ({a, b, c}, {S, B, C}, P, S), P gồm : S S CB aB → aSBC → aBC → BC → ab Dễ thấ y L(G) = { anbncn | n ≥ } bB bC cC → bb → bb → cc 75 Các máy Turing n an(BC) * anBnCn Các sản xuất biến Với sản xuất 3, B chạy lên trước C : an(BC) ⇒ B thành b, cuối cùng, sản xuất biến C thành c * Thật vậy, với sản xuất ta có S ⇒ Tóm lại : *an(BC)n ⇒ * S⇒ * anBnCn ⇒ * anb nCn ⇒ anbncn V.3 Sự tương đương LBA văn phạm CNC Chú ý LBA thừa nhận câu rỗng e, văn phạm CNC khơng thể sinh câu rỗng e Như vậy, trừ trường hợp e, ta thấy LBA thừa nhận ngôn ngữ CNC Định lý : Nếu L ngơn ngữ CNC, L thừa nhận LBA đó, L = L (M) Chứng minh : Cách chứng minh tương tự cách chứng minh định lý 5.3, khác M không cần băng thứ hai để sản sinh dạng câu, bắt chước suy dẫn văn phạm, mà cần dùng băng thứ hai Cho G = (S, D, P, S) văn phạm CNC Ta xây dựng máy Turing M gồm băng sau : - Băng chứa câu vào w với dấu mút trái #L mút phải #R hai đầu băng - Băng để sản sinh dạng câu a Bắt đầu, w = e M ngừng khơng thừa nhận w Nếu không, viết S băng 2, ký hiệu trái a Máy Turing M thực sau : Chọn cách không đơn định câu b a băng cho a → b sản xuất P Thay b g sau chuyển tiếp phần a cho đủ chỗ Tuy nhiên, chuyển tiếp vượt qúa #R ngừng khơng thừa nhận Khi tớ i bước b ăng #Lw#R, băng a, mà : * a |a| ≤ |w| S⇒ G So sánh băng băng Nếu a = w : ngừng thừa nhận w Nếu không, quay lại bước * w Như vậy, M thừa nhận w S ⇒ G * w dạng câu a xuất suy dẫn thỏa mãn điều Ngược lại, S ⇒ G kiện |a| ≤ |w| Bởi sản xuất b → g G có |b | ≤ |g| Như vậy, M thực suy dẫn băng 2, hai mút #L #R, thừa nhận câu vào w, hay câu sinh văn phạm G (∀ w ∈ L(G)) qed Định lý 5 : Nếu L = L (M) với M LBA L − {e } ngôn ngữ CNC Chứng minh : Tương tự cách chứng minh định lý 5.4 Ta xây dựng văn phạm G làm việc qua giai đoạn Giả sử T = (S, Q, G, d, q0, # L, #R, A) ta có : 76 Các máy Turing Giai đoạn Văn phạm sinh w câu vào M gồm hai với #L, #R q0 Giai đoạn Văn phạm lặp lại thao tác hệ viết lại ngầm định M Giai đoạn Khi xuất q ∈ A, thu w Lưu ý hệ viết lại T, sản xuất a → b có |a| ≤ |b|, nên việc mơ lại chúng Để xóa ký hiệu #L, #R q giai đoạn mà không làm co ngắn câu, ta gắn chúng kề bên ký tự w mà không đứng rời trướ c Cụ thể, từ giai đoạn có sản xuất : S1 → [a, #Lq0a]S2, S1 → [a, #Lq0 a#R] S2 → [a, a]S2, S2 → [a, a#R] với ∀ a ∈ S - {#L, #R} Các sản xuất G giai đoạn bắt chước y hệt hệ viết lại ngầm định M Cuối cùng, giai đoạn 3, sản xuất sau sử dụng : [a, a]b → ab, b[a, a] → ba với q ∈ A, ∀ a ∈ S - {#L, #R} ∀ a, b Vậy, văn phạm xác định văn phạm CNC Bài tập chương Xây dựng máy Turing thừa nhận ngôn ngữ sau : a) { 0n1n0n | n ≥ } b) { wwR | w ∈ (0+1)* } c) Tập câu thuộc { 0, }* có số số b ằng số số Xây dựng máy Turing tính hàm sau : a) n2 b) n! Xây dựng văn phạm ngữ cảnh cho ngôn ngữ sau đ ây : a) { ww | w ∈ (0+1)* } b) { 0k | k = i2, i ≥ } PHỤ LỤC Một số đề thi Đề số Câu : Cho ơtơmat M hình vẽ : a a b Xây dựng biểu thức quy r cho L(r) = L(M) Xây dựng văn phạm quy G cho L(G) = L(M) Xây dựng ôtômat M’ đơn định tương đương với M, nghĩa L(M’) = L(M) Xây dựng ôtômat M’ thừa nhận ngôn ngữ bù L(M), nghĩa L(M’) = S* - L(M) R Xây dựng ôtômat M” cho L(M”) = (L(M)) nghĩa L(M”) ngôn ngữ nghịch đảo L(M) Câu : Cho văn phạm G gồm sản xuất S → aSb | aSbT | e T → Tc | c Vẽ suy dẫn cho câu w ∈ L(G) b ất kỳ cho |w| ≥ Đề số Câu : Cho biểu thức quy : r = (b ∪ b*a)ba*b Xây dựng ôtômat M cho L(M) = L(r) Xây dựng văn phạm quy G cho L(G) = L(M) Xây dựng ôtômat M’ đơn định tương đương với M, nghĩa L(M’) = L(M) Xây dựng ôtômat M’ thừa nhận ngôn ngữ bù L(M), nghĩa L(M’) = S* - L(M) Xây dựng ôtômat M” thừa nhận ngôn ngữ nghịch đảo L(M), R nghĩa L(M”) = (L(M)) Câu : Cho văn phạm G gồm sản xuất : S → S+T | T T → T*E | E E → (S) | c Vẽ suy dẫn cho câu w ∈ L(G) b ất kỳ cho |w| ≥ 0, Đề số Câu : Cho ơtơmat M hình vẽ : 77 1 78 Xây dựng biểu thức quy r cho L(r) = L(M) Xây dựng văn phạm G cho L(G) = L(M) Xây dựng ôtômat M’ đơn định tương đương với M, nghĩa L(M’) = L(M) R Xây dựng ôtômat M” cho L(M”) = (L(M)) nghĩa L(M”) ngôn ngữ nghịch đảo L(M) Câu : Cho văn phạm G gồm sản xuất S → aSb | aSbT | e T → Tc | c Vẽ suy dẫn cho câu w ∈ L(G) bất k ỳ cho |w| ≥ Đề số Câu : Cho biểu thức quy : r = baa*(ba ∪ ab*) Xây dựng ôtômat M cho L(M) = L(r) Xây dựng văn phạm quy G cho L(G) = L(M) Xây dựng ôtômat M’ thừa nhận ngôn ngữ bù L(M), nghĩa L(M’) = S* - L(M) Xây dựng ôtômat M” thừa nhận ngôn ngữ nghịch đảo L(M), R nghĩa L(M”) = (L(M)) Câu : Cho văn phạm G gồm sản xuất : S → S+T | T T → T*E | E E → (S) | c Đề số Câu : Cho ơtơmat M hình vẽ : a e b a Xây dựng biểu thức quy r cho L(r) = L(M) Xây dựng ôtômat M’ đơn định tương đương với M, nghĩa L(M’) = L(M) Xây dựng ôtômat M” thừa nhận ngôn ngữ nghịch đảo L(M), R nghĩa L(M”) = (L(M)) Xây dựng văn phạm G cho L(G) = L(M) 79 Tài liệu tham khảo [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] A.V.Aho, J.D.Ulman, The Theory of Parsing, Translation and Compiling, Vol : Parsing, Pretice Hall, 1972 J.-M.Autebert Calculabilité et décidabilité Masson Paris, 1992 J.-M.Autebert Théorie des langages et des automats Masson Paris, 1994 Nguyễn Văn Ba Ngơn ngữ hình thức Khoa Công nghệ Thông tin, trường Đại học Bách khoa Hà nội, 1993 Pierre BERLIOUX & M LEVY Théorie des langages Notes de cours, ENSIMAG 1991 PierreBERLIOUX Calculabilité Notes de cours, ENSIMAG 1991 SM.D.Davis, E.J.Weyuker, Computability, Complexity and languages, Academic Press, 1983 J.E.Hopcroft, J.D.Ulman, Formal Languages and Their Relation to Automata Addison Wesley, 1969 J.E.Hopcroft, J.D.Ulman, Introduction to Automata Theory, Languages and Computation, Addison - Wesley, 1979 C.PAYAN, J.SIFAKIS Conception des systèmes logiques Notes de cours, ENSIMAG 1974 A.SALOMAA Nhập mơn Tin học lý thuyết tính tốn Ơtơmat Nguyễn Xuân My Phạm Trà Ân dịch Nhà Xuất Khoa học Kỹ thuật, Hà nội 1992 Nguyễn Thanh Tùng Lý thuyết ngơn ngữ hình thức ơtơmat Khoa Công nghệ Thông tin, trường Đại học Kỹ thuật − Đại học Quốc gia, thành phố HCM, 1993 H.S.Wilf, Algorithmes et complexité Pretice Hall, 1989 P.WOLPER Introduction la calculabilité InterEditions, Paris 1991 ... với ngôn ngữ { ε } ngôn ngữ chứa câu rỗng Tập hợp câu chương trình viết ngơn ngữ Pascal (hay ngơn ngữ lập trình đó) chạy thơng suốt ngôn ngữ Ta đưa vào quy cách mô tả số ngôn ngữ (hay ngôn ngữ. .. (hay ngôn ngữ đó) mà khơng phải mơ tả cho ngôn ngữ Làm để mô tả ngôn ngữ ? Nếu ngôn ngữ hữu hạn câu, cần liệt kê h ết tất câu thuộc ngôn ngữ Nếu ngôn ngữ vô hạn câu, ta khơng thể liệt kê hết Trong... chất P : tồn biểu thức qui biểu diễn ngôn ngữ với phần tử ℜ , ta lý luận sau: Chỉ ra P với ngôn ngữ ∅ , { ε } ngơn ngữ có dạng { a } Chỉ tính chất P cho ngơn ngữ A B, P cho ngôn ngữ A∪B, A.B A*

Ngày đăng: 18/08/2019, 21:39

Tài liệu cùng người dùng

Tài liệu liên quan