# Übungsblatt 4
> Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422)


## Übung 1
Betrachten Sie den Automaten $A$ aus Abbildung 1 über dem Alphabet $\Sigma = \{ 0, 1 \}$.
![image_822.png](image_822.png)


### 1(a)
Gibt es einen endlichen Automaten mit 9 Zuständen, der die Sprache $L(A)$ akzeptiert? Begründen Sie Ihre Antwort. 

ja, da man bspw. von `d` aus weitere Zustände erstellen könnte, auf die man mit `1` kommt und von dort auf dann auf `g` verweist mit `0`

### 1(b)
Gibt es einen endlichen Automaten mit 3 Zuständen, der die Sprache $L(A)$ akzeptiert? Begründen Sie Ihre Antwort. 

Nein, da der Automat 5 Nerode-Klassen hat.

### 1(c)
Bestimmen Sie für jeden Zustand $q$ ($q \in \{ a, b, c, d, e, f, g \}$) von Automat $A$ die Sprache (in formaler 
Mengenschreibweise), die $A$ akzeptieren würde, wenn $q$ der Startzustand von $A$ wäre. 

- $L_a :=\{00*1^n, n ∈ \mathbb{N}_0 υ 1 *0^m*1^i, m ∈ \mathbb{N}_0, i ∈ \mathbb{N}\}$
- $L_b :=\{0^n*1^m \space | \space n ∈ \mathbb{N}_0, m ∈ \mathbb{N}\}$
- $L_c :=\{1^n \space|\space n ∈ \mathbb{N}_0\}$
- $L_d :=\{1^n \space|\space n ∈ \mathbb{N}_0\}$
- $L_e :=\{0*1^n \space|\space n ∈ \mathbb{N}_0 \}$
- f, g: Müllzustand - von hier aus wird die Sprache nicht mehr akzeptiert

### 1(d)
Bestimmen Sie alle Nerode-Klassen und den Nerode-Index der Sprache $L(A)$ und begründen Sie Ihre Antwort. 
- $N_0 = N(ε) = \{w ∈\{0,1\}^*\space|\space w = ε\}$
- $N_1 = N(1) = \{w ∈\{0,1\}^*\space|\space w = 1*0^n, n ∈ \mathbb{N}_0\}$
- $N_2 = N(0) = \{w ∈\{0,1\}^*\space|\space w = 0\}$
- $N_3 = N(00\space U \space11) = \{w ∈\{0,1\}^*\space|\space w = 1*0^n*1^m, n ∈ \mathbb{N}_0, m ∈ \mathbb{N}\ \space u \space w ∈ \{0,1\}^*\space|\space w=0*0*1^n, n ∈ \mathbb{N}_0\}$
- $N_4 =$ Müllzustand 



### 1(e)
Geben Sie den Nerode-Automaten der Sprache $L(A)$ an (Graphdarstellung oder formale Tuppeldarstellung, Ihre Wahl). 

```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 c##[bold]

[*] --> a
a --> b: 1
a --> e: 0
b --> b: 0
b --> c: 1
c --> c: 1
e --> c: 0
e --> f: 1
c --> f: 0
f --> f: 0,1



@enduml
```

## Übung 2
Betrachten Sie die folgenden Sprachen:
- $L_1 = \{ 111 * s \space | \space s \in \{ 0,1,2,4 \}^* \}$
- $L_2 = \{ s * xx \space | \space s \in \{ x,y,z \}^* \}$
- $L_3 = \{ 0^n 1^0 2^n \space | \space n \in \mathbb{N} \}$
- $L_4 = \{ x^n y^z n^m \space | \space n,m \in \mathbb{N} \}$

### 2(a)
Welche der angegebenen Sprachen haben einen Nerode-Index größer oder gleich vier? Begründen Sie für die von Ihnen 
ausgewählten Sprachen Ihre Antwort. 

- $L_1$ - Nerode-Index=4
  - leere Menge, 3 weitere für jede eins & einen Müllzustand in den ein akzeptiertes Wort nicht mehr zu erreichen ist, da es z.B. mit einer 0 anfängt
