Làm thế nào để chuyển đổi một ngữ pháp miễn phí ngữ cảnh không nhúng sang ngữ pháp thông thường?


7

Xin lưu ý rằng tôi nhận thấy tính không ổn định của việc chuyển đổi ngữ pháp không ngữ cảnh sang ngữ pháp thông thường. Nhưng với đặc tính không nhúng của ngữ pháp không ngữ cảnh đầu vào, có thuật toán nào để chuyển đổi nó thành ngữ pháp thông thường, hoặc DFA trực tiếp không?


Bạn có ý nghĩa gì bởi "tài sản không nhúng"?
DW

Câu trả lời:


4

Kiểm tra liên kết này . Đây là phiên bản đơn giản hơn của một bằng chứng của Chomsky rằng ngữ pháp NSE đại diện cho các ngôn ngữ thông thường. May mắn thay, kỹ thuật chứng minh minh họa cách xây dựng một ngữ pháp thông thường trái từ một ngữ pháp NSE nhất định. Đây là lời giải thích của tôi:

  1. Đối với mỗi |V|(|V|+1)/2 cặp (v1,v2) các yếu tố của V, quyết định xem v1v2 dựa trên định nghĩa đã cho: v1v2 nếu v2:=Vv1V.
  2. Xây dựng các lớp tương đương sao cho nếu v1v2v2v1, v1v2là trong cùng một lớp tương đương. Đây sẽ là một phân vùng của tất cả các yếu tố củaV thành một hoặc nhiều lớp tương đương.
  3. Bây giờ, cho mỗi cặp (VE1,VE2) của các lớp tương đương của V như mô tả ở trên, xác định xem VE1VE2 bằng cách kiểm tra xem v1 trong VE1v2 trong VE2.
  4. Xây dựng bộ UE tương ứng với các lớp tương đương VE như vậy nếu VEiVEk, VEi là một tập hợp con của UEk. MỗiUEk cũng phải chứa bộ chữ cái E. Bạn sẽ có mộtUE cho mỗi VEvà mỗi UE sẽ chứa các biến trong các lớp tương đương "nhỏ hơn" tương ứng VE, ngoài tất cả các ký hiệu bảng chữ cái.
  5. Mục đích P(v) cho mỗi biến v như sau: P(v) là tập hợp của tất cả các sản phẩm trong P bên trái của nó thuộc về lớp tương đương chứa biến v.
  6. Đối với mỗi biến v, xây dựng một ngữ pháp như sau: G(v)=(VEUE,UE,P(v),v), Ở đâu VE là lớp tương đương có chứa vUE là một trong những tương ứng với VE.
  7. Các tác giả đã chứng minh một bổ đề mà tuyên bố rằng G(v)là một ngữ pháp tuyến tính. Từ đó, chúng ta có thể viết các biểu thức chính quyUE cho mỗi biến v. Lưu ý rằng đối vớiUE tương ứng với "nhỏ nhất" VE, biểu thức chính quy này sẽ chỉ chứa các ký hiệu từ bảng chữ cái gốc E.
  8. Lặp lại thay thế các biểu thức chính quy chỉ chứa các biểu tượng bảng chữ cái thành các biểu thức chính quy phức tạp hơn thu được từ bước 7. Cuối cùng, bạn sẽ có một biểu thức chính quy tương ứng với ngôn ngữ được tạo từ biểu tượng bắt đầu ban đầu Svà biểu thức chính quy này sẽ chỉ chứa các ký hiệu bảng chữ cái từ bảng chữ cái gốc.
  9. Bây giờ bạn có một biểu thức chính quy cho ngữ pháp NSE và có thể thu được DFA tối thiểu bằng định lý của Kleene, cấu trúc tập hợp con và thuật toán tối thiểu hóa DFA.

Nếu bạn muốn có một ví dụ, tôi có thể thử cung cấp một ví dụ sau. Cố gắng tự làm một vài cái, đọc bài báo (nó ngắn) và chúng ta có thể nói về sự phức tạp sau này.


Woa, cái này cần một số định dạng tình yêu, Patrick!
Raphael

@Raphael Vâng, SO không sử dụng LaTeX, vì vậy tôi đã làm hết sức vào thời điểm đó. Tôi không mong chờ điều đó, nhưng cuối cùng tôi cũng sẽ hiểu được, nếu ai đó không đánh bại tôi.
Patrick87
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.