Answer to Question 1
a) Ein Deterministischer Endlicher Automat (DEA), der die g\u00fcltigen Suffixe $S_{01}(L_3)$ erkennt, kann wie folgt aussehen:

1. Startzustand $q_0$
2. Zustand $q_1$, in den man wechselt, wenn das dritte Zeichen einer Sequenz von 1 zu 0 wechselt
3. Akzeptierender Zustand $q_A$

Die Übergabematrix kann wie folgt beschrieben werden:

- Wenn der aktuelle Zustand $q_0$ ist und das nächste Zeichen eine 1 ist, bleibt man im Zustand $q_0$. Wenn es eine 0 ist, wechselt man in den Zustand $q_A$, da das Wort "01" bereits ein gültiges Suffix von $L_3$ ist.
- Wenn der aktuelle Zustand $q_1$ ist und das nächste Zeichen eine 1 ist, bleibt man im Zustand $q_1$. Wenn es eine 0 ist, wechselt man in den Zustand $q_A$, da nach einem Wechsel von 1 zu 0 die folgende 0 ein gültiges Suffix bildet.
- Im Akzeptierenden Zustand $q_A$ gibt es keine Übergänge, da das Wort bereits als gültiges Suffix erkannt wurde.

b) Die Menge der Wörter in $S_{\varepsilon}(L)$ für eine beliebige Sprache $L$ enthält alle Wörter aus $\Sigma^*$, die mit dem leeren Wort verknüpft werden können. Das bedeutet, dass jedes Wort $w \in L$ Teil von $S_{\varepsilon}(L)$ ist.

c) Um zu beweisen, dass eine Sprache $L$ genau dann regulär ist, wenn $S_w(L)$ für alle $w \in \Sigma^*$ regulär ist, betrachten wir die Menge aller gültigen Suffixe einer Sprache. Eine Sprache ist regulär, wenn sie von einem DEA oder einer regulären Ausdrucks beschrieben werden kann.

Sei $L$ eine reguläre Sprache mit einem DEA $M = (Q, \Sigma, q_0, F, \delta)$, wobei $Q$ die Zustandsmenge, $\Sigma$ das Alphabet, $q_0$ der Startzustand, $F$ die Menge der Akzeptierenden Zustände und $\delta$ die Übergabematrix ist.

Für jedes Wort $w$, können wir einen DEA $M_w = (Q', \Sigma, q'_0, F', \delta')$ konstruieren, der auf den Rest des Wortes nach dem Anhängen von $w$ prüft. Der Startzustand $q'_0$ ist der Zustand $q$, in den man wechselt, wenn das Wort $w$ gelesen wurde. Die Menge der Akzeptierenden Zustände $F'$ sind alle Zustände aus $Q$, die mit einem Element aus $F$ verbunden sind.

Da $M_w$ für jedes $w \in \Sigma^*$ existiert und regulär ist, ist auch $S_w(L)$ für jedes $w \in \Sigma^*$ regulär. Der Beweis für die umgekehrte Richtung funktioniert analog.

d) Eine nichtreguläre Sprache $L$ kann existieren, bei der $S_w(L)$ f\u00fcr unendlich viele $w \in \Sigma^*$ regulär ist. Hier ein Beispiel:

Sei $L = \{a^n b^n c^n | n \in \N\}$ eine nichtreguläre Sprache (Pumping-Lemma). Für jedes $n$, das durch 3 teilbar ist, hat das Wort $w_n = a^nb^nc^n$ das Suffix $b^nc^n$. Da $S_{a^n}(L) = \{b^nc^n\}$ für alle $n$ durch 3 teilbar ist, ist $S_w(L)$ regulär. Es gibt jedoch unendlich viele Wörter $w$, die nicht in $L$ enthalten sind und deren Suffixe nicht in $L$ enthalten sind, was zeigt, dass $L$ selbst nicht regulär ist.





****************************************************************************************
****************************************************************************************




Answer to Question 2
a) Der DEA $A'$ mit Zustandsmenge $Q = \{Z_0, Z_1, Z_2, X\}$ und Alphabet $\Sigma = \{\sfA, \sfB, \sfC\}$ kann wie folgt definiert werden:

$$
\begin{align*}
&\delta(Z_0, \sfA) = (Z_1, \epsilon)\\
&\delta(Z_1, \sfB) = (Z_0, \epsilon)\\
&\delta(Z_0, \sfC) = (X, \epsilon)\\
&\delta(X, \_) = (X, \epsilon)
\end{align*}
$$

