Các tập hợp độ dài từ có thể có trong một ngôn ngữ thông thường là gì?


14

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 }LLL

LS(L)={|u|uL}

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:


14

Đầu tiên, một quan sát không quan trọng nhưng tiện lợi: tập hợp S gồm các bộ số nguyên là LS(L) cho một số ngôn ngữ thông thường L trên bảng chữ cái không trống A 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 L ; độ dài của các từ trong L 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 a 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 {a} . Ngược lại, nếuL 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: LS(L)={nNanL} . Những ngôn ngữ như vậy được gọi là ngôn ngữ đơn nguyên.

Hãy L 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 L . Tập hợp độ dài các từ của L 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ừ 0 đến h 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ừ 0 đến h theo sau đầu danh sách và h đến h+r dọc theo vòng lặp.

list-shaped automata

Đặt F là tập hợp các chỉ số của các trạng thái chấp nhận lên đến hG là tập hợp các chỉ số của các trạng thái chấp nhận từ h đến h+r . Sau đó

LS(L)=F{kr+xxG,kN}

Ngược lại, chúng ta hãy hr là hai số nguyên và FG là hai tập hữu hạn các số nguyên như vậy mà xF,xhxG,hxh+r . Khi đó tập hợp LF,G,r={akr+xxG,kN}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àaFaG(ar) .

Để 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 N{false,true} mà chúng tôi nhấc lên để một hàm Z{false,true} ) 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 [h,+[ có thể được kéo dài thành một chức năng định kỳ.


Quan sát của bạn về sự không liên quan của bảng chữ cái cho thấy định lý của Parikh có thể được áp dụng. Cụ thể, bạn chỉ ra rằng LS (L) = LS (L ') trong đó trong L' tất cả các chữ cái được thu gọn thành một bảng chữ cái duy nhất. Nhưng LS (L ') là ánh xạ Parikh của ngôn ngữ L, được biết đến là semilinear cho bất kỳ ngôn ngữ thông thường nào.
Suresh

Cách tiếp cận tốt đẹp! 1) Tôi nghĩ rằng đoạn đầu tiên có thể được thay thế bằng lưu ý rằng các ngôn ngữ thông thường được đóng lại chống lại sự đồng hình chuỗi. 2) Để rõ ràng, bạn nên xem xét cho phần thứ hai của như { h + k r + ( x - h ) | ... } , modulo off-by-one-lỗi. 3) Tập hợp số nguyên "định kỳ" là gì? LS(L){h+kr+(xh)}
Raphael

1
@Suresh, Raphael (1): Tôi thích nêu ra bằng chứng một cách cơ bản, không phải sự đồng hình hay ánh xạ Parikh được đề cập trong lớp CS 102 của tôi.
Gilles 'SO- ngừng trở nên xấu xa'

@Raphael (2) Khi bạn bắt đầu lập chỉ mục không thành vấn đề, tôi có thể loại bỏ điều kiện h G , vì F có thể hấp thụ nhiều yếu tố nhỏ như chúng ta muốn. (3) Một tập hợp định kỳ trên một giá trị nhất định là một tập hợp có thể được đặt ở dạng hiển thị ở trên. GhGF
Gilles 'SO- ngừng trở nên xấu xa'

5

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à { ε } ).{1,,n}NL{0}L{01,,0n}{ε}

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 L 2 . Thật dễ dàng để thấy rằngr1,r2L1L2

  • .LS(L(r1+r2))=LS(L1L2)=LS(L1)LS(L2)
  • LS(L(r1r2))=LS(L1L2)={1+2:1LS(L1),2LS(L2)}. This is denoted LS(L1)+LS(L2).
  • LS(L(r1))={0}n1{i=1ni:(1,,n)(LS(L1))n}.

Thus, the possible sets of integers that can be the length-set of a regular language are the ones that are finite subsets of N or that can be built by taking finite subsets S1,S2 of N 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 N, 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.


I don't see any final answer. (Were you intending to finish your answer later?) I was hoping for a simple description of the possible sets, and a connection with automata.
Gilles 'SO- stop being evil'

The final answer is there: "Thus, the possible sets of integers...". That is indeed a simple description, though connected with regular expressions, not automata.
Janoma

There's a simpler description that doesn't involve taking a fixpoint. Maybe this question isn't as elementary as I thought!
Gilles 'SO- stop being evil'

I don't think you can avoid the last rule, since it is the star operator the one which can produce infinite length-sets, just as it produces infinite languages.
Janoma

@Gilles So you want a closed form of the smallest fixpoint of the inductive solution Janoma provides?
Raphael

2

nxn

x=uvw
|uv|<n
|v|>0
uvkwL

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 n, plus some multiple of an undetermined value m (the length of v), 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:

{a+bn|nN}S
For fixed a,bN and all finite sets S, by the pumping lemma for regular languages (thanks to Gilles for pointing out a silly mistake in my original version, whereby I was defining the set N).

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 bn part comes from the Kleene star, the a 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.


1
{a+bna,b,nN}S is on the right track, but you got a quantifier wrong somewhere, you're generating N.
Gilles 'SO- stop being evil'

1
The analysis for the complement of a length set may be a bit delicate. If L=L(a) over the alphabet Σ={a,b}, then the length set of L is N and the length set of L¯ is N+, and these are not complement of each other.
Janoma

@Gilles But the set of all natural numbers is a valid length set, right? I'm not generating all subsets of natural numbers, right? I agree that would be problematic. Edit: oh wait, I see what you're saying. Yes, you're right. Will fix when back at computer.
Patrick87

@Janoma Excellent point, will need to consider how that might change the set of things I'm defining...
Patrick87
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.