II- CÁC GIẢI THUẬT
3- Giải Thuật Chart Pasing
Char pasing là một giải thuật phân tích cú pháp trên tập văn phạm phi ngữ cảnh tổng quát. Nó có tính chất rất đặc biệt : trung hòa giữa phương pháp phân tích từ trên xuống và phương pháp từ dưới lên. Điều đó có nghĩa là nó vừa có khả phân tích cú pháp từ trên xuống và vừa có khả năng phân tích cú pháp từ dưới lên. sau đây là mô tả hoạt động của giải thuật:
Gọi chiều dài của chuỗi nhập là n, ta xét việc xây dựng cây dẫn xuất cho chuỗi nhập trên một sơ đồ (chart)
Với chuỗi nhập có chiều dài n thì sơ đồ có n+1 đỉnh (vertex). Các đỉnh được đánh số từ 0 đến n. Giữa hai đỉnh bất kỳ có thể có nhiều cung (edge), mỗi cung được biểu diễn bằng một bộ :
(<start-vertex>, <end-vertex>, <edge-lable>) trong đó :
+ <start-vertex> : Một số tự nhiên chỉ ra đỉnh bắt đầu của cung. + <end-vertex> : Một số tự nhiên chỉ ra đỉnh kết thúc của cung.
+ <edge-vertex> : Đó là một luật có dấu chấm (dotted-rule). Luật có dấu chấm là luật sinh của văn phạm có thêm dấu chấm trong luật tại một vị trí nào đó. Ví dụ : A--> XYZ ==> A-->.XYZ A-->X.YZ A-->XY.Z A-->XYZ.
Ví dụ : (1,1, S--> .AB) là một cung bắt đầu từ đỉnh 1, kết thúc cũng đỉnh 1 và
Ta gọi một cung mà luật sinh có dấu chấm cuối cùng là một cung chết (inactive- edge), ngược lại ta có một cung sống (active-adge).
Chart Parsing thực hiện tuân theo các qui tắc sau : • Quy tắc cơ bản (Fundamental rule)
Nếu sơ đồ chứa hai cung (i,j,A-->w1.Bw2) và (j, k, B--> w3.) trong đó A,B là các ký hiệu không kết thúc , w1, w2, w3 là chuỗi các ký hiệu kết thúc và không kết thúc (cũng có thể là rỗng) thì ta thêm cung (i,k, A--> w1B.w2) vào trong sơ đồ.
• Khởi tạo (Initialization)
Khởi tạo là quá trình tạo ra các cung mà luật sinh có dấu chấm dạng : A--> a.
Trong đó A là ký hiệu không kết thúc còn a là ký hiệu kết thúc.
Với mọi i > 0 , i≤ n thì khi khỡi tạo ta phải tìm một cung có <start-vertex> =i-1, <end-vertex>=i và luật sinh có dấu chấm là A --> a. với a là ký hiệu thứ i trong chuỗi nhập, ngược lại chắc chắn chuỗi nhập không phải là một câu hợp lệ của văn phạm đang xét.
• Qui tắc từ dưới lên cho chart parsing (bottom-up rule)
Nếu thêm cung (i,j,C--> w1.) vào sơ đồ thì với mỗi luật sinh B --> Cw2 ta phải thêm cung (i,i, B-->.Cw2) vào sơ đồ.
• Qui tắc từ trên xuống cho chart parsing (top-down rule)
- Khi khỡi tạo : với mỗi luật sinh S --> α thêm cung (0,0,S-->.α) vào sơ đồ, trong đó S là ký hiệu mục tiêu của văn phạm.
- Nếu thêm cung (i,j, C--> w1.Bw2) vào sơ đồ thì với mỗi luật sinh B --> w, phải thêm cung (j,j, B --> .w) vào sơ đồ.
Ví dụ: Minh họa cho qui tắc khỡi tạo của giải thuật chart parsing, chúng ta xét
văn phạm sau : S NP VP VP IV VP IV PP VP TV NP 1 S --> .AB Hình vẽ cung (1,1, S-->.AB)
VP TV NP VPVP TN NP PP