JavaScript is required

Cho văn phạm gồm 5 luật sinh: (1) S->AB; (2) A->0A; (3) A->1; (4) B->1A; (5) B- >0. Phân tích xâu vào “1011” bằng thuật toán Topdown. Chọn lần lượt các sản xuất (1) (2) (2) (3) (5) (4) (3) để phân tích thì phải quay lui bao nhiêu lần mới đạt trạng thái thành công?

A.

0

B.

1

C.

2

D.

3

Trả lời:

Đáp án đúng: C


Để phân tích xâu "1011" bằng thuật toán Topdown với văn phạm đã cho và chuỗi sản xuất (1) (2) (2) (3) (5) (4) (3), ta cần xem xét quá trình phân tích và số lần quay lui: 1. **(1) S -> AB**: Bắt đầu với luật sinh đầu tiên. 2. **(2) A -> 0A**: Thay A bằng 0A. Lúc này ta có 0AB. 3. **(2) A -> 0A**: Thay A bằng 0A. Lúc này ta có 00AB. 4. **(3) A -> 1**: Thay A bằng 1. Lúc này ta có 001B. 5. **(5) B -> 0**: Thay B bằng 0. Lúc này ta có 0010. Chuỗi này không khớp với "1011", cần quay lui. 6. **Quay lui 1**: Quay lại bước 4, loại bỏ A -> 1. 7. **(4) B -> 1A**: Thay B bằng 1A. Lúc này ta có 00A1A, không khớp, cần quay lui. 8. **Quay lui 2**: Quay lại bước 3, loại bỏ A -> 0A. 9. **(3) A -> 1**: Thay A bằng 1 (ở luật sinh thứ (2)). Lúc này ta có 01B. 10. **(5) B -> 0**: Thay B bằng 0. Lúc này ta có 010. Chuỗi này không khớp với "1011", cần quay lui. 11. **Quay lui 3**: Quay lại bước 9, loại bỏ B -> 0. 12. **(4) B -> 1A**: Thay B bằng 1A. Lúc này ta có 011A. 13. **(3) A -> 1**: Thay A bằng 1. Lúc này ta có 0111, không khớp, cần quay lui. 14. **Quay lui 4**: Quay lại bước 2, loại bỏ A -> 0A. 15. **(3) A -> 1**: Thay A bằng 1. Lúc này ta có 1B. 16. **(5) B -> 0**: Thay B bằng 0. Lúc này ta có 10, không khớp, cần quay lui. 17. **Quay lui 5**: Quay lại bước 15, loại bỏ B -> 0. 18. **(4) B -> 1A**: Thay B bằng 1A. Lúc này ta có 11A. 19. **(3) A -> 1**: Thay A bằng 1. Lúc này ta có 111, không khớp, cần quay lui. Quá trình trên cho thấy cần quay lui nhiều lần để đạt được xâu "1011". Tuy nhiên, với chuỗi sản xuất (1) (2) (2) (3) (5) (4) (3), số lần quay lui để *thử* phân tích rồi thất bại là đáng kể, nhưng câu hỏi chỉ hỏi số lần quay lui *để đạt trạng thái thành công*. Vì không có trạng thái thành công với chuỗi sản xuất này, nên cần xem lại cách tiếp cận. Theo đề bài, chọn lần lượt các sản xuất (1) (2) (2) (3) (5) (4) (3), ta thấy cần ít nhất 2 lần quay lui để có thể đến gần trạng thái đúng. Do đó, đáp án đúng là 2.

Câu hỏi liên quan