9

Tôi đã lấy lý thuyết về các kỳ thi tính toán của tôi vài tuần trước, và đây là một trong những câu hỏi:

Giả sử ngôn ngữ L= ={(mộtnbm)r|n,m,r0}

L có thường xuyên không? Nếu có cung cấp một biểu thức chính quy hoặc một máy tự động cho nó.

Sau khi tôi hỏi ông một thời gian ngắn câu trả lời sau khi thi, dường như nó thực sự là bình thường (tôi tin rằng ông nói sự biểu hiện là đơn giản ). Tuy nhiên tôi dường như không thể hiểu tại sao lại như vậy. Cách tôi nhìn thấy nó, nó nối liền một n b m r lần, như thế này:(một*b*)*mộtnbm

,mộtnbmmộtnbmmộtnbm...mộtnbmmộtnbm

vốn không thường xuyên vì không có cách nào để máy tự động gọi lại nm mỗi lần. Tôi có lỗi ở đâu?

EDIT: Tôi đã nói chuyện với giáo sư một lần nữa, anh ấy thừa nhận đó là một sai lầm. Ngôn ngữ thực sự không thường xuyên.


14
Bạn nên hỏi giáo viên của bạn cho dù ngôn ngữ là giống như các ngôn ngữ K = { một n 1 b m 1 một n 2 b m 2một n r b n r | r 0 , một 1 , ... , một r0 , b 1 , ĐI , b r0 }LK= ={mộtn1bm1mộtn2bm2mộtnrbnr|r0,một1,Giáo dục,mộtr0,b1,Giáo dục,br0}. Nếu anh ta nói "có" thì hãy nói với anh ta rằng tôi đã nói với bạn câu hỏi của anh ta không đúng mực.
Andrej Bauer

1
Đó dường như là cách duy nhất có thể là thường xuyên, và trên thực tế đây là điều mà ban đầu tôi vội vàng nghĩ và thực sự xem xét (a b ) *, nhưng sau đó xóa nó nhận ra n và m vẫn giữ nguyên (hoặc nên ..), và đưa ra một bổ sung bơm không chấp thuận cho r = 2, nói rằng áp dụng tương tự cho r lớn hơn (có thể không chính xác là một giải pháp hoàn chỉnh nhưng nó dường như đang đi đúng hướng). Không cần phải nói, tôi đã nhận được 0 cho câu hỏi đó. Tôi sẽ thử liên lạc với anh ấy.

Tôi chắc chắn sẽ hiểu câu hỏi theo cách bạn đã làm ban đầu.
Andrej Bauer

Xem ở đây để biết thêm cách để chỉ ra rằng một ngôn ngữ không thường xuyên.
Raphael

bạn cũng có thể chứng minh điều tương tự với sự trợ giúp của việc bơm bổ đề
SAHIL THUKRAL

Câu trả lời:


10

Ngôn ngữ không thường xuyên, như có thể được chứng minh bằng phương pháp của Nerode. Hãy xem xét những lời sau đây w n = một n b cho n N . Sau đó, w 2 nL , nhưng đối với n m , w n w mL . Do đó, bất kỳ thiết bị tự động nào cho L phải ở trạng thái khác sau khi đọc từng w n , điều này mâu thuẫn với độ chính xác của nó.Lwn= =mộtnbnNwn2LnmwnwmLLwn


4

Trong bình luận của bạn, bạn gợi ý rằng bạn (trích dẫn) "đã đưa ra sự từ chối bổ đề cho , nói điều tương tự được áp dụng cho r lớn hơn ".r=2r

Điều này thực sự có thể được chính thức hóa bằng cách áp dụng một tài sản đóng cửa. Các ngôn ngữ thông thường được đóng dưới giao lộ. Vì vậy, nếu là bình thường, sau đó như vậy sẽ được L một * b một * b = { một n b một n b | n 0 } , thiết lập một cách hiệu quả r = 2m = 1 .LLmột*bmột*b= ={mộtnbmộtnb|n0}r= =2m= =1


1
Bạn đọc thân mến, xin đừng bỏ đi "nếu không thường xuyên, thì L L " cũng không ở đây - vì đó chỉ là sai! LL'L
Raphael

1
@Raphael Phải. Vì vậy, ý nghĩa đúng sẽ là "nếu là không thường xuyên, sau đó không phải là L ", trong đó R là thường xuyên. LRLR
Hendrik ngày