Hier ist $X$ der M\u00fcllzustand und $\_$ steht f\u00fcr jedes Zeichen, das im Alphabet nicht explizit definiert ist.

b) Um zu zeigen, dass jede Sprache, die von einem 1-Zustands-DPDA mit leerem Stack erkannt wird, pr\u00e4fixfrei ist, betrachten wir ein Wort $wz$ mit $w \in L$ und $z \in \Sigma^+$. Wenn der DPDA das Wort $wz$ akzeptiert, muss er nach dem Lesen von $w$ im leerem Stack sein, da er nur einen Zustand hat. Nachdem das letzte Zeichen von $w$ gelesen wurde, kann der DPDA nicht weiterarbeiten und somit auch kein $z$ verarbeiten. Daher ist $wz \notin L$, was zeigt, dass $L$ pr\u00e4fixfrei ist.

c) Eine nichtregul\u00e4re Sprache, die von einem 1-Zustands-DPDA mit leerem Stack erkannt werden kann, ist zum Beispiel $L = \{a^nb^n | n \geq 0\}$. Der DPDA kann wie folgt definiert werden:

$$
\begin{align*}
&\delta(q, a, Z_0) = (q, Z_1)\\
&\delta(q, b, Z_1) = (q, \epsilon)
\end{align*}
$$

d) Eine regul\u00e4re Sprache, die nicht von einem 1-Zustands-DPDA mit leerem Stack erkannt werden kann, ist zum Beispiel $L = \{a^nb^n | n > m\}$, wobei $m$ eine positive Zahl ist. Da der DPDA nur einen Zustand hat und nach dem Lesen von $n$-$m$-$a$s im leerem Stack sein muss, bevor er die gleiche Anzahl an $b$s liest, kann er nicht zwischen den verschiedenen Werten von $n$ unterscheiden.

e) Um jeden gegebenen NEA $\mathcal{A}=(Q, \Sigma, \delta, s, F)$ einen 1-Zustands-NPDA zu konstruieren, der die gleiche Sprache erkennt, definieren wir den NPDA mit einem einzelnen Zustand $q$ und einer Startconfiguration $Z_0$. Die \u00dcbergangsfunktion $\delta'$ wird so definiert, dass sie alle M\u00f6glichkeiten des NEA abdeckt. F\u00fcr jedes $(p, a, q, X) \in \delta$ mit $p, q \in Q$, $a \in \Sigma$, und $X \in \Gamma^*$ gibt es eine Regel $\delta'(q, a, Z_0) = (q, X')$, wobei $X'$ die gleiche Stackver\u00e4nderung ist wie in der Regel des NEA. Dieser NPDA kann sich nicht deterministisch auf den Pfad eines Wortes begeben, sondern f\u00fcr jede M\u00f6glichkeit entscheiden und somit dieselbe Sprache erkennen wie der urspr\u00fcngliche NEA.





****************************************************************************************
****************************************************************************************




Answer to Question 3
a) Um zu zeigen, dass $L$ nicht regulär ist, können wir den Pumping-Lemma für reguläre Sprachen verwenden. Sei $w \in L$ ein Wort mit einer Länge, die größer als der Pumplimit der regulären Sprache ist (also $|w| > p$, wobei $p$ der Pumping-Parameter ist). Da $L$ nicht regulär ist, gibt es keine Partition von $w$ in drei Teile ($w = xyz$) mit $|xy| \leq p$ und $|y| > 0$, so dass für alle $n \in \mathbb{N}$ das Wort $xy^nz$ immer noch in $L$ enthalten ist. Würden wir eine solche Partition finden, könnten wir durch Pumping ein Wort generieren, bei dem die Anzahl von $\ta$- und $\tb$-Zeichen nicht mehr gleich ist.

b) Um zu zeigen, dass $L(G_S) = \set{w \in\Σ^* \given c(w) = 0 }$, müssen wir beide Inklusionen beweisen. Die erste Inklusion ($L(G_S) \subseteq \set{w \mid c(w) = 0}$) folgt aus den Regeln $S \to \varepsilon$ und $S \to \ta B, \tb A$, da diese Regeln die Anzahl von $\ta$- und $\tb$-Zeichen gleichmäßig erhöhen oder verringern. Die zweite Inklusion ($L(G_S) \supseteq \set{w \mid c(w) = 0}$) folgt aus den Regeln $A \to S \ta S$ und $B \to S \tb S$, da diese Regeln die Anzahl von $\ta$- und $\tb$-Zeichen um jeweils eine Einheit erhöhen oder verringern, wodurch wir Wörter mit null Abstand ($c(w) = 0$) erhalten.

