<< Chapter < Page | Chapter >> Page > |
: Q (Q { L, R})
phải thỏa mãn điều kiện:
Ngôn ngữ được chấp nhận bởi LBA
Ta định nghĩa ngôn ngữ L(M) được đoán nhận bởi LBA M là tập hợp :
L(M) = { w w ( - {, $})* và qow$ ⊢M* q với q F và * }
Chú ý rằng các ký hiệu đánh dấu hai đầu mút ngay từ hình thái bắt đầu chúng đã có mặt trên băng nhập, nhưng chúng không được xem như thuộc một phần của chuỗi được chấp nhận hay không được chấp nhận bởi LBA. Vì đầu đọc của LBA không thể dịch chuyển ra ngoài phần chuỗi nhập nên chúng ta không cần định nghĩa các khoảng trống (ký hiệu Blank) phía bên phải của $.
Ta gọi văn phạm cảm ngữ cảnh (Context Sensitive Grammar - CSG) là một hệ thống G (V, T, P, S), trong đó:
Ta định nghĩa ngôn ngữ do văn phạm cảm ngữ cảnh G sinh ra là
L(G) = { w w * và S * w}
L(G) được gọi là ngôn ngữ cảm ngữ cảnh (Context Sensitive Language - CSL). Thuật ngữ “cảm ngữ cảnh” có xuất xứ từ một dạng chuẩn của văn phạm dạng này, trong đó mỗi luật sinh có dạng 1A2 12 với , cho thấy một biến A chỉ có thể được thay thế bởi một chuỗi (khác rỗng) trong “ngữ cảnh” 1 - 2. Điều đó không giống như trong văn phạm phi ngữ cảnh, với các luật sinh có dạng A ( 0), sự thay thế này không đòi hỏi ngữ cảnh.
Thí dụ 8.1 : Xét CSG G (V, T, P, S) với V ={ S, B, C}, ={a, b, c} và P gồm các luật sinh như sau :
1) S aSBC
2) S aBC
3) CB BC
4) aB ab
5) bB bb
6) bC bc
7) cC cc
Một cách phi hình thức, bằng cách áp dụng một số luật sinh cho các chuỗi dẫn xuất sinh ra ngôn ngữ, ta dễ thấy rằng văn phạm G sinh ra ngôn ngữ có dạng :
L = {anbncn n 1}
Thật vậy, với luật sinh (1) và (2) ta có chuỗi dẫn xuất S * an(BC)n. Sau đó, bằng cách áp dụng luật sinh (3), mọi biến B sẽ được thay thế lên trước các biến C trong chuỗi dẫn xuất : an(BC) * anBnCn. Bởi luật sinh (4) và (5), mọi biến B sẽ được thay thế thành các ký hiệu kết thúc b, và cuối cùng với (6) và (7), mọi biến C cũng sẽ được thay thế thành c. Tóm lại, ta có chuỗi dẫn xuất như sau :
S* an(BC)n * anBnCn * anbncn
Bài toán thành viên với CSG (Membership)
ĐỊNH LÝ 8.1 : Tồn tại giải thuật để xác định với mọi ngôn ngữ cảm ngữ cảnh CSG G(V, T, P, S) bất kỳ và một chuỗi nhập w T*, liệu chuỗi w có thuộc ngôn ngữ L(G) hay không.
Chứng minh
Giả sử w = n. Ta lập đồ thị mà mỗi đỉnh là một chuỗi thuộc (V T)* có độ dài nhỏ hơn hoặc bằng n, có một cung từ đỉnh đến đỉnh nếu G . Như vậy một đường trong đồ thị đó tương ứng với một suy dẫn trong G. Vậy w L(G) khi và chỉ khi có một đường đi từ đỉnh bắt đầu S tới đỉnh w trong đồ thị. Dùng bất cứ giải thuật nào cho phép tìm đường nối hai đỉnh trong đồ thị (đã có nhiều thuật toán như thế), ta sẽ xác định được phải chăng đã có đường đi từ đỉnh S tới đỉnh w.
Notification Switch
Would you like to follow the 'Giáo trình tin học lý thuyết' conversation and receive update notifications?