1
Tất nhiên. Tôi lo ngại rằng người mới có thể đọc "cài đặt hiệu quả ..." và áp dụng điều này mà không cần sử dụng thuộc tính đóng.
Raphael

0

Ngôn ngữ: {(a n b m ) r | n, m, r≥0}không thường xuyên, bởi vì trong khi automaton / máy đọc trình tự đầu tiên của chữ 'a' và sau đó chữ 'b', nó cần phải đếm số lần nó đọc chữ 'a' và số lần nó đọc chữ 'b' trong chuỗi đầu tiên để biết giá trị của nm .

Nếu r> 1 thì khác cùng chuỗi các chữ cái 'a' và chữ 'b' được mong đợi.

Nếu máy tự động / máy không biết có bao nhiêu chữ cái 'a' và chữ cái 'b' nó đọc trong chuỗi đầu tiên thì nó cũng không biết giá trị của nm và do đó nó không biết nếu các chuỗi khác từ thứ hai đến cuối cùng là các từ bằng với chuỗi đầu tiên.

Nhưng người ta biết rằng chỉ có máy Turing mới có thể đếm và biết các giá trị của nm và nhận ra ngôn ngữ ở trên, do đó, không chỉ ngôn ngữ ở trên không phải là thông thường, mà ngay cả nó cũng không phải là ngữ cảnh, tức là cũng không không tồn tại tự động đẩy xuống để nhận ra ngôn ngữ này và không tồn tại ngữ pháp tự do ngữ cảnh mà mỗi từ xuất phát từ ngữ pháp tự do ngữ cảnh đó nằm trong ngôn ngữ trên.

Bởi vì thực tế là cả máy tự động hữu hạn xác định và máy tự động hữu hạn đẩy đều không đếm và biết các giá trị của nm , không giống như máy Turing, chúng không nhận ra ngôn ngữ trên và do đó ngôn ngữ trên không phải là ngữ cảnh và không thường xuyên.

Ví dụ cho giả định rằng ngôn ngữ trên là chính quy:

Với n = 3 ∧ m = 5 ∧ r = 2 , từ sau có trong ngôn ngữ trên:

aaabbbbbaaabbbbb

Nhưng từ sau không có trong ngôn ngữ:

aaabbbbbaaaaabbb, vì không tồn tại n, mr nên:

(a n b m ) r = aaabbbbbaaaaabbb, vì để thỏa mãn chuỗi chữ cái đầu tiên 'a' và sau đó là chữ cái 'b', phải đúng là n = 3 m = 5 và bởi vì chúng ta thấy 2 chuỗi chữ cái ' a 'và sau đó là chữ cái' b ', sau đó r = 2 , nhưng nếu n = 3 ∧ m = 5 ∧ r = 2 thì (a n b m ) r = (a 3 b 5 ) 2 = (aaabbbbb) 2 = aaabbbbbaaabbbbb ≠ aaabbbbbaaaaabbb, vì hậu tố của chúng khác nhau, tức là aaabbbbb ≠ aaaaabbb, mặc dù tiền tố của chúng bằng aaabbbbb cho r = 1.

Máy tự động hữu hạn xác định "tốt nhất" có thể được xây dựng cho ngôn ngữ này là máy tự động hữu hạn xác định nhận ra biểu thức chính quy (a * b *) *, nhưng nó không nhận ra ngôn ngữ trên, vì nó nói rằng cả hai từ aaabbbbbaaabbbbb và aaabbbbbaaaaabbb là ngôn ngữ và điều này không đúng, bởi vì aaabbbbbaaabbbbb là ngôn ngữ, nhưng aaabbbbbaaaaabbb không phải là ngôn ngữ.

Ngay cả tự động đẩy xuống hữu hạn cũng không thể biết cả hai từ có trong ngôn ngữ hay không, vì vậy chỉ có máy Turing mới có thể.

Trong chuỗi thứ hai, máy Turing thấy rằng n = 5 m = 3 và điều này mâu thuẫn với trình tự thứ nhất, nó thấy rằng n = 3 m = 5 , vì vậy nó nói rằng từ thứ hai không có trong ngôn ngữ , nhưng không có mâu thuẫn được tìm thấy trong từ đầu tiên.

Cả hai chuỗi đều thỏa mãn rằng n = 3 ∧ m = 5 , vì vậy máy Turing nói rằng từ đầu tiên có trong ngôn ngữ.

Chỉ máy Turing mới có thể, nếu nó đếm và ghi nhớ các giá trị của nm bằng cách viết giá trị của chúng lên băng và sau đó đọc chúng.

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.