<< Chapter < Page Chapter >> Page >

: Q    (Q    { L, R})

phải thỏa mãn điều kiện:

  • Nếu (p, Y, E)  (q, ) thì Y =  và E = R
  • Nếu (p, Y, E)  (q, $) thì Y = $ và E = L

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à qow$ ⊢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 $.

Văn phạm cảm ngữ cảnh (csg)

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 đó:

  1. V là một tập hữu hạn các biến hay ký hiệu không kết thúc.
  2. T là một tập hữu hạn các ký hiệu cuối, V  T = 
  3. P là tập hữu hạn các luật sinh dạng    trong đó ,   (V  T)*, chuỗi  phải có chứa biến và ràng buộc    
  4. S  V là ký hiệu bắt đầu.

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 1A2  12 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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình tin học lý thuyết. OpenStax CNX. Jul 30, 2009 Download for free at http://cnx.org/content/col10826/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình tin học lý thuyết' conversation and receive update notifications?

Ask