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

## Übung 1
Betrachten Sie folgendes algorithmisches Problem:

**Bestimmung des Nerode-Index**
- **Eingabe**: ein (vollständiger) NEA $N$
- **Ausgabe**: der Nerode-Index der Sprache $L(N)$

Beschreiben Sie eine algorithmische Lösung dieses Problems (stichpunktartig oder als Pseudocode).
Nutzen Sie dazu das in der Vorlesung gesammelte Wissen und begründen Sie damit die Durchführbarkeit und Korrektheit Ihrer Lösung.

**Lösung:**

- Potenzautomat bilden
- DEA minimieren
- Zustände zählen

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

### 2(a)
Wenden Sie das in den Vorlesungsfolien beschriebene Verfahren zur Minimierung des Automaten $A$ an, um die Zustands-Äquivalenzklassen des Automaten $A$ zu bestimmen.
Stellen Sie Ihr Vorgehen nachvollziehbar dar (orientieren Sie sich dazu an dem finalen Beispiel des Foliensatzes 4).

- Äquivalenzklassen finden
  - {a,b,c,d,h,f}, {e,g}
    - Zeuge: ε
  - {a,c,d,f}, {b,h}, {e,g}
    - Zeuge: 1
  - {a,d,c}, {f}, {b,h}, {e,g}
    - Zeuge: 01
  - {a,c}, {d}, {f}, {b,h}, {e,g}
    - Zeuge: 11
  - {a,c}, {d}, {f}, {b}, {h}, {e,g}
    - Zeuge: 001

- Zustandsübergänge
  - $≡_{a,c}$
    - 1 → $≡_{d}$
    - 0 → $≡_{b}$
  - $≡_{d}$
    - 0,1 → $≡_{b}$
  - $≡_{b}$
    - 0 → $≡_{a,c}$
    - 1 → $≡_{e,g}$
  - $≡_{e,g}$
    - 0 → $≡_{f}$
    - 1 → $≡_{h}$
  - $≡_{h}$
      - 0 → $≡_{f}$
      - 1 → $≡_{e,g}$
  - $≡_{f}$
      - 0, 1 → $≡_{f}$

### 2(b)
Konstruieren Sie den Quotientenautomaten zu $A$ mit Hilfe der von Ihnen bestimmten Zustands-Äquivalenzklassen (in der Graphdarstellung).

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

[*] --> ac
ac --> d: 1 
ac --> b: 0
d --> b: 0,1
b --> ac: 0
b --> eg: 1
eg --> h: 1
eg --> f: 0
h --> eg: 1
h --> f: 0
f --> f: 0,1


@enduml
```

### 2(c)
Welche Sprache akzeptiert der Automat $A$?



## Übung 3
Betrachten Sie die beiden deterministischen endlichen Automaten $A_1$ und $A_2$ aus Abbildung 2.
Lesen Sie Kapitel 2.3.3 über das Äquivalenzproblem für endliche Automaten aus dem Skript.
Nutzen Sie das dort beschriebene Vorgehen, um nachvollziehbar zu überprüfen, ob die Automaten $A_1$ und $A_2$ die gleiche Sprache akzeptieren.

![image_865.png](image_865.png)



## Übung 4
### 4(a)
Geben Sie die folgende Grammatik $G_1$ in formaler Tupel-Darstellung an.
Leiten Sie außerdem 5 Wörter der Sprache $L(G_1)$ ab und beschreiben Sie anschließend $L(G_1)$ in formaler Mengenschreibweise.

Grammatik $G_1$:
- $S \Rightarrow aSa\ |\ bSb\ |\ X$
- $X \Rightarrow 0\ |\ 1$

### 4(b)
Geben Sie die folgende Grammatik $G_2$ in formaler Tupel-Darstellung an.
Leiten Sie außerdem 5 Wörter der Sprache $L(G_2)$ ab und beschreiben Sie anschließend $L(G_2)$ in formaler Mengenschreibweise.

Grammatik $G_2$:
- $S \Rightarrow A00A$
- $A \Rightarrow 0A\ |\ 1A\ |\ 0\ |\ 1$

### 4(c)
Geben Sie alle möglichen Ableitungen mit Regeln aus der Grammatik $G_2$ für das Wort $10001$ an.


## Übung 5
Betrachten Sie folgende Grammatik $G$:
- $S \Rightarrow x\ |\ yS$
- $xy \Rightarrow yx$
- $yx \Rightarrow xy$

### 5(a)
Können Sie mit $G$ das Wort $xxy$ ableiten?
Können Sie mit $G$ das Wort $xyy$ ableiten?
Begründen Sie jeweils Ihre Antwort.

### 5(b)
Beschreiben Sie die von $G$ erzeugte Sprache in formaler Mengenschreibweise.

### 5(c)
Gibt es eine Grammatik $G'$ mit $L(G') = L(G)$, sodass $G'$ weniger als vier Regeln hat?
