Thuật toán để kiểm tra xem một ngôn ngữ có thường xuyên không


11

Có một thuật toán / thủ tục hệ thống để kiểm tra xem một ngôn ngữ có thường xuyên không?

Nói cách khác, cho một ngôn ngữ cụ thể dưới hình thức đại số (nghĩ về một cái gì đó giống như L={anbn:nN}), kiểm tra xem ngôn ngữ có thường xuyên hay không. Hãy tưởng tượng chúng tôi đang viết một dịch vụ web để giúp sinh viên với tất cả các bài tập về nhà của họ; người dùng chỉ định ngôn ngữ và dịch vụ web phản hồi bằng "thông thường", "không thường xuyên" hoặc "Tôi không biết". (Chúng tôi muốn dịch vụ web trả lời "Tôi không biết" càng ít càng tốt.) Có cách tiếp cận tốt nào để tự động hóa việc này không? Đây có phải là dễ kéo? Có thể quyết định được không (nghĩa là có thể đảm bảo rằng chúng ta không bao giờ cần phải trả lời "Tôi không biết")? Có các thuật toán hợp lý hiệu quả để giải quyết vấn đề này và có thể cung cấp câu trả lời khác ngoài "không biết" cho nhiều / hầu hết các ngôn ngữ có khả năng phát sinh trong thực tế không?

Phương pháp cổ điển để chứng minh rằng một ngôn ngữ không thường xuyên là bổ đề bơm. Tuy nhiên, có vẻ như yêu cầu thông tin chi tiết thủ công tại một số điểm (ví dụ: để chọn từ để bơm), vì vậy tôi không rõ liệu điều này có thể được biến thành một thuật toán hay không.

Một phương pháp cổ điển để chứng minh rằng một ngôn ngữ là thường xuyên sẽ là sử dụng định lý Nerode Myhill để lấy ra một máy tự động trạng thái hữu hạn. Đây có vẻ là một cách tiếp cận đầy hứa hẹn, nhưng nó đòi hỏi khả năng thực hiện các thao tác cơ bản trên các ngôn ngữ ở dạng đại số. Tôi không rõ liệu có một cách có hệ thống để thực hiện một cách tượng trưng tất cả các hoạt động có thể cần thiết, trên các ngôn ngữ ở dạng đại số.


Để làm cho câu hỏi này được đặt ra tốt, chúng ta cần quyết định cách người dùng sẽ chỉ định ngôn ngữ. Tôi mở để đề xuất, nhưng tôi đang nghĩ một cái gì đó như thế này:

L={E:S}

Trong đó là một biểu thức từ và S là một hệ bất đẳng thức tuyến tính trên các biến có độ dài, với các định nghĩa sau:ES

  • Mỗi là một từ thể hiện. (Chúng đại diện cho các biến có thể nhận bất kỳ từ nào trong Σ .)x,y,z,Σ

  • Mỗi là một từ thể hiện. (Ở đây x r đại diện cho mặt trái của chuỗi x .)xr,yr,zr,xrx

  • Mỗi là một từ thể hiện. (Mặc nhiên, Σ = { một , b , c , ... } , vì vậy một , b , c , ... đại diện cho một biểu tượng duy nhất trong bảng chữ cái cơ bản.)a,b,c,Σ={a,b,c,}a,b,c,

  • Mỗi là một từ thể hiện, nếu η là một chiều dài biến.aη,bη,cη,η

  • Sự kết hợp của các biểu thức từ là một biểu thức từ.

  • Mỗi là một chiều dài biến. (Chúng đại diện cho các biến có thể lấy bất kỳ số tự nhiên nào.)m,n,p,q,

  • Mỗi là một biến chiều dài. (Chúng đại diện cho độ dài của một từ tương ứng.)|x|,|y|,|z|,

Điều này dường như đủ rộng để xử lý nhiều trường hợp chúng ta thấy trong các bài tập trong sách giáo khoa. Tất nhiên, bạn có thể thay thế bất kỳ phương pháp văn bản nào khác để chỉ định một ngôn ngữ ở dạng đại số, nếu bạn có đề xuất tốt hơn.


Tôi chưa có thời gian để suy nghĩ nhiều về sự lựa chọn ngôn ngữ của bạn. Nó bao gồm những loại ngôn ngữ nào? Nếu bạn thêm các ràng buộc rằng một biến từ chỉ xảy ra một lần, tất cả các ngôn ngữ như vậy có ngữ cảnh không?
Gilles 'SO- ngừng trở nên xấu xa'

EE::=cηxEEErη::=n|x|

1
Bạn có thể diễn đạt để điều này vượt xa các ngôn ngữ không ngữ cảnh. Tuy nhiên, tôi nghi ngờ vấn đề ít nhất cũng khó như quyết định liệu một ngữ pháp không ngữ cảnh có định nghĩa một ngôn ngữ thông thường hay không. {anbncnnN}
Gilles 'SO- ngừng trở nên xấu xa'

@jmad, vâng, điều đó hoàn toàn hợp lý. Tôi không thích lựa chọn cách diễn đạt ngôn ngữ này: cứ thoải mái chọn thứ khác, nếu bạn thấy thứ gì khác phù hợp hơn. Gilles, góc tấn công tuyệt vời! (Đối với người xem, có kết quả đã biết cho thấy việc kiểm tra xem ngữ pháp không ngữ cảnh tùy ý xác định ngôn ngữ thông thường là không thể giải quyết được.) Nếu vấn đề là không thể giải quyết được, tôi đề nghị chúng tôi điều chỉnh vấn đề để cho phép dịch vụ web phản hồi "Tôi không 't biết ", và sau đó yêu cầu một thuật toán trả lời" Tôi không biết "càng hiếm khi càng tốt.
DW

