2010-02-22 26 views
12

Trong một CS dĩ nhiên là tôi đang tham gia có một ví dụ về một ngôn ngữ mà không phải là thường xuyên:Tại sao {a^nb^n | n> = 0} không thường xuyên?

{a^nb^n | n >= 0} 

tôi có thể hiểu rằng nó không phải là bình thường vì không có hữu hạn Nhà nước Automaton/Máy có thể được viết rằng xác nhận và chấp nhận đầu vào này vì nó thiếu một thành phần bộ nhớ. (Vui lòng sửa tôi nếu tôi sai)

wikipedia entry on Regular Language cũng liệt kê ví dụ này, nhưng không cung cấp bằng chứng (toán học) tại sao nó không phải là thường xuyên.

Ai có thể khai sáng cho tôi về điều này và cung cấp bằng chứng cho điều này hay chỉ cho tôi một tài nguyên tốt?

Trả lời

11

Điều bạn đang tìm kiếm là Pumping lemma for regular languages.

Dưới đây là một example với vấn đề của bạn chính xác:

Ví dụ:
Hãy L = {a m b m | m ≥ 1}.
Sau đó, L không thường xuyên.
Bằng chứng: Hãy để n được như trong Bơm Bổ đề.
Cho phép w = a n b n.
Hãy để w = xyz như trong Pumpma Lemma.
Do đó, xy z ∈ L, tuy nhiên, xy z chứa số tiền nhiều hơn số.

+0

Cảm ơn, chỉ là những gì tôi đang tìm kiếm. –

+6

khiếu nại cuối cùng cần giải thích tốt hơn. Từ x2yz sẽ chứa nhiều chữ cái của một loại (nếu y có nhiều chữ cái hơn b hoặc ngược lại), hoặc sao chép nó sẽ làm hỏng thứ tự chữ cái, trong đó b sẽ xuất hiện sau tất cả các chữ cái. –

+5

bằng chứng không đầy đủ. bạn chưa xác định x, y, z. x chỉ có giới hạn đó | xy | <= p, trong đó p là chiều dài bơm. bạn phải chia nhỏ bằng chứng của bạn trong ba trường hợp, với chuỗi y dựa trên (a | ab | b) để nó được hoàn thành. xy cũng có thể chứa nhiều hơn b của a: x = a, y = b^n, z = b – oligofren

6

Vì bạn không thể viết một máy trạng thái hữu hạn sẽ 'đếm' các chuỗi ký tự 'a' và 'b' giống hệt nhau. Tóm lại, FSM không thể 'đếm' được. Hãy thử tưởng tượng một FSM như vậy: bạn sẽ đưa ra bao nhiêu trạng thái cho ký hiệu 'a'? Bao nhiêu 'b'? Điều gì xảy ra nếu chuỗi nhập liệu của bạn có nhiều hơn?

Lưu ý rằng nếu bạn có n < = X với X một giá trị số nguyên bạn có thể chuẩn bị FSM đó (bằng cách có một với nhiều trạng thái, nhưng vẫn là số hữu hạn); ngôn ngữ như vậy sẽ là thường xuyên.

0

Tự động hữu hạn Nhà nước không có cấu trúc dữ liệu (ngăn xếp) - bộ nhớ như trong trường hợp đẩy xuống tự động. Yeah nó có thể cung cấp cho bạn một số 'a's theo sau bởi một số' b nhưng không chính xác số tiền của 'a' theo sau là không 'b'.

Các vấn đề liên quan