- $L_2$ - Nerode-Index=3
  - leere Menge&Wörter ohne x/xx am Ende, Wörter die mit x enden, Wörter die mit xx enden (akzeptierter Zustand)
- $L_3$ - Nerode-Index=∞
  - um n = n = n zu unterscheiden braucht man unendlich Nerode-Klassen
- $L_4$ - Nerode Index ∞
  - min so viele z+1 wie x 
  - gleiches wie bei $L_3$, es kommt auf die Anzahl x an & es gibt ∞ Optionen


### 2(b)
Welche der angegebenen Sprachen haben einen endlichen Nerode-Index? Begründen Sie für die von Ihnen ausgewählten 
Sprachen Ihre Antwort. 

Wie in a schon beschrieben haben $L_1$ und $L_2$ einen endlichen Nerode-Index. 
Bei $L_1$ muss der Präfix untersucht werden und der Rest ist egal, somit ist dies mit 4 Zuständen möglich
Bei $L_2$ muss der Suffix untersucht werden, somit ist dies mit 3 Zuständen möglich

### 2(c)
Für welche der angegebenen Sprachen existiert kein endlicher Automat, der die Sprache akzeptiert? Begründen Sie für die
von Ihnen ausgewählten Sprachen Ihre Antwort. 

Wie in a beschrieben existiert bei $L_3$ und $L_4$ kein endlicher Automat, da beide einen unendlichen
Nerode-Index haben. Beide Automaten benötigen ∞ Zustände um n zu speichern

## Übung 3

Betrachten Sie die folgenden Sprachen über dem Alphabet $\Sigma = \{ 0, 1, 2 \}$:

- $L_1 = \{ 0^n 1^m \space | \space n,m \in \mathbb{N} \} \cup \{ 0^n 2^m \space | \space n,m \in \mathbb{N} \}$
- $L_2 = \{ 0^n 1^m \space | \space n,m \in \mathbb{N} \} \cup \{ 2^n 1^m \space | \space n,m \in \mathbb{N} \}$
- $L_3 = \{ s \in \Sigma^* \space | \space \exists s_1 \in \Sigma^* : s = 2 * s_1 \wedge \forall s_2 \in \Sigma^* : s \neq s_2 * 00 \}$

Für welche der angegebenen Sprachen gilt, dass **jeder** endliche Automat, der die Sprache akzeptiert, **mehr als einen 
akzeptierenden Zustand** hat? Begründen Sie Ihre Antwort für jede der drei Sprachen. 

- $L_1$
  - Es gibt mehr als 2 akzeptierende Zustände, da ein akzeptiertes Wort immer mit beliebig vielen 0 anfängt, aber dann entweder mit beliebig vielen 1 oder 2 endet, wodurch 2 akzeptierte Zustände benötigt werden.
- $L_2$
  - Ein akzeptierter Zustand reicht, da ein Wort zwar unterschiedlich anfängt, aber am Ende immer mit einer beliebigen Zahl 1 aufhört, wodurch alle vorherigen Schritte in einem Zustand zusammengeführt werden können.
- $L_3$
  - Es sind mehr als ein akzeptierter Zustand benötigt, da man einen Zustand benötigt für den Fall, dass das Wort mit nur einer 0 endet und einen für den Fall, dass das Wort mit keiner 0 endet.


## Übung 4

Benutzen Sie das Kochrezept aus der Vorlesung, um zu zeigen, dass die Sprache $L = \{ a^n b^n c^n \space | \space n \in \mathbb{N} 
\}$ von **keinem endlichen Automaten** akzeptiert wird.


- $L = \{a^n,b^n,c^n\space|\space n ∈ \mathbb{N}\}$
- definiere $X=\{a^n\space|\space n ∈ \mathbb{N}\}$
- seien $u = a^i, v=a^j ∈ X mit i \not= j$
- dann gilt für $w = b^i*c^i$:
  - $u*w=a^i*b^i*c^i ∈ L$
  - $u*v=a^j*b^j*c^j \not ∈ L$
- → $L$-Index $≥ |X| = ∞$, sodass kein DEA $L$ akzeptiert