Những loại ngôn ngữ là cần thiết để nhận ra một danh sách theo thứ tự? [automata đa đầu, rõ ràng]


8

Tôi đang xem xét vấn đề nhận dạng ngôn ngữ (trên bảng chữ cái 0-9 và dấu cách) có chứa các chuỗi như "1 2 3 4 5 6" và "14 15 16 17" chứ không phải "1 3".

Điều này xuất hiện trong khi làm việc trên một nhiệm vụ phân tích cú pháp phổ biến trong đó các yếu tố cần có trong một danh sách được sắp xếp. Tôi nhận ra rằng trong khi phân tích phần còn lại của ngôn ngữ đó là thông thường, phần này rõ ràng không đều - ví dụ, ngôn ngữ A1A2 trong đó A là một chuỗi tùy ý 0-9. Trong thực tế, nó có vẻ nhạy cảm với nội dung (và không có ngữ cảnh bởi bổ đề bơm).

Câu hỏi đầu tiên của tôi: có một loại ngôn ngữ (khá nổi tiếng, nghĩa là không được xác định chỉ cho vấn đề này) giữa các ngôn ngữ nhạy cảm và không ngữ cảnh mô tả sức mạnh biểu cảm của nó tốt hơn? Tôi đã đọc về các ngôn ngữ được lập chỉ mục của Aho, nhưng đối với tôi không rõ ràng về những ngôn ngữ này, thậm chí nó còn ở trong lớp đó, mạnh mẽ.

Câu hỏi thứ hai của tôi là không chính thức. Có vẻ như ngôn ngữ này dễ phân tích, và nó rất cao trong hệ thống phân cấp. Có phải là thông thường để đi qua các ví dụ tương tự và có một cách tiêu chuẩn để đối phó với chúng? Có một nhóm các ngôn ngữ khác nhau không tương thích với việc đưa vào các ngôn ngữ 'thông thường' không?

Lý do của tôi để nghĩ rằng điều này là dễ dàng: ngôn ngữ có thể được phân tích cú pháp một cách xác định, bằng cách đọc cho đến khi bạn đến cuối số đầu tiên, kiểm tra xem số tiếp theo có tiếp theo hay không. Cụ thể, nó có thể được phân tích cú pháp trong thời gian O (n) với không gian O (n); không gian có thể giảm xuống không có quá nhiều rắc rối, tôi nghĩ vậy. Nhưng nó đủ khó để có được hiệu suất như vậy với các ngôn ngữ thông thường, chứ đừng nói đến ngữ cảnh.O(n)


Bổ đề bơm được sử dụng để phân biệt các ngôn ngữ không ngữ cảnh với các ngôn ngữ thông thường và không phải từ các ngôn ngữ nhạy cảm theo ngữ cảnh. Vì vậy, chắc chắn rằng ngôn ngữ của bạn không thường xuyên, nhưng tôi nghĩ nó có thể không có ngữ cảnh ...
Benoît Fraikin

2
@ Benoît Fraikin: Tôi đang sử dụng bổ đề bơm 'của người khác'.
Charles

Bổ đề Bar-Hillel ... đây là sự hiểu lầm của tôi ^ _ ^
Benoît Fraikin

Câu trả lời:


7

Nghe có vẻ như những gì bạn đang tìm kiếm là automata đa đầu (trong trường hợp của bạn, automata hữu hạn xác định 1 đầu 2 chiều sẽ đủ). Tôi không thực sự là một chuyên gia về những điều này, nhưng google đưa ra một số khảo sát thú vị về hệ thống phân cấp ngôn ngữ này, chẳng hạn như

Marek Chrobak: Hệ thống phân cấp của automata đa đầu một chiều, http://www.scTHERirect.com/science/article/pii/0304397586900939

Điều này cũng đưa ra một câu trả lời cho câu hỏi thứ hai của bạn: Hệ thống phân cấp của automata n-head nằm "trên" hệ thống phân cấp Chomsky.


Điều đó thực sự tuyệt vời. Tôi ngạc nhiên - và hài lòng - khi thấy sự tồn tại của một lớp như vậy.
Charles

3
@Marek có trên trang này: có thể anh ta sẽ cân nhắc :)
Suresh Venkat

3
Bài báo đó đã được viết ở kiếp trước của tôi ;-) Vâng, nếu tôi hiểu vấn đề, ngôn ngữ này có thể được chấp nhận bởi máy tự động 2 đầu một chiều. Vì vậy, nó cũng trong LOGSPACE.
Marek Chrobak
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.