You are on page 1of 1

Áp dụng giải thuật CYK để xác định xem một xâu x có thuộc ngôn ngữ sản

sinh bởi văn phạm phi ngữ cảnh G nào đó hay không?
Câu này chỉ thi với độ dài xâu x bằng 3 và được trình bày theo dạng sau:
VD: Với xâu x=bab và văn phạm phi ngữ cảnh có tập sản xuất sau:
{ S→ AB | BC, A→ BA | a, B→ CC | b, C→ AB | a }
Để kiểm tra xâu x = bab có thuộc L(G) hay không ta áp dụng giải thuật CYK
như sau:
- Gọi xij là xâu con của xâu x kể từ vị trí i và có độ dài là j
- Gọi ∆ ij là tập các ký hiệu không kết thúc suy dẫn ra xâu xij
- Như vậy ∆ 1n (n = 3 là độ dài xâu x) là tập các ký hiệu không kết thúc suy dẫn
ra xâu x1n = x.
+ Nếu S ∈ ∆ 1n thì kết luận x ∈ L(G)
+ Nếu S ∉ ∆ 1n thì kết luận x ∉ L(G)
Vậy ta phải đi tính các ∆ ij với 1≤ j ≤ n và 1 ≤ i ≤ n – j + 1 như sau:
- Với j = 1: ∆ i1 = {A| (A → d) ∈ P và d là ký hiệu thứ i trong x}
+ ∆ 11 = {A| (A → b) ∈ P}
+ ∆ 21 = {A| (A → a) ∈ P}
+ ∆ 31 = {A| (A → b) ∈ P}
- Với j=2: ∆ i2 = {A| A→ BC ∈ P, B ∈ ∆ i1 , C ∈ ∆ i+1,1}
+ ∆ 12 = {A | A ⟶ BC ∈ P với B ∈ ∆ 11 , C ∈ ∆ 21 }
+ ∆ 22 = {A | A ⟶ BC ∈ P với B ∈ ∆ 21 , C ∈ ∆ 31 }
- Với j ≥ 3: ∆ ij = ¿ k =1 ¿ j−1 { A∨( A ⟶ BC )∈ P , B ∈ ∆ ik , C ∈ ∆ i+k, j-k}
+ ∆ 13 = {A | A ⟶ BC ∈ P với B ∈ ∆ 11 , C ∈ ∆ 22 } ∪
{A | A ⟶ BC ∈ P với B ∈ ∆ 12 , C ∈ ∆ 31 }
Như vậy ta có bảng các ∆ ij như sau:
b a b
i
1 2 3
j
1 ∆ 11 = {B} ∆ 21 = {A, C} ∆ 31 = {B}
2 ∆ 12 = {S, A} ∆ 22 = {S, C}
3 ∆ 13 = {S, C}

Kết luận: Vì S ∈ ∆ 13, nên xâu bab ∈ L(G)


1

You might also like