c) Ja, $L$ ist kontextfrei. Wir haben bereits gezeigt, dass es zwei kontextfreie Grammatiken gibt (für $G_A$ und $G_B$), die die Sprachen $\set{w \mid c(w) = 1}$ und $\set{w \mid c(w) = -1}$ erzeugen. Da $L$ die Vereinigung dieser beiden Sprachen ist ($L = L(G_A) \cup L(G_B)$) und die Vereinigung von kontextfreien Sprachen wieder eine kontextfreie Sprache ist, ist $L$ kontextfrei.

d) Eine nicht-deterministische in-place Turingmaschine (NDTM) für $L$ könnte wie folgt aussehen:

1. Starten Sie bei der Eingabe am Anfang des Bandes.
2. Wenn das aktuelle Zeichen $\ta$ oder $\tb$ ist, lesen und löschen es.
3. Wenn das aktuelle Zeichen leer ist:
   a. Wenn die Maschine sich im linken oder rechten Drittel des Bandes befindet, bewegen Sie sich in Richtung des Zentrums.
   b. Wenn die Maschine sich im Zentrum befindet und keine weiteren $\ta$- oder $\tb$-Zeichen vorhanden sind, akzeptieren Sie die Eingabe (da $c(w) = 0$).
   c. Wenn die Maschine sich im Zentrum befindet und ein $\ta$- oder $\tb$-Zeichen vorfindet, wechseln Sie in den anderen Drittel des Bandes und kehren zu Schritt 2 zurück.
4. Wenn das aktuelle Zeichen leer ist und der Wagen nicht im Zentrum steht, ablehnen Sie die Eingabe.

Diese Maschine ist in-place, da sie nur die Zellen beschreibt, in denen die Eingabe stand, und keine zusätzlichen Speicherzellen verwendet. Sie entscheidet $L$, indem sie prüft, ob die Anzahl von $\ta$- und $\tb$-Zeichen gleich ist.





****************************************************************************************
****************************************************************************************




Answer to Question 4
a) Tabelle f\u00fcr \\textsc{3SAT} und \\textsc{Green-Washing}:

| & \textsc{3SAT} & \textsc{Green-Washing} |
| --- | --- | --- |
| Instanz (allgemein) | Eine Menge $U$ an aussagenlogischen Variablen und eine Menge $C$ an Klauseln mit je maximal drei Literalen. | Eine Menge $U$, eine Familie $G$ von gr\u00fcnen Mengen, eine Familie $R$ von Regenbogen-Mengen und ein Parameter $k$. |
| Instanz (Beispiel) | $U = \{x_1, x_2, x_3\}$, $C = \{\neg x_1 \lor x_2, x_2 \lor \neg x_3, x_1 \lor \neg x_2\}$ | $U = \{a, b, c, d, e\}$, $G = \{G_1=\{a, b\}, G_2=\{c, d\}\}$, $R = \{R_1=\{a, c\}, R_2=\{b, d\}, R_3=\{d, e\}\}$, $k=3$ |
| L\u00f6sung (allgemein) | Eine Belegung der Variablen in $U$, bei der jede Klausel mindestens ein wahrer Literal hat. | Eine Färbung von $U$ mit $k$ Farben, so dass jede gr\u00fcne Menge mindestens ein gr\u00fcnes Element enthält und jede Regenbogen-Menge keine zwei Elemente der gleichen Farbe enthält. |
| L\u00f6sung (Beispiel) | $x_1 = \text{wahr}, x_2 = \text{wahr}, x_3 = \text{falsch}$ | Färbung: $\{a, b\}=\text{rot}, \{c\}=\text{blau}, \{d\}=\text{gelb}, \{e\}=\text{grün}$ |

b) Um zu zeigen, dass \\textsc{Green-Washing} \\NP-vollst\u00e4ndig ist, betrachten wir eine Instanz des Problems \\textsc{3SAT}. Wir erstellen eine Instanz von \\textsc{Green-Washing}, die diese Instanz von \\textsc{3SAT} entspricht.

