Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
516,66 KB
Nội dung
CHƯƠNG TRÌNH DỊCH BÀI 12: THUẬT TỐN PHÂN TÍCH CYK Nội dung Khắc phục hạn chế phương pháp thử-sai Các phương pháp phân tích cú pháp vạn Áp dụng quy hoạch động vào phân tích cú pháp Thuật tốn Cocke – Younger – Kasami (CYK) Dạng chuẩn Chomsky (CNF) Ý tưởng Mã minh họa Đánh giá thuật toán Bài tập TRƯƠNG XUÂN NAM Phần Khắc phục hạn chế phương pháp thử-sai TRƯƠNG XUÂN NAM Các hạn chế thử-sai Hai thuật toán thử-sai top-down bottomup có hạn chế văn phạm đầu vào Top-down: văn phạm khơng có đệ quy trái Bottom-up: văn phạm khơng có suy dẫn rỗng khơng có kí hiệu đệ quy (A ⇒+ A) Các thuật tốn thử-sai có hạn chế mặt tốc độ Tốc độ chấp nhận với số văn phạm đơn giản đơn nghĩa, đầu vào ngắn Trường hợp xấu có độ phức tạp tính tốn hàm mũ Khơng có chế hiệu loại bỏ trùng lặp kết (chẳng hạn nhiều suy dẫn tương đương) TRƯƠNG XUÂN NAM Các hạn chế thử-sai Nguyên nhân hạn chế Hạn chế thân chế hoạt động thử-sai Khơng có chế loại bỏ phương án chắc-chắn-sai Ví dụ: q trình suy dẫn S thành w = abcdefg S ⇒ … ⇒ abcAx ⇒ … ⇒ abcdefg Ta nhận thấy phương án có chuỗi trung gian abcAx hồn tồn khơng thể đạt chuỗi w mong muốn Vì x kí hiệu khơng kết thúc, ln ln tồn suy dẫn tiếp theo, chuỗi w không chứa x Thuật toán thử sai tốt ~ cắt nhánh sớm? TRƯƠNG XUÂN NAM Phần Các phương pháp phân tích cú pháp vạn TRƯƠNG XUÂN NAM Phương pháp phân tích vạn Như thuật tốn thử-sai có điểm yếu Hệ luật văn phạm bị hạn chế Yêu cầu nhiều thời gian tính tốn Vì có mục tiêu Tạo thuật tốn phân tích vạn (không bị hạn chế luật văn phạm) Tạo thuật tốn phân tích tốc độ cao Tất nhiên có thuật tốn đạt mục tiêu tốt Trong phần ta nhắm tới mục tiêu thứ TRƯƠNG XUÂN NAM Phương pháp phân tích vạn Có chiến lược: Biến đổi văn phạm G thành văn phạm G’ tương đương khơng có hạn chế thuật toán Thay đổi chế thuật toán, nói cách khác khơng sử dụng chế thử-sai có Chiến lược thứ khơng có lời giản trọn vẹn Thuật toán khử đệ quy trái thay đổi ý nghĩa văn phạm, kết văn phạm G’ thực chất khơng hồn tồn tương đương G Chưa có thuật tốn tổng qt khử suy dẫn rỗng Chưa có thuật tốn tổng quát khử kí hiệu đệ quy TRƯƠNG XUÂN NAM Phần Áp dụng quy hoạch động vào phân tích cú pháp TRƯƠNG XUÂN NAM Ý tưởng quy hoạch động Quy hoạch động gồm hai ý tưởng Chia toán lớn thành toán độc lập Sử dụng nhớ để lưu trữ lại lời giải toán (để tránh việc phải giải giải lại nhiều lần toán) Áp dụng vào toán phân tích văn phạm Cây phân tích S ⇒* w thực chất gồm con, phân tích chuỗi liên tiếp w Sử dụng nhớ để lưu trữ lại kết suy dẫn chuỗi w (có nhiều chiến lược, chẳng hạn lưu trữ chuỗi từ wiwi+1…wj chuỗi w0w1…wk, tùy vào mục tiêu cần lưu trữ) TRƯƠNG XUÂN NAM 10 Phần Thuật toán Cocke – Younger – Kasami (CYK) TRƯƠNG XUÂN NAM 11 Dạng chuẩn Chomsky (CNF) Văn phạm phi ngữ cảnh dạng chuẩn Chomsky luật sinh có dạng A → BC A → a Dễ thấy văn phạm phi ngữ cảnh không chứa suy dẫn rỗng (A → ) chuyển dạng chuẩn Chomsky thuật toán đơn giản sau Nếu luật sinh sẵn dạng chuẩn Chomsky giữ nguyên Nếu luật sinh khơng dạng chuẩn Chomsky có dạng A → B1B2…Bn, với n > • Ta bổ sung kí hiệu trung gian C1, C2,…, Cn-2 • Thay luật luật A → C1Bn, C1 → C2Bn-1,… Cn-2 → B1B2, luật thỏa mãn chuẩn Chomsky TRƯƠNG XUÂN NAM 12 Thuật toán CYK: ý tưởng CYK khơng phải thuật tốn vạn khơng chấp nhận văn phạm có suy dẫn rỗng CYK minh họa cách đơn giản ý tưởng quy hoạch động: Giả thiết chuỗi w = w1w2…wn Ta định nghĩa tập Xij tập tất kí hiệu suy dẫn chuỗi wiwi+1…wi+j-1 (chuỗi wi có độ dài j) Bài toán đoán nhận S ⇒* w tương đương với việc trả lời S có thuộc tập X1n hay khơng? Vấn đề tính Xij nào? TRƯƠNG XUÂN NAM 13 Thuật toán CYK: mã minh họa // tính X chuỗi độ dài for (int i = 1; i