Zunächst eine Beobachtung, die nicht entscheidend, aber zweckmäßig ist: Die Menge SS von Mengen von ganzen Zahlen, die L S ( L )LS(L) für eine reguläre Sprache LL auf einem nicht leeren Alphabet A sind,A hängt nicht von der Wahl des Alphabets ab. Betrachten Sie dazu einen endlichen Automaten, der LL erkennt . Die Längen der Wörter in LL sind die Längen der Pfade auf dem Automaten, die als unbeschrifteter Graph vom Startzustand bis zu einem beliebigen Akzeptanzzustand betrachtet werden. Insbesondere können Sie jeden Pfeil mit a neua beschriften und eine reguläre Sprache mit derselben Länge erhalten, die über dem Alphabet { a } festgelegt ist{a} . Umgekehrt, wennLL ist eine reguläre Sprache über einem Ein-Element-Alphabet, es kann trivial in ein größeres Alphabet eingefügt werden, und das Ergebnis ist immer noch eine reguläre Sprache.
Deshalb suchen wir nach den möglichen Längenmengen für Wörter über einem Singleton-Alphabet. In einem Singleton-Alphabet ist die Sprache die Länge, die in Unary geschrieben ist: L S ( L ) = { n ∈ N ∣ a n ∈ L }LS(L)={n∈N∣an∈L} . Solche Sprachen werden unäre Sprachen genannt.
Sei LL eine reguläre Sprache und betrachte einen deterministischen endlichen Automaten (DFA), der LL erkennt . Die Menge der Wortlängen von LL ist die Menge der Pfadlängen in der DFA, die als gerichteter Graph betrachtet wird, der im Startzustand beginnt und in einem der Akzeptanzzustände endet. Ein DFA auf einem Ein-Element-Alphabet ist ziemlich zahm (NFAs wären wilder): Es ist entweder eine endliche Liste oder eine kreisförmige Liste. Wenn die Liste endlich ist, nummerieren Sie die Zustände von 00 bis h inh der angegebenen Reihenfolge. Wenn es zirkulär ist, nummerieren Sie die Zustände von 00 bis hh nach dem Kopf der Liste und von hh bis h + rh+r entlang der Schleife.
Sei FF die Menge der Indizes der Akzeptanzzustände bis hh und GG die Menge der Indizes der Akzeptanzzustände von hh bis h + rh+r . Dann
L S ( L ) = F ∪ { kr + x ∣ x ∈ G , k ∈ N }LS(L)=F∪{kr+x∣x∈G,k∈N}
Umgekehrt seien hh und rr zwei ganze Zahlen und FF und GG zwei endliche Mengen von ganzen Zahlen, so dass such x ∈ F , x ≤ h∀x∈F,x≤h und ∀ x ∈ G , h ≤ x ≤ h + r sind∀x∈G,h≤x≤h+r . Dann ist die Menge L F , G , r = { a kr + x ∣x∈G,k∈ N }LF,G,r={akr+x∣x∈G,k∈N}ist eine reguläre Sprache: Es ist die Sprache, die von der oben beschriebenen DFA erkannt wird. Ein regulärer Ausdruck, der diese Sprache beschreibt, ist ein F ∣ ein G ( ein r ) ∗aF∣aG(ar)∗ .
In englischer Sprache sind die Längenmengen regulärer Sprachen die Mengen ganzer Zahlen, die oberhalb eines bestimmten Wertes periodisch¹ sind .
¹
Zum Aufhängen auf einen gut etablierten Begriff , periodische Mittel die charakteristische Funktion des Satzes (der eine Funktion ist N → { f ein l s e , t r u e }N→{false,true} , die wir auf eine Funktion heben Z → { f ein l s e , t r u e }Z→{false,true} ) ist periodisch. Periodisch ab einem bestimmten Wert bedeutet, dass die Funktion auf [ h , + ∞ [beschränkt ist.[h,+∞[ kann zu einer periodischen Funktion verlängert werden.
Any finite subset {ℓ1,…,ℓn}⊂N{ℓ1,…,ℓn}⊂N can be the lenght-set of a regular language LL , since you can take a unary alphabet {0}{0} and define LL as {0ℓ1,…,0ℓn}{0ℓ1,…,0ℓn} (this includes the empty language and {ε}{ε} ).
Now for the infinite sets. I'll give a short analysis, though the final answer might not be explicit enough. I won't elaborate unless you ask me to, because I think it's intuitive and because I don't have much time now.
Let r1,r2r1,r2 be regular expressions generating languages L1L1 and L2L2 , respectively. It is (sort of) easy to see that
Thus, the possible sets of integers that can be the length-set of a regular language are the ones that are finite subsets of NN or that can be built by taking finite subsets S1,S2S1,S2 of NN 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 NN , 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.
quelle
According to the pumping lemma for regular languages, there exists an nn such that a string xx of length at least equal to nn can be written in the following form: x=uvw
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 nn , plus some multiple of an undetermined value mm (the length of vv ), 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|n∈N}∪S
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 bnbn part comes from the Kleene star, the aa 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.
quelle