Cho một ngôn ngữ , xác định tập hợp độ dài của L là tập hợp độ dài của các từ trong L : L S ( L ) = { | bạn | ∣ u ∈ L }
Những bộ số nguyên nào có thể là tập hợp độ dài của ngôn ngữ thông thường?
Cho một ngôn ngữ , xác định tập hợp độ dài của L là tập hợp độ dài của các từ trong L : L S ( L ) = { | bạn | ∣ u ∈ L }
Những bộ số nguyên nào có thể là tập hợp độ dài của ngôn ngữ thông thường?
Câu trả lời:
Đầu tiên, một quan sát không quan trọng nhưng tiện lợi: tập hợp gồm các bộ số nguyên là cho một số ngôn ngữ thông thường trên bảng chữ cái không trống không phụ thuộc vào lựa chọn bảng chữ cái. Để thấy điều đó, hãy xem xét một máy tự động hữu hạn nhận ra ; độ dài của các từ trong là độ dài của các đường dẫn trên máy tự động được xem như một biểu đồ không được gắn nhãn từ trạng thái bắt đầu đến bất kỳ trạng thái chấp nhận nào. Cụ thể, bạn có thể đặt lại tên cho mỗi mũi tên thành và lấy một ngôn ngữ thông thường có cùng độ dài được đặt trên bảng chữ cái . Ngược lại, nếu là ngôn ngữ thông thường trong bảng chữ cái một thành phần, nó có thể được đưa vào một bảng chữ cái lớn hơn và kết quả vẫn là ngôn ngữ thông thường.
Do đó, chúng tôi đang tìm kiếm các tập hợp độ dài có thể cho các từ trên bảng chữ cái đơn. Trên một bảng chữ cái singleton, ngôn ngữ là tập dài được viết ra trong unary: . Những ngôn ngữ như vậy được gọi là ngôn ngữ đơn nguyên.
Hãy là một ngôn ngữ thông thường, và xem xét một automaton hữu hạn xác định (DFA) công nhận . Tập hợp độ dài các từ của là tập hợp độ dài của các đường dẫn trong DFA được xem như một biểu đồ có hướng bắt đầu ở trạng thái bắt đầu và kết thúc ở một trong các trạng thái chấp nhận. Một DFA trên bảng chữ cái một thành phần khá thuần hóa (NFA sẽ hoang dã hơn): đó là danh sách hữu hạn hoặc danh sách tròn. Nếu danh sách là hữu hạn, đánh số các trạng thái từ đến theo thứ tự danh sách; nếu nó là hình tròn, hãy đánh số các trạng thái từ đến theo sau đầu danh sách và đến dọc theo vòng lặp.
Đặt là tập hợp các chỉ số của các trạng thái chấp nhận lên đến và là tập hợp các chỉ số của các trạng thái chấp nhận từ đến . Sau đó
Ngược lại, chúng ta hãy và là hai số nguyên và và là hai tập hữu hạn các số nguyên như vậy mà và . Khi đó tập hợp là một ngôn ngữ thông thường: nó là ngôn ngữ được công nhận bởi DFA mô tả ở trên. Một biểu thức chính quy mô tả ngôn ngữ này là .
Để tóm tắt bằng tiếng Anh, các bộ ngôn ngữ thông thường là các bộ số nguyên định kỳ trên một giá trị nhất định .
¹ Để treo vào một khái niệm cũng như thành lập , định kỳ phương tiện chức năng đặc trưng của các thiết lập (mà là một chức năng mà chúng tôi nhấc lên để một hàm ) là định kỳ. Định kỳ trên một phương tiện giá trị nhất định rằng chức năng giới hạn có thể được kéo dài thành một chức năng định kỳ.
Bất kỳ tập con hữu hạn có thể là chiều dài-set của một ngôn ngữ thường xuyên L , vì bạn có thể mất một bảng chữ cái unary { 0 } và xác định L như { 0 ℓ 1 , ... , 0 ℓ n } (điều này bao gồm các ngôn ngữ trống rỗng và { ε } ).
Bây giờ cho các bộ vô hạn. Tôi sẽ đưa ra một phân tích ngắn, mặc dù câu trả lời cuối cùng có thể không đủ rõ ràng. Tôi sẽ không giải thích trừ khi bạn yêu cầu tôi, bởi vì tôi nghĩ nó trực quan và vì bây giờ tôi không có nhiều thời gian.
Để là các biểu thức tạo ngôn ngữ L 1 và L 2 . Thật dễ dàng để thấy rằng
Thus, the possible sets of integers that can be the length-set of a regular language are the ones that are finite subsets of or that can be built by taking finite subsets of and using the previous formulas a finite number of times.
Here, we are using that regular languages are built, by definition, by applying the rules for constructing a regular expression a finite number of times. Note that we can start with any finite subset of , even though in regular expressions we start with words of length 0 and 1 only as the base case. This is easily justified by the fact that all (finite) words are (finite) concatenations of the symbols of the alphabet.
This gives us one test for sets: a set cannot be the length set of a regular language unless all its elements can be expressed as some arbitrary set of integers no greater than a fixed , plus some multiple of an undetermined value (the length of ), plus some arbitrary finite value.
In other words, it looks like the possible sets of language lengths for regular languages is the closure with respect to set union (as discussed under EDIT and EDIT2, thanks to commenters) of sets described as follows:
EDIT: A little more discussion. Certainly all finite sets of integers are length sets. Also, the union of two length sets must also be a length set, as must be the complement of any length set (hence intersection, hence difference). The reason for this is that the regular languages are closed under these operations. Therefore, the answer I give above is (possibly) incomplete; in reality, any union of such sets is also the length set of some regular language (note that I have abandoned requiring intersection, complement, difference, etc., since these are covered by the fact that regular languages are closed under these properties, as discussed in EDIT3; I think that only union is actually necessary, even if the others are right, which might not be the case).
EDIT2: Even more discussion. The answer I give is basically where you'd end up if you took Janoma's answer a little further; the part comes from the Kleene star, the comes from concatenation, and the discussion of union, intersection, difference and complement come from the + of regular expressions (as well as other closure properties of regular languages) provable starting from automata).
EDIT3: In light of Janoma's comment, let's forget closure properties of language length sets that I discuss in the first EDIT. Since the regular languages have these closure properties, and since every regular language has a DFA, it follows that the pumping lemma for regular languages applies to all unions, intersections, complements, and differences of regular languages, and we'll leave it at that; no need to even consider any of these, except union, which I still think might be necessary to make my original (modified, thanks to input from Gilles) correct. So, my final answer is this: what I say in the original version, plus the closure of language length sets with respect to set union.