Sei $U$ die Menge der Variablen und $C$ die Menge der Klauseln. F\u00fcr jede Variable $x_i \in U$ definieren wir eine gr\u00fcne Menge $G_{x_i}$, die nur das Element $x_i$ enthält. F\u00fcr jede Klausel $c_j \in C$, die drei Literalen $l_1, l_2, l_3$ enth\u00e4lt, definieren wir eine Regenbogen-Menge $R_{c_j}$ mit den Elementen $l_1, l_2, l_3$. Wir setzen $k = |U|$.

Wenn es eine Belegung der Variablen gibt, die jede Klausel erfüllt, dann kann man die Elemente entsprechend färben, indem man jedem Element die Farbe seiner Variable zuordnet. Da jede Klausel mindestens ein wahr Literal hat, enth\u00e4lt jede Regenbogen-Menge keine zwei Elemente der gleichen Farbe.

Um umgekehrt zu zeigen, dass eine L\u00f6sung von \\textsc{Green-Washing} auch eine L\u00f6sung von \\textsc{3SAT} liefert, betrachten wir die Färbung. Da jede gr\u00fcne Menge mindestens ein Element enth\u00e4lt, gibt es eine Belegung der Variablen, bei der jedes Element entweder wahr oder falsch ist. Da jede Regenbogen-Menge keine zwei Elemente mit derselben Farbe hat, muss in jeder Klausel mindestens ein Literal wahr sein (sonst w\u00fcrden zwei Elemente dieselbe Farbe haben).

Da wir gezeigt haben, dass eine L\u00f6sung von \\textsc{Green-Washing} eine L\u00f6sung von \\textsc{3SAT} und umgekehrt entspricht, ist \\textsc{Green-Washing} \\NP-vollst\u00e4ndig.





****************************************************************************************
****************************************************************************************




Answer to Question 5
a) Führen wir den Algorithmus $\\mathcal{A}$ auf der Instanz $I$ mit $M = \\{Q_1, Q_2, Q_3, Q_4\\}$ aus, wobei $\ell_1 = 1$, $\ell_2 = 3$, $\ell_3 = 3$, $\ell_4 = 4$ und $\ell = 7$. Die Quadrate werden wie folgt platziert:

- $Q_1$ wird an der Position $(0,0)$ platziert.
- $Q_2$ wird direkt darüber an der Position $(0,1)$ platziert.
- Da $x \geq \left\\lceil\frac{7}{2}\\right\\rceil = 4$, beginnt eine neue Zeile. $Q_3$ wird an der Position $(0,4)$ platziert.
- Da $x + \ell_3 = 0 + 3 < 7$, wird $Q_4$ direkt rechts von $Q_3$ an der Position $(3,4)$ platziert.

Die optimale Überdeckung würde die Quadrate wie folgt platzieren:

- $Q_1$ und $Q_2$ werden wie oben.
- $Q_3$ wird an der Position $(0,2)$ platziert.
- $Q_4$ wird direkt rechts von $Q_3$ an der Position $(3,2)$ platziert.

Die überdeckte Fläche durch den Algorithmus $\\mathcal{A}(I)$ beträgt $1 + 3 + 3 = 7$, während die optimale Überdeckung $\\mathrm{OPT}(I)$ eine Fläche von $1 + 3 + 4 = 8$ erreicht.

b) Jeder Punkt in $Q$ wird von höchstens zwei Quadraten überdeckt, da der Algorithmus die Quadrate zeilenweise platziert und keine Überlappung innerhalb einer Zeile zulässt. Wenn eine neue Zeile beginnt, kann ein Punkt nur durch das obere und untere Quadrat in den benachbarten Zeilen überlagert werden.

c) Um zu zeigen, dass $\\mathcal{A}$ ein polynomieller Approximationsalgorithmus mit einer relativen Gütegarantie von 4 ist, betrachten wir zwei Fälle:

1. Wenn keine Quadrate aus $Q$ herausragen: In diesem Fall deckt der Algorithmus die gesamte Fläche von $Q$, da er alle verfügbaren Flächen abdeckt.

2. Wenn einige Quadrate aus $Q$ herausragen: Sei $A$ die Fläche, die der Algorithmus überdeckt und $O$ die optimale Fläche. Da jeder Punkt höchstens zweimal überlagert wird (siehe Teil b), gilt $A \geq O/2$. Daher ist die relative Gütegarantie $\frac{A}{O} \geq \frac{1}{2}$.

