otomat
Trang 1CYK 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:
S->A|B|E.
A->A
Trang 2(thay các sx đơn trong P1 bằng các sx ko đơn trong A,B,E của P1) vậy P2={S->ABE|BE|AE|AB|EE|BBE|BB|aA|a|b:
A->AE|EE|a|aA;
B->BBE|b|BE|BB|a|b|aA ;
E->aA| a}
**loại bỏ kí hiệu vô sinh**
căn cứ vào P2.
có S->a
A->a B->a
E->a
Δ'={S,A,B,E}
kl: ko có kí hiệu vô sinh vậy P3=P2.
**loại bỏ kí hiệu ko dẫn được **
Δ' ={S}
xét S->ABE =>Δ' ={S,A,B,E}
S->aA => Σ' ={a}
ko có kí hiệu ko dẫn được vậy P4=P3.
OTOMAT HHDD
2
Trang 3- Ví dụ: Khử sản xuất đơn vị cho văn phạm sau:
SaA |A | bB
AB | a
BA | ab | bb
- Ta có các sản xuất không đơn vị:
SaA| bB
Aa
Bab |bb
- Ta có các cặp biến (S,A), (S,B), (A,B), (B,A) thỏa mãn S⇒+A; S⇒+B; A⇒+B; B⇒+A
• cặp (S,A), có Aa nên thêm: Sa
• cặp (S,B), có Bab và Bbb nên thêm: Sab |bb
• cặp (A,B), có Bab và Bbb nên thêm: Aab |bb
• cặp (B,A), có Aa nên thêm: Ba
Vậy ta được văn phạm sau:
Ví dụ: vẽ ôtômat PDA đoán nhận xâu anbn với n>=0