Chứng minh tính thường xuyên của một ngôn ngữ nhất định


7

Tôi đã loay hoay với vấn đề này trong một giờ qua, và tôi vô cùng bối rối.

Đặt . Cho thấy là thường xuyên.A={0ku0kk1 and uΣ}Một

Ngôn ngữ rõ ràng thỏa mãn Bổ đề bơm, nhưng đó không phải là kết luận cho sự đều đặn. Làm thế nào trên trái đất để tôi chứng minh rằng ngôn ngữ này là thường xuyên? Tôi biết tất cả các phương pháp thông thường (đóng cửa, v.v.), nhưng tôi không thể tìm ra điều kiện thích hợp để tiếp tục.

Câu trả lời:


14

Đây là một câu hỏi mẹo. Bạn có thể tìm thấy một hình thức đơn giản hơn để mô tả ngôn ngữ.


... Và vâng, tôi biết giải pháp, nhưng nghĩ rằng sẽ hữu ích hơn nếu đưa ra một cú huých đúng hướng thay vì viết nó đầy đủ. Chỉ là ý tưởng của tôi.
Hendrik ngày 1 tháng

10

Ngôn ngữ có thể được viết lại thành A={0u0uΣ}.

Ý tưởng cơ bản là không có vấn đề gì k là, tất cả được "hấp thụ" vào u đó là ngôn ngữ hoàn chỉnh Σ.


nhưng vì 'u' là ngôn ngữ hoàn chỉnh không thể là chuỗi trống? Điều gì sẽ có ý nghĩa nếu 'u' là chuỗi rỗng?
Shubham Singh rawat

@ShubhamSinghrawat Có, nhưng điều đó không có hàm ý. Hãy nhớ một ngôn ngữ là thường xuyên nếu có DFA nhận ra nó. xem xét từw=03ϵ03A. Câu trả lời này cho bạn biết rằng bạn thay vì nhìn nó theo cách đó bạn có thể xem nó là từw=01u01 với u=0202Σ và bạn có thể thấy rằng điều này phù hợp với định nghĩa của các từ trong A, nhưng cũng là định nghĩa của câu trả lời này. Cuối cùng, DFA cho A chỉ đơn giản là: kiểm tra xem chữ cái đầu tiên có phải là0 và lá thư cuối cùng là 0, mọi thứ khác không quan trọng.
Bakuriu

Nếu điều đó không đủ rõ ràng, một NFA nhận ra A Chỉ là N=(Q,Σ,Δ,q0,{q2}) với Q={q0,q1,q2}
Δ={(q0,0,q1),(q1,0,q2),(q2,0,q2)}{(q1,x,q1)xΣ{0}}{(q2,x,q1)xΣ{0}}
và trên thực tế, đây gần như là một DFA ngoại trừ việc nó không hoàn toàn ...
Bakuriu

8

Nếu đó là ngôn ngữ này:

B={0k1u10kk1 and uΣ}

bạn sẽ gặp rắc rối Bkhông thường xuyên.

Vấn đề chính là khi cố gắng nhận ra chuỗi từ B, bạn cần "nhớ" một lượng thông tin không giới hạn từ chuỗi ban đầu của 0s (có bao nhiêu), bởi vì bạn cần phân biệt giữa các chuỗi như 0k1...10k và những người như 0k1...10j (Ở đâu jk). Các biểu thức thông thường (hoặc DFA) không thể biểu thị loại "bộ nhớ không giới hạn" này.

A Có vẻ như nó có cùng một vấn đề, nhưng thực sự không cần phải phân biệt các trường hợp "cân bằng" và "không cân bằng". Đối với bất kỳ chuỗi0ku0j (có hay không jkbằng nhau, nhưng cả hai đều có ít nhất 1), bạn cũng có thể viết nó dưới dạng0v0, Ở đâu v=0k1u0j1. Một chuỗi như vậy cũng đáp ứng quy tắc choAchuỗi (bằng cách chọn k=1u=v), và do đó, nó thực sự không quan trọng rằng việc dẫn đầu và theo dõi 0s đã được cân bằng sau khi tất cả.

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.