Lớp này không đóng dưới ngôi sao Kleene, phải không? Bạn có thể thể hiện dấu ngoặc đơn cân bằng?
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


13

Câu trả lời là không. Quyết định xem một ngữ pháp không ngữ cảnh nhất định có tạo ra một ngôn ngữ thông thường hay không là một vấn đề không thể giải quyết được.

Cập nhật . Tôi đã đưa ra câu trả lời tiêu cực này cho câu hỏi chung

Đưa ra một ngôn ngữ được chỉ định ở dạng đại số, kiểm tra xem ngôn ngữ đó có thường xuyên hay không

vì các ngôn ngữ không ngữ cảnh là giải pháp của các phương trình đại số trong các ngôn ngữ: xem Chương II, Định lý 1.4 và 1.5 trong cuốn sách của J. Berstel Transductions và Ngôn ngữ không ngữ cảnh .

Tuy nhiên, câu hỏi tương tự có thể quyết định đối với các ngôn ngữ không có ngữ cảnh xác định, kết quả không cần thiết do Stearns [1] và được cải thiện bởi Valiant [2]:
[1] RE Stearns, Kiểm tra tính thường xuyên cho Máy đẩy xuống, Thông tin và Kiểm soát 11 323- 340 (1967). DOI: 10.1016 / S0019-9958 (67) 90591-8.
[2] LG dũng cảm. Tính thường xuyên và các vấn đề liên quan đối với automata đẩy xuống xác định J. ACM 22 (1975), trang 1 sừng10.

Có một kết quả tích cực khác, gần hơn với các thông số kỹ thuật được đưa ra trong phần thứ hai của câu hỏi. Hãy nhớ lại rằng các tập hợp semilinear của chính xác là các tập hợp có thể xác định trong số học Presburger. Ngoài ra còn có các tập hợp con hợp lý của . Cụ thể, một tập hợp con của được xác định bởi các bất đẳng thức tuyến tính là hợp lý. Bây giờ, với một tập hợp con hợp lý là , có thể quyết định liệu ngôn ngữ là thường xuyên. Thật vậy, người ta biết [Ginsburg-Spanier] rằng là thường xuyên khi và chỉ khi là tập con dễ nhận biết củaN k N k R N k L(R)={ u n 1 1 u n k k |( n 1 ,..., N k )R}L(R)R N k N kNkNkNkRNk

L(R)={u1n1uknk(n1,...,nk)R}
L(R)RNk và có thể quyết định [Ginsburg-Spanier] liệu một tập hợp con hợp lý nhất định của có thể nhận ra được không.Nk

S. Ginsburg và EH Spanier., Semigroups, công thức Presburger và ngôn ngữ , Pacific J. Math. 16 (1966), 285-296.

S. Ginsburg và EH Spanier. Giới hạn bộ thường xuyên , Proc. của toán học Mỹ. Sóc. 17 , 1043 Vang1049 (1966).

Điều này không giải quyết được phần thứ hai của câu hỏi, có thể là không thể giải quyết được do các biến từ, nhưng nó đưa ra một đoạn hợp lý để bắt đầu.


(a) Pedantic nit: Tôi không rõ liệu cú pháp đại số ở trên có đủ chung để diễn đạt tất cả các ngữ pháp không ngữ cảnh hay không (như Gilles và tôi đã gợi ý trong các nhận xét), vì vậy không rõ liệu kết quả cụ thể đó có áp dụng ở đây không . (b) Quan trọng hơn: vui lòng xem xét tuyên bố vấn đề được điều chỉnh phù hợp để dịch vụ web được phép trả lời "Tôi không biết" và chúng tôi muốn tìm một thuật toán trả lời "Tôi không biết" hiếm khi càng tốt Trước đây tôi đã đề xuất điều này trong các ý kiến; Tôi sẽ chỉnh sửa câu hỏi để làm cho câu hỏi này rõ ràng hơn trong chính câu hỏi.
DW

Tôi nghi ngờ rằng bạn có thể điều chỉnh bằng chứng, nhưng kết quả không tuân theo. Tôi nghĩ rằng có những ngôn ngữ không ngữ cảnh không thể được thể hiện trong chủ nghĩa hình thức này: ví dụ: làm thế nào để bạn thể hiện dấu ngoặc đơn cân bằng? Lớp ngôn ngữ không bị đóng dưới ngôi sao Kleene, phải không?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles, yeah, tôi đã nghĩ về điều đó. Nó không rõ ràng ngay lập tức cho tôi làm thế nào để thích nghi với bằng chứng. Bằng chứng tiêu chuẩn cho thấy không thể xác định được liệu ngữ pháp không ngữ cảnh có thường xuyên hay không là thông qua định lý của Greibach. Tuy nhiên, đối với tôi, lớp ngôn ngữ này không thỏa mãn các tiền đề của định lý Greibach (nó dường như không bị đóng cửa dưới sự kết hợp với các bộ thông thường và đóng dưới sự kết hợp). Có lẽ có một số cách tiếp cận bằng chứng khác mà tôi không quen thuộc. Tôi đồng ý, không rõ cách diễn đạt ngôn ngữ của dấu ngoặc đơn cân bằng ở dạng đại số này.
DW

Chỉ cần thêm các tài liệu tham khảo.
J.-E.

Bài viết của bạn không trả lời câu hỏi, bởi vì nó giải quyết một loại ngôn ngữ khác. Các hình thức đại số được phép ở đây (với một biểu thức từ) là (theo như chúng tôi có thể nói) không chung chung như các hình thức đại số cần thiết để diễn đạt các ngôn ngữ không có ngữ cảnh tùy ý. Nó có thể là trường hợp cho giao điểm của hai, vấn đề là có thể quyết định.
Gilles 'SO- ngừng trở nên xấu xa'
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.