Văn phạm phi ngữ cảnh và ứng dụng trong phân tích cú pháp_2

55 147 0
Văn phạm phi ngữ cảnh và ứng dụng trong phân tích cú pháp_2

Đ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

Header Page of 128 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ĐẶNG VĂN QUÂN VĂN PHẠM PHI NGỮ CẢNH VÀ ỨNG DỤNG TRONG PHÂN TÍCH CÚ PHÁP LUẬN VĂN THẠC SĨ TỐN HỌC Hà Nội - 2018 Footer Page of 128 Header Page of 128 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ĐẶNG VĂN QUÂN VĂN PHẠM PHI NGỮ CẢNH VÀ ỨNG DỤNG TRONG PHÂN TÍCH CÚ PHÁP Chun ngành: Tốn ứng dụng Mã số: 8460112 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học: TS KIỀU VĂN HƯNG Hà Nội - 2018 Footer Page of 128 Header Page of 128 LỜI CẢM ƠN Sau thời gian cố gắng, nỗ lực học tập nghiên cứu, đến tơi hồn thành luận văn tốt nghiệp thạc sĩ Để có kết này, tơi xin bày tỏ lòng biết ơn sâu sắc lời cảm ơn chân thành đến thầy giáo, TS Kiều Văn Hưng, người định hướng nghiên cứu truyền thụ kiến thức cho suốt thời gian thực luận văn Tơi xin chân thành cảm ơn giúp đỡ quý báu thầy giáo mơn Tốn Ứng dụng nói riêng khoa Toán, trường Đại học Sư phạm Hà Nội nói chung Xin cảm ơn người thân gia đình tất người bạn thân yêu thông cảm, chia sẻ tạo điều kiện tốt cho tơi để tơi học tập, nghiên cứu thực luận văn Tơi mong nhận đóng góp ý kiến thầy cô bạn để luận văn hồn thiện Tơi xin chân thành cảm ơn! Hà Nội, ngày 08 tháng 06 năm 2018 Tác giả luận văn Đặng Văn Quân Footer Page of 128 Header Page of 128 LỜI CAM ĐOAN Tôi xin cam đoan luận văn cơng trình nghiên cứu riêng tôi, thực hướng dẫn thầy giáo TS Kiều Văn Hưng Trong trình nghiên cứu, tơi kế thừa thành khoa học nhà khoa học với trân trọng biết ơn Các kết trích dẫn luận văn rõ nguồn gốc Hà Nội, ngày 08 tháng 06 năm 2018 Tác giả luận văn Đặng Văn Quân Footer Page of 128 Header Page of 128 Mục lục MỞ ĐẦU Kiến thức chuẩn bị 1.1 Ngôn ngữ biểu diễn ngôn ngữ 1.1.1 Ngôn ngữ 1.1.2 Biểu diễn ngôn ngữ 14 Văn phạm 15 1.3 Ngôn ngữ phi ngữ cảnh 18 1.2 Văn phạm phi ngữ cảnh 20 2.1 Định nghĩa 20 2.2 Cây dẫn xuất văn phạm phi ngữ cảnh 25 2.3 Các chiến lược phân tích cú pháp 29 Ứng dụng văn phạm phi ngữ cảnh 35 3.1 Tổng quan ứng dụng văn phạm phi ngữ cảnh 36 3.2 Một số thuật tốn phân tích cú pháp 43 Footer Page of 128 Header Page of 128 3.2.1 Thuật toán Left to right parse - Leftmost derivation (LL) 43 3.2.2 Thuật toán Earley 47 3.2.3 Thuật toán Cocke-Younger-Kasami (CYK) 49 Kết luận 52 Tài liệu tham khảo 52 Footer Page of 128 Header Page of 128 Mở đầu Lý chọn đề tài Văn phạm phi ngữ cảnh mơ hình tốn học sản sinh lớp ngôn ngữ phi ngữ cảnh.Văn phạm phi ngữ cảnh cho phép mô tả biểu thức số học dấu ngoặc lồng hay cấu trúc khối ngơn ngữ lập trình, có nhiều ứng dụng thực tế quan trọng, đặc biệt phân tích cú pháp Ngơn ngữ hình thức nhà ngơn ngữ học tiếng Noam Chomsky phân làm bốn loại: ngơn ngữ ngữ cấu (nhóm 0), ngơn ngữ cảm ngữ cảnh (nhóm 1), ngơn ngữ phi ngữ cảnh (nhóm 2) ngơn ngữ quy (nhóm 3) Với mong muốn tìm hiểu sâu lớp ngơn ngữ phi ngữ cảnh văn phạm phi ngữ cảnh em định chọn đề tài nghiên cứu cho luận văn tốt nghiệp thạc sĩ chuyên ngành Toán ứng dụng “Văn phạm phi ngữ cảnh ứng dụng phân tích cú pháp” Mục đích nghiên cứu Tìm hiểu văn phạm ngôn ngữ phi ngữ cảnh lý thuyết ngơn ngữ hình thức Footer Page of 128 Header Page of 128 Nhiệm vụ nghiên cứu Trình bày cách hệ thống văn phạm, ngôn ngữ phi ngữ cảnh ứng dụng liên quan Đối tượng phạm vi nghiên nghiên cứu • Đối tượng nghiên cứu: Văn phạm ngôn ngữ phi ngữ cảnh • Phạm vi nghiên cứu: Nghiên cứu tổng quan văn phạm ngôn ngữ phi ngữ cảnh Phương pháp nghiên cứu Tìm hiểu tài liệu, sách, báo liên quan đến kết có văn phạm ngôn ngữ phi ngữ cảnh Tổng hợp kiến thức trình bày cách hệ thống Đóng góp Hệ thống kiến thức văn phạm phi ngữ cảnh ứng dụng chúng, góp phần làm phong phú kết quả, hiểu biết văn phạm ngôn ngữ phi ngữ cảnh Hi vọng luận văn tài liệu tham khảo hữu ích lý thuyết ngơn ngữ hình thức Footer Page of 128 Header Page of 128 Chương Kiến thức chuẩn bị Có thể hình dung văn phạm “thiết bị tự động” có khả sinh tập hợp từ bảng chữ cho trước Mỗi từ sinh sau số hữu hạn bước thực quy tắc văn phạm Việc xác định ngơn ngữ bảng chữ cho trước thực cách thức sau: Cách 1: Đối với từ thuộc ngôn ngữ cho, ta chọn quy cách hoạt động “thiết bị tự động” để sau số hữu hạn bước làm việc dừng sinh từ Cách 2: “Thiết bị tự động” có khả sinh tất từ ngôn ngữ cho Cách 3: Với từ cho trước, “thiết bị tự động” cho biết từ có thuộc ngơn ngữ cho hay khơng Trong lý thuyết văn phạm, người ta chứng minh ba cách thức tương đương hay văn phạm làm việc theo cách tương đương Vì vậy, ta quan tâm đến cách thứ Footer Page of 128 Header Page 10 of 128 nhất, tức ta xét văn phạm “thiết bị tự động” sinh từ Vì lẽ mà người ta gọi “thiết bị tự động” văn phạm sinh Việc sinh từ thực nhiều cách khác Các từ sinh văn phạm, Otomat, máy hình thức máy Turing, Ở ta đề cập đến cách N.Chomsky đưa vào năm 1956-1957 1.1 Ngôn ngữ biểu diễn ngôn ngữ 1.1.1 Ngôn ngữ Tập Σ khác rỗng gồm hữu hạn hay vô hạn ký hiệu gọi bảng chữ Mỗi phần tử a ∈ Σ gọi chữ hay ký hiệu Ở ta xét bảng chữ có hữu hạn phần tử Ví dụ 1.1 Dưới bảng chữ: + Σ = {a, b, c, , x, y, z} + ∆ = {α, β, γ, δ, ε, η, ϕ, κ, µ, χ, ν, π, θ, ρ, σ, τ, ω, ξ, ψ}, + Γ = {0, 1}, + W = {if, then, else, a, b, c, d, e, f, +, −, ∗, /, =, =} Giả sử có bảng chữ Σ = {a1 , a2 , , am }, dãy chữ α = ai1 ai2 ait , với aij ∈ Σ (1 ≤ j ≤ t) gọi từ hay xâu bảng chữ Σ Tổng số vị trí ký hiệu xuất xâu α gọi độ dài từ α ký hiệu |α| Như vậy, từ bảng chữ Σ xâu hữu hạn gồm số Footer Page 10 of 128 Header Page 41 of 128 tập hữu hạn trạng thái Đầu đọc otomat cho phép đọc ký hiệu băng vào từ trái sang phải Ngồi ra, otomat đẩy xuống có thêm băng làm việc (ngăn xếp hay stack), nhờ có mà nhớ otomat đẩy xuống tăng lên so với khả nhớ otomat hữu hạn Ngăn xếp tổ chức theo nguyên tắc ký hiệu vào sau trước (LIFO), giống ổ nạp đạn Khi đưa ký hiệu vào ngăn xếp ký hiệu trở thành ký hiệu đầu ngăn xếp Khi ngăn xếp đọc ký hiệu ký hiệu ký hiệu xong bị loại khỏi ngăn xếp Một ngăn xếp gọi danh sách đẩy xuống Một otomat đẩy xuống bao gồm băng vào, nhớ Stack điều khiển hình 3.1 đây: Hình 3.1: Mơ hình làm việc otomat đẩy xuống Căn vào trạng thái điều khiển, ký hiệu vào mà đầu đọc quan sát ký hiệu ngăn xếp, otomat đẩy xuống chuyển sang trạng thái đồng thời đầu đọc chuyển sang bên phải Nếu đầu đọc chuyển sang bên phải ta gọi trình bước chuyển Ngược lại, ký hiệu vào không ảnh hưởng tới bước chuyển ta gọi bước chuyển “nhắm mắt” bước chuyển đầu đọc đứng yên chỗ Footer Page 41 of 128 39 Header Page 42 of 128 Thực chất bước chuyển “nhắm mắt” tạm ngừng quan sát băng vào để chấn chỉnh lại ngăn xếp Có hai cách đốn nhận xâu vào otomat đẩy xuống: Cách 1: Xâu vào đọc xong otomat đẩy xuống chuyển trạng thái kết thúc Cách 2: Xâu vào đọc xong ngăn xếp trở thành rỗng Sau ta hai cách đoán nhận tương đương Ví dụ 3.2 Cho văn phạm phi ngữ cảnh: G = {0, 1, c}, {S}, S, {S → 0S0, S → 1S1, S → c} Dễ dàng thấy L(G) = {ωcω R |ω ∈ {0, 1}∗ } (ω R xâu viết ký hiệu xâu ω theo thứ tự ngược lại) Chẳng hạn, xâu ω = 010011 xâu ωcω R = 010011c110010 có dẫn xuất sau đây: (S, 0S0, 01S10, 010S010, 0100S0010, 01001S10010, 010011S110010, 010011c110010) Mặt khác xâu ωcω R đốn nhận otomat đẩy xuống sau: Trước hết đặt xâu x = ωcω R lên băng vào Đầu đọc dịch chuyển từ trái sang phải Ban đầu ngăn xếp rỗng Otomat đẩy xuống có hai trạng thái p, q p trạng thái đầu Khi trạng thái đầu p, đầu đọc đọc ký hiệu băng vào đưa ký hiệu vào ngăn xếp Trạng thái otomat đẩy xuống lúc p Đầu đọc dịch chuyển sang bên phải ô đọc ký hiệu ô Nếu ký hiệu otomat đẩy xuống đưa ký hiệu vào ngăn xếp, trạng thái otomat p đầu đọc lại chuyển sang phải Q trình tiếp tục đầu đọc gặp ký hiệu c Khi Footer Page 42 of 128 40 Header Page 43 of 128 otomat chuyển trạng thái p sang trạng thái q đầu đọc chuyển sang phải ô Tại thời điểm ngăn xếp xuất xâu ω Ký hiệu bên phải ω nằm ngăn xếp, trạng thái otomat q Đầu đọc ô bên phải ký hiệu c Nếu ký hiệu ô ký hiệu ô ngăn xếp otomat đẩy xuống loại ký hiệu khỏi ngăn xếp, ký hiệu lại lên vị trí ngăn xếp, otomat đẩy xuống chuyển đầu đọc sang phải ơ, trạng thái q Q trình tiếp tục có hai khả xảy ra: 1/ Otomat đẩy xuống đọc hết xâu x ngăn xếp trở thành rỗng otomat dừng lại đốn nhận xâu x = ωcω R 2/ Các ký hiệu ngăn xếp chưa bị loại hết đầu đọc gặp ký hiệu xâu vào khác với ký hiệu ngăn xếp Trong trường hợp otomat đẩy xuống khơng đốn nhận xâu x Nhờ có ngăn xếp mà otomat đẩy xuống có khả nhớ nửa đầu xâu x = ωcω R với ω có độ dài tuỳ ý sau so sánh dần với nửa cuối ω R x Otomat hữu hạn khơng có khả Định nghĩa 3.2 Một otomat đẩy xuống bảy: M = Q, Σ, ∆, δ, q0 , z0 , F , đó, + Σ tập hữu hạn khác rỗng ký hiệu, gọi bảng chữ vào, ký hiệu Σ gọi ký hiệu vào; + Q tập hữu hạn, khác rỗng trạng thái cho Σ ∩ Q = ∅; + ∆ tập hữu hạn khác rỗng ký hiệu, gọi bảng chữ ngăn xếp, mà ký hiệu gọi ký hiệu ngăn xếp; + z0 ∈ ∆ ký hiệu đặc biệt, gọi ký hiệu đáy ngăn xếp (còn gọi ký hiệu danh sách đẩy xuống); + q0 ∈ Q gọi trạng thái khởi đầu; Footer Page 43 of 128 41 Header Page 44 of 128 + F ⊂ Q gọi tập trạng thái kết thúc; ∗ ∗ + δ : Q × (Σ ∪ {ε}) × ∆ → 2(Q×∆ ) gọi hàm chuyển M, 2(Q×∆ ) tập tập Q × ∆∗ Định nghĩa 3.3 Một đẳng thức dạng: δ(q, a, z) = { q1 , γ1 , q2 , γ2 , , qm , γm }, q, qi ∈ Q, a ∈ Σ, z ∈ ∆, γi ∈ ∆∗ , (i = 1, , m) gọi bước chuyển otomat đẩy xuống M Nó trạng thái q, đọc ký hiệu a băng vào z ký hiệu đỉnh ngăn xếp Khi chuyển sang trạng thái qi , thay ký hiệu z đỉnh ngăn xếp xâu γi (i = 1, , m), đồng thời chuyển đầu đọc sang bên phải ô Quy ước đưa γi vào ngăn xếp, ký hiệu bên trái γi nằm phần dưới, ký hiệu bên phải γi nằm ô ngăn xếp Một đẳng thức dạng: δ(q, ε, z) = { q1 , γ1 , q2 , γ2 , , qm , γm } diễn tả bước chuyển “nhắm mắt” otomat đẩy xuống M : Otomat trạng thái q, ký hiệu z đỉnh ngăn xếp Khi otomat đẩy xuống chuyển trạng thái q qi thay z ∈ ∆ đỉnh ngăn xếp xâu γi (1 ≤ i ≤ m), đầu đọc khơng dịch chuyển Như vậy, thời điểm, tình tức thời otomat đẩy xuống xác định ba yếu tố sau: - Xâu γ ∈ ∆∗ ngăn xếp (với quy ước ký hiệu bên trái γ nằm đáy ngăn xếp) - Trạng thái q ∈ Q - Phần xâu vào x ∈ Σ∗ chưa đọc đến băng vào (với quy ước ký hiệu bên trái x ký hiệu đọc tiếp) Footer Page 44 of 128 42 Header Page 45 of 128 Ta có định nghĩa cho tình tức thời PDA sau: Định nghĩa 3.4 Cho otomat đẩy xuống M = Q, Σ, ∆, δ, q0 , z0 , F Một hình trạng otomat M ba K = q, α, β , q ∈ Q, α ∈ Σ∗ , β ∈ ∆∗ Giả sử α = a1 a2 ak ∈ Σ∗ , β = x1 x2 xm ∈ ∆∗ Dưới tác động ánh xạ chuyển trạng thái δ, otomat M chuyển từ hình trạng sang hình trạng khác theo nguyên tắc sau: 1) Nếu p, γ ∈ δ(q, a1 , xm ) hình trạng q, a1 a2 ak , x1 x2 xm chuyển sang hình trạng p, a2 ak , x1 x2 xm−1 γ ký hiệu: q, a1 a2 ak , x1 x2 xm p, a2 ak , x1 x2 xm−1 γ 2) Nếu p, γ ∈ δ(q, ε, xm ) hình trạng q, a1 a2 ak , x1 x2 xm chuyển sang hình trạng p, a1a2 ak , x1 x2 xm−1 γ ký hiệu: q, a1 a2 ak , x1 x2 xm 3.2 p, a1 a2 ak , x1 x2 xm−1 γ Một số thuật tốn phân tích cú pháp 3.2.1 Thuật tốn Left to right parse - Leftmost derivation (LL) Tư tưởng phương pháp phân tích LL ta triển khai ký hiệu không kết thúc, lựa chọn cẩn thận sản xuất để tránh việc quay lui thời gian Tức phải có cách xác định dực lựa chọn mà thử lựa chọn khác Thông tin để xác định lựa chọn dựa vào biết trạng thái kí hiệu kết thúc Footer Page 45 of 128 43 Header Page 46 of 128 Left to right parse - Leftmost derivation phương pháp phân tích hiệu quả, thuộc chiến lược phân tích topdown hiệu chỗ phương pháp phân tích khơng quay lui Cơ sở phân tích Left to right parse - Leftmost derivation(k) dựa phương pháp phân tích top-down máy ơtơmát đẩy xuống Thuật tốn phân tích Left to right parse - Leftmost derivation(1)( Thuật toán LL(1)) Đầu vào: bảng phân tích M, xâu vào Đầu ra: Cây phân tích cho x lỗi Các bước thuật tốn: Bước 1: Đẩy kí hiệu $, S (kí tự đầu) vào Stack Thêm $ vào cuối xâu x Kí tự xét kí tự đầu xâu x (Lặp) Bước 2: X kí hiệu đỉnh Stack, a kí hiệu xét Nếu X = a = $ → Thành công Nếu X = a = $: Lấy X khỏi Stack, kí hiệu xét kí hiệu xâu vào Nếu X kí hiệu khơng kết thúc: Xét M [X, a] sản xuất X → Y1 Y2 Yk thì: Lấy X khỏi Stack Đẩy Yk , , Y1 vào Stack Định nghĩa First Follow: First (α) tập kí hiệu kết thúc bắt đầu xâu suy dẫn từ α Nếu α ⇒∗ ε ε ∈ First(α) Follow(A) tập kí hiệu kết thúc mà đứng bên phải A dạng câu Footer Page 46 of 128 44 Header Page 47 of 128 Tính First kí hiệu (1) Nếu X ký hiệu kết thúc First(X)={X} (2) Nếu X → ε sản xuất ε ∈ First(X) (3) Nếu X → Y1 Y2 Yk sản xuất: First(Y1 )\{ε} ⊂ First(X) Nếu ε ∈ First(Yj )(j < i)→First(Yj ) \{ε} ⊂ First(X) Nếu ε ∈ First(Yj )(i = 1, 2, , k) ε ∈ First(X) Lặp lại quy tắc không thêm vào First(X) Tính First xâu α = X1 X2 Xk First(X1 )\{ε} ⊂ First(α) Nếu ε ∈ First(Xj )(j < i)→First(Yj ) \{ε} ⊂ First(α) Nếu ε ∈ First(Xi )(i = 1, 2, , k) ε ∈ First(α) Tính Follow(A) (1) Đặt $ vào Follow(A) với A kí hiệu bắt đầu (2) B → αAβ (với β = ε) First(β)\{ε} ⊂ Follow(A) (3) B → αA (hoặc B → αAβ với ε ∈ First(β)) Follow(B)⊂ Follow(A) Lặp lại quy tắc khơng thêm vào Follow(A) Ví dụ 3.3 Cho bảng phân tích sau: Xâu vào a + a∗ a Thuật toán LL(1) cho xâu a + a∗ a cụ thể sau: Bước 1: Đẩy $E vào stack, đọc a + a∗ a Bước 2: Đỉnh stack E, chữ đọc a, tra Bảng dùng E → T E Lấy E stack, đẩy E T vào stack Stack $E T , xâu đọc a + a∗ a$ Bước 3: Đỉnh stack T, chữ đọc a + a∗ a, tra Bảng dùng T → F T Lấy T stack, đẩy T F vào ngăn xếp Stack $E T F , xâu đọc a + a∗ a$ Bước 4: Đỉnh stack F, chữ đọc a, tra Bảng dùng F → a Lấy F Footer Page 47 of 128 45 Header Page 48 of 128 khỏi stack, đẩy a vào stack Stack $E T a, xâu đọc a + a∗ a$ Bước 5: Đỉnh stack a, chữ đọc a, sánh hai chữ nhau: lấy a khỏi stack, dịch xâu đầu vào sang phải Stack $E T , xâu đọc a + a∗ a$ Bước 6: Đỉnh stack T’, chữ đọc + Tra Bảng dùng T → espilon: Stack $E, xâu đọc +a∗ a$ Bước 7: Đỉnh stack E’, chữ đọc + Tra Bảng E → +T E Lấy E’ khỏi Stack, đẩy E , T, + vào Stack Stack $E T +, xâu đọc +a∗ a$ Bước 8: Đỉnh stack +, chữ đọc +, sánh hai chữ nhau, lấy + khỏi Stack, dịch chữ đọc sang phải Stack $E T , xâu đọc a∗ a$ Footer Page 48 of 128 46 Header Page 49 of 128 3.2.2 Thuật toán Earley Giải thuật Earley [1, 2] số giải thuật sử dụng để phân tích cú pháp xử lý ngơn ngữ tự nhiên Nó giải thuật tổng quát, phân tích văn phạm phi ngữ cảnh Nhưng giải thuật nhiều hạn chế cần khắc phục Giải thuật Earley: Cho G = (V, W, S, P ) văn phạm phi ngữ cảnh, w = a1 an ∈ W ∗ Khi đó, A → α • β luật có chấm A → αβ ∈ P Giải thuật Earley biểu diễn thông qua việc xây dựng bảng chứa tập luật có chấm Người ta xây dựng bảng Earley với cột Ii (i = n), cột I0 nhận giá trị khởi tạo, n độ dài chuỗi từ loại nhập Mỗi có giá trị: giá trị gốc để biết luật phát sinh từ cột nào, luật có chấm Thuật tốn phân tích Earley thực theo bước: Dự đoán Đối với luật có ký tự khơng kết thúc bên phải dấu chấm, ta thêm luật mà ký tự không kết thúc vế trái luật với giá trị gốc i Điều có nghĩa là, với [A → α • aβ, j] Ii ta thêm [B → •γ, i] vào Ii B → γ ∈ P Duyệt Đối với luật mà ký tự kết thúc bên phải dấu chấm, luật chuyển sang cột Ii+1 với dấu chấm dịch sau ký tự kết thúc Điều có nghĩa là, với [A → α • aβ, j] đổi thành [A → αa • β, j] cột Ii+1 Hoàn thiện Footer Page 49 of 128 47 Header Page 50 of 128 Khi có luật [A → α•, j] chép đổi [B → α • Aβ, k] cột Ij thành [B → αA • β, k] cột Ii Ví dụ 3.4 Cho văn phạm G với luật sinh sau: S → CN VN CN → DL DT CN → DT VN → ĐT CN VN → VN BN BN → GT CN DT → mẹ DT →con DT → chân DL → ĐT → rửa GT →cho Chú thích: CN – Chủ ngữ VN – Vị ngữ DT – Danh từ DL – Danh từ loại ĐT – Động từ BN – Bổ ngữ GT – Giới từ chuỗi nhập là: mẹ rửa chân cho Với thuật tốn Earley trình bày ta có bảng sau: Footer Page 50 of 128 48 Header Page 51 of 128 3.2.3 Thuật toán Cocke-Younger-Kasami (CYK) CYK viết tắt từ Cocke-Younger-Kasami, thuật toán dùng để xác định xem xâu có tạo (hay đốn nhận) văn phạm phi ngữ cảnh hay khơng (context-free grammar) Thuật tốn sử dụng nhiều phân tích ngơn ngữ tự nhiên CYK thuật toán bottom-up chi phí O(n) trường hợp tồi với n độ dài xâu phân tích Giải thuật CYK Đầu vào: Văn phạm G = (V, W, S, P ) dạng chuẩn Chomsky, không chứa sản xuất rỗng Xâu vào ω = a1 a2 an ∈ W ∗ Đầu ra: Bảng phân tích W ω cho tij chứa A A ⇒+ a1 a2 ai+j−1 Phương pháp: Bước Tập hợp ti1 = {A | A → ∈ P } với i Sau bước ti1 chứa A ta có A ⇒+ aj Bước Giả sử tij tính ∀i(1 ≤ i ≤ n) ∀j(1 ≤ j ≤ j) Tập hợp tij = {A | với k (1 ≤ k < j), A → BC ∈ P, B ∈ tik ; C ∈ ti+kj−k } Footer Page 51 of 128 49 Header Page 52 of 128 Từ điều kiện ≤ k < j suy k j − k nhỏ j Do tik ti+kj−k tính trước tij phải tính Sau bước này, tij chứa A A ⇒ BC ⇒+ a1 a2 ai+k−1 C ⇒+ a1 a2 ai+k−1 ai+k ai+j−1 Bước Lặp lại bước tij tính với ≤ i ≤ n, ≤ j < n − i + Giải thuật phân tích trái CYK Đầu vào: Văn phạm G = (V, W, S, P ) dạng chuẩn Chomsky, luật sản xuất (luật sinh) đánh số từ 1, , q Xâu vào ω = a1 a2 an Bảng phân tích W ω Đầu ra: Phân tích trái ω thơng báo ”sai” Phương pháp: Ta sử dụng thủ tục đệ quy SINH(i, j, A) để sinh phân tích trái suy dẫn: A ⇒+ a1 a2 ai+j−1 Thủ tục SINH(i, j, A) xác định sau: Nếu j = sản xuất thứ m P A ⇒ , ta viết số thứ tự sản xuất m Nếu j > 1, gọi k số nguyên nhỏ ≤ k < j cho với B ∈ tik C ∈ ti+1,k ta có A → BC ∈ P có số thứ tự m (Trong trường hợp có nhiều sản xuất dạng A → BC, ta chọn tùy ý sản xuất với số thứ tự m nhỏ nhất), viết số thứ tự m thực S I N H (i, k, b) S I N H (i + k, j − k, C) Giải thuật S I N H (1, n, S) với điều kiện S ∈ t1n , S ∈ / t1n đưa thơng báo sai Ví dụ 3.5 Cho văn phạm phi ngữ cảnh G với luật sinh sau: S → AA Footer Page 52 of 128 50 Header Page 53 of 128 S → AS S → b A → SA A → AS A → a Chuỗi nhập vào w = abaab Với thuật tốn CYK ta có bảng phân tích Hình 3.2 ⇒ Đầu : 164356263 Hình 3.2: Bảng phân tích luật sinh Footer Page 53 of 128 51 Header Page 54 of 128 Kết luận Văn phạm phi ngữ cảnh công cụ sinh lớp ngơn ngữ phi ngữ cảnh có nhiều ứng dụng thực tiễn Trong luận văn này, khái niệm ngơn ngữ hình thức, ngôn ngữ phi ngữ cảnh; định nghĩa, mô tả hoạt động số vấn đề liên quan tới văn phạm phi ngữ cảnh trình bày Đặc biệt, luận văn trình bày tổng qt mơ tả chi tiết số mơ hình ứng dụng văn phạm phi ngữ cảnh Do lần nghiên cứu, luận văn có nhiều thiếu sót Rất mong thầy giáo, giáo bạn góp ý để luận văn hồn thiện Footer Page 54 of 128 52 Header Page 55 of 128 Tài liệu tham khảo [A] Tài liệu tiếng Việt [1] Nguyễn Văn Định (2012), Giáo trình Otomat Ngơn ngữ hình thức, NXB Đại học Nơng nghiệp [2] Hồ Văn Qn (2002), Giáo trình lý ơtơmát ngơn ngữ hình thức, NXB Đại học Quốc gia TP Hồ Chí Minh [3] Đặng Huy Ruận (2002), Lý thuyết ngơn ngữ hình thức Otomat, NXB Đại học Quốc gia Hà Nội [B] Tài liệu tiếng Anh [4] Hopcroft J E., Ullman J D (1969), Formal Languages and Their Relation to Automata, Addison-Wesley Publishing Company, Massachussetts [5] Hopcroft J E., R Motwani, Ullman J D (2001), Introduction to Automata Theory, Languages, and Computation, Addision – Wesley Publishing Company, Massachussetts [6] Peter L (1990), An Introduction to Formal Languages and Automata, D.C Heath and Company [7] Smith V J R (1995), A First course in Formal Language Theory (Second Editor), McGraw-Hill Book Company Europe Footer Page 55 of 128 53 ... gọi văn phạm nhóm hay văn phạm cảm ngữ cảnh c) G gọi văn phạm phi ngữ cảnh nếu: Văn phạm G = Σ, ∆, S, P mà quy tắc có dạng A → ω, A ∈ ∆, ω ∈ (Σ ∩ ∆)∗ , gọi văn phạm nhóm hay văn phạm phi ngữ cảnh. .. lớp văn phạm không hạn chế rộng nhất, chứa đựng văn phạm cảm ngữ cảnh, lớp văn phạm Footer Page 25 of 128 23 Header Page 26 of 128 cảm ngữ cảnh chứa văn phạm phi ngữ cảnh lớp văn phạm phi ngữ cảnh. .. nghiệp thạc sĩ chuyên ngành Toán ứng dụng Văn phạm phi ngữ cảnh ứng dụng phân tích cú pháp” Mục đích nghiên cứu Tìm hiểu văn phạm ngôn ngữ phi ngữ cảnh lý thuyết ngôn ngữ hình thức Footer Page of

Ngày đăng: 06/01/2019, 17:24

Từ khóa liên quan

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

Tài liệu liên quan