+1 Daumen
2,1k Aufrufe

Zu beweisen ist, dass (L1  ∪ L2 )* = (L1* L2*)* Gleichungen für beliebige ∑ L1,L2 sind.

Was soll das sein? Sprachen? Wäre nett, wenn du etwas über deine Notation preisgibst.

Eine formale Sprache \( L \) über einem Alphabet \( \Sigma \) ist eine Teilmenge der Kleeneschen Hülle des Alphabets: \( L \subseteq \Sigma^{*} \).

Die aus einem gegebenen Alphabet \( \Sigma \) schlechthin bildbaren Wörter sind alle Wörter mit endlicher Länge (von 0 oder größer), deren jeder einzelne Buchstabe Element von \( \Sigma \) ist. Diese größtmögliche Wortmenge zum Alphabet \( \Sigma \) nennt man die Kleenesche Hülle des Alphabetes \( \Sigma \), formal kurz \( \Sigma^{*} \). Eine formale Sprache über einem Alphabet \( \Sigma \) ist also mathematisch gesehen eine bestimmte Teilmenge der Kleeneschen Hülle ihres Alphabets.

Dir ist bewusst, dass du in der zu zeigenden Gleichung die Sternchen bei den Sprachen und nicht beim Alphabet hast? Sind das denn nun alle denkbaren Sätze aus den Wörtern in L?

Ja,so weit es ist mir klar.Ich habe sogar selbständige Lösung dazu erarbeitet aber vorher noch Paar wichtige Dinge :

Zwei Sprachen \( L_{1} \) über dem Alphabet \( \Sigma_{1} \) und \( L_{2} \) über dem Alphabet \( \Sigma_{2} \) sind banalerweise beide Sprachen auch über \( \Sigma_{1} \cup \Sigma_{2} \), also Mengen von Wörtern aus \( \left(\Sigma_{1} \cup \Sigma_{2}\right)^{*} \). Deshalb sind auch

- die Vereinigung \( L_{1} \cup L_{2} \)
- der Durchschnitt \( L_{1} \cap L_{2} \)
- die Differenz \( L_{1} \backslash L_{2} \)

Sprachen über \( \Sigma_{1} \cup \Sigma_{2} \).



Und aus dem Skript:

Daneben betrachten wir zwei weitere natürliche Operationen auf \( \Sigma \)-Sprachen: Konkatenation (von zwei \( \Sigma \)-Sprachen) und Stern-Operation oder Iteration (einer \( \Sigma \)-Sprache).

Konkatenation von Sprachen
Die Konkatenation der \( \Sigma \)-Sprachen \( L_{1} \) und \( L_{2} \) ist die \( \Sigma \)-Sprache
\( L_{1} \cdot L_{2}:=\left\{v \cdot w: v \in L_{1}, w \in L_{2}\right\} . \)

Durch \( n \)-fach iterierte Konkatenation einer Sprache \( L \) mit sich selbst erhält man Sprachen \( L^{n} \) für \( n \in \mathbb{N} \), rekursiv definiert als
\( \begin{aligned} L^{0} & :=\{\varepsilon\} \\ L^{n+1} & :=L^{n} \cdot L \text { für } n \in \mathbb{N} . \end{aligned} \)

Stern-Operation
Die Stern-Operation bildet aus der \( \Sigma \)-Sprache \( L \) die \( \Sigma \)-Sprache
\( L^{*}:=L^{0} \cup L^{1} \cup L^{2} \cup \ldots=\bigcup_{n \geqslant 0} L^{n} . \)

Beachte, dass \( L^{*}=\{\varepsilon\} \cup\left\{w_{1} \cdot \ldots \cdot w_{n}: n \geqslant 1, w_{i} \in L\right. \) für \( \left.i=1, \ldots, n\right\} \).
Wir lassen oft die Konkatenations-Punkte "." weg, sowohl zwischen Wörtern wie auch zwischen Sprachen: also \( w_{1} w_{2} \) statt \( w_{1} \cdot w_{2} \) und auch \( L_{1} L_{2} \) statt \( L_{1} \cdot L_{2} \).

FGdI1notes20.pdf (0,7 MB)

Quelle: https://www2.mathematik.tu-darmstadt.de/~otto/LEHRE/FGdI1notes20.pdf

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Beweis der Gleichung \( (L_1 ∪ L_2)^* = (L_1^* L_2^*)^* \) für formale Sprachen \( L_1 \) und \( L_2 \)

Um zu zeigen, dass \( (L_1 ∪ L_2)^* = (L_1^* L_2^*)^* \) gilt, betrachten wir jedes Element auf beiden Seiten der Gleichung und zeigen, dass jedes Element der linken Seite auch in der rechten Seite enthalten ist und umgekehrt. Das bedeutet, wir führen zwei Inklusionsbeweise:

1. Zeigen, dass jedes Element von \( (L_1 ∪ L_2)^* \) auch in \( (L_1^* L_2^*)^* \) enthalten ist.
2. Zeigen, dass jedes Element von \( (L_1^* L_2^*)^* \) auch in \( (L_1 ∪ L_2)^* \) enthalten ist.

Schritt 1:
Nehmen wir \( z \) als ein beliebiges Wort aus \( (L_1 ∪ L_2)^* \). Dann kann \( z \) als eine Folge von Wörtern dargestellt werden, wobei jedes Wort entweder aus \( L_1 \) oder \( L_2 \) kommt. Jedes Wort in dieser Folge kann in Gruppen von \( L_1 \) und \( L_2 \) zerlegt werden. Also, wenn \( z \) aus einer Folge von Wörtern aus \( L_1 \) und dann aus \( L_2 \) besteht, kann es durch wiederholte Konkatenation dieser Gruppen dargestellt werden, was der Definition von \( L_1^*L_2^* \) entspricht. Da dies für jede Anzahl von Konkatenationen gilt, befindet sich \( z \) auch in \( (L_1^* L_2^*)^* \), was die Inklusion \( (L_1 ∪ L_2)^* \subseteq (L_1^* L_2^*)^* \) zeigt.

Schritt 2:
Nun nehmen wir ein Wort \( w \) aus \( (L_1^* L_2^*)^* \). Da \( w \) aus einer beliebigen Anzahl von Konkatenationen von Wörtern aus \( L_1^* \) und \( L_2^* \) besteht, und jedes Wort in \( L_1^* \) oder \( L_2^* \) selbst eine Konkatenation von Wörtern aus \( L_1 \) beziehungsweise \( L_2 \) ist (oder das leere Wort \( \varepsilon \)), kann \( w \) in eine Sequenz von Wörtern zerlegt werden, die entweder in \( L_1 \) oder in \( L_2 \) enthalten sind. Das zeigt, dass \( w \) auch als eine Konkatenation von Wörtern aus \( L_1 ∪ L_2 \) dargestellt werden kann und somit in \( (L_1 ∪ L_2)^* \) enthalten ist. Dies zeigt \( (L_1^* L_2^*)^* \subseteq (L_1 ∪ L_2)^* \).

Da wir beide Inklusionen bewiesen haben, folgt daraus die Gleichheit:
\( (L_1 ∪ L_2)^* = (L_1^* L_2^*)^* \)

Dieser Beweis basiert auf der grundlegenden Eigenschaft der Sternoperation in regulären Sprachen, die die beliebige Konkatenation von Wörtern (einschließlich des leeren Wortes) aus den Sprachen \( L_1 \) und \( L_2 \) erlaubt, sowie auf der Eigenschaft der Vereinigungsoperation, die die Kombination von Wörtern aus beiden Sprachen ermöglicht.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community