Da der Algorithmus immer mindestens die Hälfte der optimalen Fläche erreicht, hat er eine relative Gütegarantie von 4. Beachten Sie, dass dies eine untere Schranke ist und in bestimmten Fällen kann $\\mathcal{A}$ sogar besser sein.

Insgesamt liefern wir folgende Antworten:

a) $\\mathcal{A}(I) = 7$, $\\mathrm{OPT}(I) = 8$
b) Jeder Punkt wird von höchstens zwei Quadraten überdeckt.
c) $\\mathcal{A}$ hat eine relative Gütegarantie von 4.





****************************************************************************************
****************************************************************************************




Answer to Question 6
a) Eine Sprache $L'$, die $0$-präfixfrei ist, könnte zum Beispiel die leere Sprache sein, d.h. $L' = \emptyset$. In dieser Sprache gibt es keine Wörter, also auch kein Wort mit "0" als Präfix.

b) Die Turingmaschine $M_\emptyset$ lehnt jedes Wort ab, unabhängig davon, welches Präfix es hat. Daher ist für jedes Wort $w \in \Sigma^*$, dass $L(M_\emptyset)$ leer ist, da kein Wort akzeptiert wird. Da eine leere Sprache automatisch präfixfrei ist (da keine Wörter vorhanden sind, die ein Präfix bilden könnten), gilt für jedes $w$: $M_\emptyset$ ist $w$-präfixfrei. Daher ist $\tmcode{M_\emptyset}\#w \in S$ für alle $w \in \Sigma^*$.

c) Die Turingmaschine $T_{M,w}$ kann wie folgt konstruiert werden:
1. Berechnen Sie aus der Godel-Nummer von $M$, die Turing-Maschine $M'$ selbst.
2. Simulieren Sie $M$ auf dem Eingabewort $w$. Wenn $M$ akzeptiert, wechseln wir in einen Endlosschleifenzustand (das Wort ist in $L(M)$).
3. Wenn $M$ ablehnt oder sich nicht entscheidbar verhält, schreiben wir ein "1" auf den Band und bewegen uns nach rechts.
4. Immer wenn das Wort "w" als Präfix vorliegt, überprüfen wir, ob das folgende Symbol gleich dem aktuellen Bandzeichen ist. Wenn ja, bewegen wir uns weiter nach rechts; wenn nein, wechseln wir in einen Endlosschleifenzustand (das Wort ist nicht $w$-präfixfrei).

Die Maschine $T_{M,w}$ hat die gewünschte Eigenschaft, weil:
- Wenn $w \in L(M)$, wird $T_{M,w}$ in eine Endlosschleife geraten und ist somit nicht $w$-präfixfrei (da keine Verlängerung von $w$ existiert, die die Maschine aus der Schleife herausbringt).
- Wenn $w \notin L(M)$, wird $T_{M,w}$ nach dem Schreiben von "1" auf den Band und dem Vergleich mit dem Präfix $w$ entweder ablehnen oder sich nicht entscheidbar verhalten. In beiden Fällen ist die Sprache der Maschine $L(T_{M,w})$ $w$-präfixfrei.

d) Um zu zeigen, dass $S$ unentscheidbar ist, betrachten wir eine gegebene Godel-Nummer $\tmcode{N}\#x$. Wir möchten entscheiden, ob $x \in L(N)$.
1. Konstruieren wir die Turingmaschine $T_{N,x}$ entsprechend der vorherigen Teilaufgabe.
2. Wenn $L(T_{N,x})$ nicht $x$-präfixfrei ist, dann wissen wir, dass $x \notin L(N)$ (da nach c) das Gegenteil von $w \in L(M)$ bedeutet, dass $L(T_{M,w})$ $w$-präfixfrei ist).
3. Wenn $L(T_{N,x})$ $x$-präfixfrei ist, können wir nicht direkt sagen, ob $x \in L(N)$. Aber wenn $x \in L(N)$, wäre $T_{N,x}$ nach c) nicht $x$-präfixfrei.
4. Daher können wir entscheiden, ob $x \in L(N)$, indem wir überprüfen, ob $L(T_{N,x})$ $x$-präfixfrei ist.

Da die Entscheidbarkeit von $S$ eine Reduktion der universellen Sprache $L_u$ erfordert und wir gezeigt haben, dass $S$ entscheidbar wäre, wenn wir $L_u$ entscheiden könnten, ist $S$ unentscheidbar.





****************************************************************************************
****************************************************************************************




