Kleene Stern einer unendlichen unären Sprache ergibt immer eine reguläre Sprache


8

Sei , wobei a 0 = ϵ und a n = a n - 1 a für alle n ≥ 1 sind .L={an∣n≥0}a0=ϵan=an−1an≥1

Somit besteht aus Sequenzen a aller Längen, einschließlich einer Sequenz der Länge 0 . Lassen L 2 sein , jede unendliche Teilmenge von L . Ich muss zeigen, dass es immer einen DFA gibt, um L ∗ 2 zu erkennen .La0L2LL2∗

Wenn eine endliche Teilmenge ist, ist es sehr offensichtlich, da L 2 ein DFA wäre und daher durch Kleene-Schließung L ∗ 2 von einem DFA erkannt würde. Ich kann es jedoch nicht für eine unendliche Teilmenge erhalten, da L 2 möglicherweise nicht als DFA ausgedrückt wird, wenn z. B. Zeichenfolgenlängen Primzahlen sind.L2L2L2∗L2

Antworten:


8

Angenommen, die Sprache enthält zwei Wörter, deren Länge relativ prim ist. Diese Längen seien und y . Wir wissen (siehe dies ), dass wir durch wiederholtes Addieren dieser Zahlen jede Zahl größer als ( x - 1 ) ( y - 1 ) - 1 erhalten können . Also , wenn x und y sind 13 und 7 , können wir eine beliebige Zahl größer als Schreib 72 als eine lineare Kombination von 7 und 13 . Was dies für uns bedeutet: L ∗ 2xy(x−1)(y−1)−1xy13772713L2∗besteht aus einer beliebigen endlichen Sprache (regular, als alle endlichen Sprachen), in der Vereinigung mit der Sprache . Diese Sprache ist regulär, da sie die Sprache aller Wörter ist, bei denen eine endliche Menge von Wörtern entfernt wurde. Da L ∗ 2 eine Vereinigung regulärer Sprachen ist, muss es auch regulär sein.{w∈a∗∣|a|>(x−1)(y−1)−1}L2∗

Wenn alle Wörter in Längen haben, die einen größten gemeinsamen Faktor haben (nennen Sie diesen gemeinsamen Faktor m ), wiederholen Sie das obige Argument, verwenden Sie jedoch anstelle von Zeichenfolgenlängen Zeichenfolgenlängen geteilt durch m . In diesem Fall L * 2 wird die Verkettung einer beliebigen endlichen Sprache (regular) und die Sprache seines { w ∈ ( eine m ) * | | w | > m 2 [ ( x / m - 1 ) ( y / mL2∗mmL2∗ , auch regulär (da $ (a ^ m) ^ * regulär ist und wir endlich viele Wörter daraus entfernen).{w∈(am)∗∣|w|>m2[(x/m−1)(y/m−1)−1]}

La4a10m=2x/m=4/2=2y/m=10/2=5mm2[(x/m−1)(y/m−1)−1]=22[(2−1)(5−1)−1]=(4)(3)=12a4a10

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.