Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (150.72 KB, 4 trang )
CYK viết tắt của từ Cocke-Younger-Kasami.CYK là một thuật toán dùng để xác định xem một xâu có được tạo ra (hay
đoán nhận) bởi một văn pham phi ngữ cảnh hay không (context-free grammar). Thuật toán này được sử dụng rất nhiều
trong phân tích ngôn ngữ tự nhiên.
CYK là thuật toán bottom-up và chi phí là O(n³) trong trường hợp tồi nhất với n là độ dài xâu phân tích.
Giải thuật
Vào: Văn phạm G = ( N , T , S , P ) dạng chuẩn Chomsky, không chứa sản xuất trống, xâu vào w = a1a2 ... an € T+
Ra: Bảng phân tích T đối với w sao cho tij chứa A khi và chỉ khi
A →+ aiai+1 ... ai+j-1
Thuật toán
For i = 1 to n do ti1 = { A|A → ai € P }
For j = 2 to n do
For i = 1 to n – j +1 do
For k = 1 to j - 1 do
tij = { A| A → BC € P, B → tik và C → ti+k,j-k }
Nếu S € t1n thì w € L(G).
1. cho văn phạm với các tập sản xuất:
P={S->ABE;A->AE|EE|a;B->BBE|E|b ; E->aA| ε }
=> thứ tự thực hiện :
loại bỏ ε -sản xuất=> loại bỏ sản xuất đơn=>loại bỏ kí hiệu vô sinh =>loại bỏ kí
hiệu ko đến được.
**loại bỏ ε -sản xuất**
do E-> ε nên E là triệt tiêu được.
B->E nên B là triệt tiêu được.
A->EE nên A là triệt tiêu được.
S->ABE S là triệt tiêu được.
P1= {S->ABE|BE|AE|AB|A|B|E:
A->AE|EE|a|A|E;
B->BBE|E|b|BE|BB|B ;
E->aA| a}
**loại sản xuất đơn**
các sản xuất đơn: