From 21f691f6a3221074a195b2fb4d17d9d53e612199 Mon Sep 17 00:00:00 2001 From: David Schirrmeister Date: Sun, 15 Jun 2025 17:42:22 +0200 Subject: [PATCH] update --- Writerside/images/image_923.png | Bin 0 -> 12134 bytes Writerside/images/image_924.png | Bin 0 -> 24345 bytes Writerside/in.tree | 1 + .../Hausaufgaben/ti_hausaufgabe8.md | 389 ++++++++++++++++++ 4 files changed, 390 insertions(+) create mode 100644 Writerside/images/image_923.png create mode 100644 Writerside/images/image_924.png create mode 100644 Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe8.md diff --git a/Writerside/images/image_923.png b/Writerside/images/image_923.png new file mode 100644 index 0000000000000000000000000000000000000000..c69b25ff68d6fb6af07d5fbe143b1f56f56e026d GIT binary patch literal 12134 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 L6d+|{1_A#AXm^u8 literal 0 HcmV?d00001 diff --git a/Writerside/images/image_924.png b/Writerside/images/image_924.png new file mode 100644 index 0000000000000000000000000000000000000000..58f254ae5fb2f3354f1db73be8cb876cc4ef3d12 GIT binary patch literal 24345 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 tXeI8WG(2+NY5XEMf(wtF@BjM`yLJDv@1A{OEg + diff --git a/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe8.md b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe8.md new file mode 100644 index 0000000..d4e946d --- /dev/null +++ b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe8.md @@ -0,0 +1,389 @@ +# Übungsblatt 8 +> Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422) + +## Übung 1 + +### 1(a) +Beschreiben Sie für jeden der folgenden regulären Ausdrücke $\alpha_i$ die entsprechende Sprache $L(\alpha_i)$ (formal oder informal, Ihre Wahl): + +- (i) $\alpha_1 = (00 \mid 1)^* (11 \mid 0)$ + - Alle Wörter, welche mit beliebig vielen Aneinanderreihungen von `00` und `1` beginnen und dann mit `11` oder `0` enden +- (ii) $\alpha_2 = (1 \mid 01 \mid 001)^* (1 \mid 111)$ + - Alle Wörter, welche mit beliebig vielen Aneinanderreihungen von `1`, `01` und `001` beginnen und dann mit `1` oder `111` enden + + +### 1(b) +Bestimmen Sie für jeden der folgenden regulären Ausdrücke $\beta_i$ einen endlichen Automaten (deterministisch oder nichtdeterministisch, Ihre Wahl), der die Sprache $L(\beta_i)$ akzeptiert: + +- (i) $\beta_1 = \emptyset$ + - ```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state S##[bold] + [*]-->S + @enduml + ``` +- (ii) $\beta_2 = ((0 \mid 1)^* 1)^*$ + - ```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state S##[bold] + state U##[bold] + + [*]-->S + S --> T: 0,1 + T --> U: 1 + T --> T: 0,1 + S --> U: 1 + U --> T: 0,1 + + @enduml + ``` + +### 1(c) +Betrachten Sie die endlichen Automaten $N_1$ und $N_2$ aus Abbildung 1. Bestimmen Sie für jede der drei Sprachen $L(N_1)$, $L(N_2)$ und $L(N_1) \setminus L(N_2)$ einen regulären Ausdruck, der die jeweilige Sprache beschreibt. +![image_923.png](image_923.png) + +- $L(N_1)$ + - $1(0|1)^*1$ +- $L(N_2)$ + - $(0|1)^*11(0|1)^*$ +- $L(N_1) \backslash L(N_2)$ + - $10(0|10)^*1$ + + +### 1(d) +Bestimmen Sie einen regulären Ausdruck, der die Sprache aller Binärstrings beschreibt, die **nicht auf 11 enden**. + +$(0|1)^*(00|01|10)$ + +## Übung 2 + +Betrachten Sie folgende reguläre Grammatik über dem Alphabet $\Sigma = \{x, y, z\}$: + +$$ +G: \quad +S \Rightarrow xS \mid xA \mid zB \\ +A \Rightarrow yA \mid B \\ +B \Rightarrow zB \mid \varepsilon +$$ + +### 2(a) +Erarbeiten Sie sich den Begriff eines nichtdeterministischen endlichen Automaten mit $\varepsilon$-Übergängen mit Hilfe des Skriptes (Seiten 137–139). +Überlegen Sie sich, wie sich ein zur Grammatik $G$ passender, nichtdeterministischer endlicher Automat mit $\varepsilon$-Übergängen konstruieren lässt, der die Sprache $L(G)$ akzeptiert. +Geben Sie den Automaten dazu in **Graphdarstellung** an. + +```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state B##[bold] + + [*]-->S + S --> S: x + S --> A: x + S --> B: z + A --> A: y + A --> B: ε + B --> B: z + + @enduml +``` + +### 2(b) +Nutzen Sie das Kochrezept aus den Folien (Kapitel 6), um die Grammatik zu normalisieren. +(Schritte 1 und 2 des Kochrezepts sind hier nicht notwendig, da es keine Regeln der entsprechenden Form gibt.) + +- $S → xS | xA | zB$ +- $A → yA | zB | ε$ +- $B → zB | ε$ + + +### 2(c) +Nutzen Sie den zweiten Teil des Kochrezepts zur Umwandlung einer regulären Grammatik $G$ in einen NEA (Kapitel 6), um für die **normalisierte Grammatik** einen NEA zu konstruieren, der die von der Grammatik erzeugte Sprache akzeptiert. + +```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state B##[bold] + state A##[bold] + + [*]-->S + S --> S: x + S --> A: x + S --> B: z + A --> A: y + A --> B: z + B --> B: z + + @enduml +``` + +## Übung 3 +### 3(a) +Entwerfen Sie eine reguläre Grammatik $G_{\text{date}}$, um Datumsangaben bestehend aus Tag (T), Monat (M) und Jahr (Y) in der Form `YYYY-MM-TT` über einem geeigneten Alphabet zu erzeugen. +- Σ = {0,...,9,-} +- $S = S$ +- $V=\{S,Y,M,D,Y_1,Y_2,Y_3,A,B,M_1,M_2,C\}$ +- $R$ + - $S→YMD$ + - $Y → AY_1$ + - $Y_1 → AY_2$ + - $Y_2 → AY_3$ + - $Y_3 → AB$ + - $A→0|1|2|3|4|5|6|7|8|9$ + - $B→-$ + - $M→0M_1|1M_2$ + - $M_1→1B|2B|3B|4B|5B|6B|7B|8B|9B$ + - $M_2→0B|1B$ + - $D→0A|1A|2A|3C$ + - $C→0|1$ + +### 3(b) +Entwerfen Sie eine reguläre Grammatik $G_{\text{time}}$, um Uhrzeiten bestehend aus Stunde (H) und Minute (M) in der Form `HH:MM` über einem geeigneten Alphabet zu erzeugen. + +- Σ = {0,...,9,:} +- $S = S$ +- $V=\{S,H,M,A,H_1}$ +- $R$ + - $S→HM$ + - $H→0H_1|1H_1|2H_1|3H_1|4H_1|5H_1$ + - $H_1→A:$ + - $A→0|1|2|3|4|5|6|7|8|9$ + - $M→0A|1A|2A|3A|4A|5A$ + + + + +### 3(c) +Kombinieren Sie die Grammatiken $G_{\text{date}}$ und $G_{\text{time}}$ zu drei neuen Grammatiken, welche jeweils die Sprache +$L(G_{\text{date}}) \cup L(G_{\text{time}})$, +$L(G_{\text{date}}) \circ L(G_{\text{time}})$ und +$L(G_{\text{date}})^*$ erzeugen. + + + +**(i) $L(G_{\text{date}}) \cup L(G_{\text{time}})$** + +Um die Vereinigungsgrammatik zu erzeugen, fügt man eine neue Startregel hinzu, die entweder in das Datum oder in die Uhrzeit verzweigt. Es wird also eine neue Startvariable $S'$ eingeführt und die bisherigen Startsymbole $S_{\text{date}}$ und $S_{\text{time}}$ ersetzt: + +- Neue Startregel: + - $S' \rightarrow S_{\text{date}} \mid S_{\text{time}}$ +- Dabei ist $S_{\text{date}}$ die bisherige Startvariable der Datumsgrammatik, $S_{\text{time}}$ die der Uhrzeitgrammatik. +- Alle Regeln aus beiden Grammatiken werden übernommen und $S$ wird jeweils durch $S_{\text{date}}$ bzw. $S_{\text{time}}$ ersetzt, um Namenskonflikte zu vermeiden. + +--- + +**(ii) $L(G_{\text{date}}) \circ L(G_{\text{time}})$** + +Für die Konkatenation fügt man eine neue Startregel ein, die zuerst die Erzeugung eines Datums, danach die einer Uhrzeit erlaubt. Auch hier müssen die Startvariablen unterschieden werden: + +- Neue Startregel: + - $S' \rightarrow S_{\text{date}} S_{\text{time}}$ +- Wieder werden alle bisherigen Regeln beibehalten, aber die Startvariablen entsprechend umbenannt. +- Die Sprache besteht dann aus Zeichenketten der Form `YYYY-MM-DDHH:MM`. + +--- + +**(iii) $L(G_{\text{date}})^*$** + +Um beliebig viele Datumsangaben zu erzeugen, wird ein neuer Startzustand $S'$ eingeführt, der entweder ein Datum erzeugt, gefolgt von einer rekursiven Wiederholung, oder auf $\varepsilon$ endet: + +- Neue Startregeln: + - $S' \rightarrow S_{\text{date}} S' \mid \varepsilon$ +- Die übrige Grammatik bleibt unverändert. +- Es können also beliebig viele aufeinanderfolgende Datumsangaben erzeugt werden, z.B. `2025-06-152025-07-01...` + + +Bei allen drei Fällen ist es notwendig, **Namenskonflikte** zwischen den Nichtterminalen der beiden Grammatiken (Datum vs. Uhrzeit) zu vermeiden. Das kann man entweder durch Präfixe (z.B. $A_{\text{date}}$, $A_{\text{time}}$) oder durch getrennte Mengen von Nichtterminalen und Startsymbolen lösen. + + +## Übung 4 + +Betrachten Sie den nichtdeterministischen endlichen Automaten $N$. Bestimmen Sie systematisch einen regulären Ausdruck, der die Sprache $L(N)$ beschreibt, indem Sie wie folgt vorgehen: +![image_924.png](image_924.png) + +### 4(a) +Wandeln Sie $N$ in einen äquivalenten nichtdeterministischen Automaten $N_\varepsilon$ mit $\varepsilon$-Übergängen um, der **genau einen akzeptierenden Zustand** hat. + +```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state Z##[bold] + + [*]-->A + A --> A: a + A --> B: a + A --> D: a + D --> E: a + E --> Z: ε + B --> C: a + C --> F: a + F --> F: b + F --> Z: ε + F --> G: c + A --> G: c + G --> G: c + G --> Z: ε + + @enduml +``` + + + +### 4(b) +Als nächstes erlauben wir anstatt einfachen Symbolen an den Kanten auch **reguläre Ausdrücke**. +Ein regulärer Ausdruck $\alpha$ an einer Kante von Zustand $q \in Q$ nach $q' \in Q$ (wir schreiben $q \xrightarrow{\alpha} q'$) bedeutet dabei, dass der Automat durch Lesen eines Wortes der Sprache $L(\alpha)$ von Zustand $q$ in Zustand $q'$ wechseln kann. + +Mit diesem neuen Mittel ausgerüstet, können wir z.B. den Zustand $B$ aus dem Automaten $N_\varepsilon$ entfernen, indem wir die Kanten $A \xrightarrow{a} B$ und $B \xrightarrow{a} C$ entfernen und stattdessen die neue Kante $A \xrightarrow{aa} C$ einfügen. + +**Entfernen Sie auf diese Weise nacheinander die Zustände $B$, $C$, $D$ und $E$ aus $N_\varepsilon$ und zeichnen Sie den entstehenden Automaten.** + +```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state Z##[bold] + + [*]-->A + A --> A: a + A --> F: aaa + A --> Z: aa + F --> F: b + F --> Z: ε + F --> G: c + A --> G: c + G --> G: c + G --> Z: ε + + @enduml +``` + + +### 4(c) +Als nächstes entfernen wir den Zustand $F$. +Betrachten Sie dazu jedes Paar $q, q' \in Q \setminus \{F\}$ mit Kanten $q \xrightarrow{\alpha} F$ und $F \xrightarrow{\beta} q'$. +Fügen Sie als Ersatz für diese Kanten eine Kante $q \xrightarrow{\gamma} q'$ für einen geeignet gewählten regulären Ausdruck $\gamma$ ein (beachten Sie die Schleife $F \xrightarrow{b} F$ in $F$!). +Nach Bearbeitung aller solcher Paare kann der Zustand $F$ gelöscht werden (**warum?**). + +**Entfernen Sie auf diese Weise neben Zustand $F$ auch den Zustand $G$ und zeichnen Sie den entstehenden Automaten.** + +```plantuml + @startuml + scale 0.50 + + left to right direction + skinparam dpi 150 + + skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 + } + + state Z##[bold] + + [*]-->A + A --> A: a + A --> Z: aa | aaa | aaa(b)* | aaa(c)+ | (c)+ + + @enduml +``` + +### 4(d) +Sie sollten nun einen Automaten mit noch zwei Zuständen (Startzustand und Endzustand) haben. +Leiten Sie von diesem Automaten den regulären Ausdruck für die Sprache $L(N)$ ab. +(**Beachten Sie die Schleife in Zustand $A$!**) + +$(a)^*(aa|aaa|aaa(b)^*|aaa(c^+)|(c)^+)$ + +### 4(e) +Der erhaltene reguläre Ausdruck ist vermutlich recht lang. +**Versuchen Sie ihn (durch „scharfes Hinsehen“) soweit wie möglich zu vereinfachen.** + +$a^*(aa|aaa(b^*|c^*)|c^+)$ + + +ODER + +$a^*(aa(a(b^*|c^*))^?|c^+)$ +