Cho văn phạm gồm 3 luật sinh: (1) S->aSbS; (2) S->aS; (3) S->c. Phân tích xâu vào “aacbc” bằng thuật toán Top-down. Chọn lần lượt các sản xuất (1) (2) (2) (3) (1) (2) (3) để phân tích thì tại thời điểm này cây suy dẫn có bao nhiêu nút?
Trả lời:
Đáp án đúng: D
Để giải bài này, ta sẽ thực hiện phân tích xâu "aacbc" theo thuật toán Top-down với các luật sinh được cho và đếm số nút trên cây suy dẫn tại thời điểm chỉ định. Các bước phân tích như sau:
1. **S -> aSbS** (1): Cây có 3 nút (S, a, SbS)
2. **S -> aS** (2): Thay S bằng aS trong SbS. Cây có thêm 2 nút (S, aS) -> Tổng: 5 nút.
3. **S -> aS** (2): Thay S bằng aS trong aS. Cây có thêm 2 nút (S, aS) -> Tổng: 7 nút.
4. **S -> c** (3): Thay S bằng c trong aS. Cây có thêm 1 nút (c) -> Tổng: 8 nút.
Vậy, sau 4 bước cây suy dẫn có 8 nút. Các luật sinh tiếp theo sẽ chỉ làm tăng số nút của cây.
5. **S -> aSbS** (1) Thay S bằng aSbS vào cây hiện tại: Cây có thêm 3 nút (S, a, SbS) -> Tổng: 11 nút
6. **S -> aS** (2): Thay S bằng aS trong SbS. Cây có thêm 2 nút (S, aS) -> Tổng: 13 nút.
7. **S -> c** (3): Thay S bằng c trong aS. Cây có thêm 1 nút (c) -> Tổng: 14 nút.
Tuy nhiên câu hỏi chỉ hỏi sau các bước 1, 2, 2, 3. Do đó đáp án là 8.