This commit is contained in:
David Schirrmeister 2025-05-17 14:56:56 +02:00
parent 4cb391f8f1
commit 9eef36c04b
5 changed files with 58 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -126,3 +126,61 @@ Dann definieren wir den DEA $A_L =(Σ, Q, q_s, Q_a, δ)$:
## Minimierungsalgorithmus
> Grundprinzip: Äquivalente Zustände finden und zusammenführen
### Sprache eines Zustandes
- Sei $q ∈ Q$ der Zustand eines DEA $A = (Σ, Q, q_s, Q_a, δ)$
- Sprache des Zustands $q$
- $L_A(q) := \{w ∈ Σ^*\space|\space δ^*(q,w) ∈ Q_a\}$
### Äquivalente Zustände
- DEA $A = (Σ, Q, q_s, Q_a, δ)$
- $q_1, q_2 in Q$ sind **äquivalent ($q_q ≡_A q_2$)**
- wenn $L_A(q_q) = L_A(q_2)$
- **Äquivalenzklasse** von $q ∈ Q$
- Menge der zu $q$ äquivalenten Zustände
- $[q]_{≡_A} := \{q' ∈ Q\space|\space q' ≡_A q'\}$
#### Unterschied ähnliche Zustände vs. ähnliche Wörter
> [Nerode Klasse $N(w)$](#nerode-klassen-als-zust-nde) sammelt Wörter (_ähnlich zu w_)
>
> [Äquivalenzklasse $[q]_{≡_A}$](#quivalente-zust-nde) sammelt Zustände (_ähnlich zu q_)
- in beiden Fällen: "ähnlich" ≈ "gleiches Verhalten für Folgewort"
### Minimierungsstrategie
1. Bestimme Äquivalenzklassen bzgl. $≡_A$
- starte mit initialer Aufteilung und verfeinere Schritt für Schritt
- Zu jeder Aufteilung:
- Zeuge $z ∈ Σ^*$ für Notwendigkeit der Aufteilung
2. Baue Quotientenautomaten zu den Äquivalenzklassen
### Quotientenautomat
![image_838.png](image_838.png)
### Beispiel Minimierung
![image_839.png](image_839.png)
#### Bestimmung der Äquivalenzklassen
- initiale Aufteilung
- $P_0 = \{\{a,b,c,d,e,f\},\{c\}\}$
- Zeuge: `ε`
- akzeptierende / nicht akzeptierende Zustände
- 1. Verfeinerung
- $P_1 = \{\{a,d,e,f\},\{b\},\{c\}\}$
- Zeuge: `x`
- _kommt mit Eingabe von `x` in einen akzeptierenden Zustand_
- 2. Verfeinerung
- $P_2 = \{\{d,e,f\},\{a\},\{b\},\{c\}\}$
- Zeuge: `yx`
- _kommt mit Eingabe von `yx` in einen akzeptierenden Zustand_
- Ende
- für jede Klasse gilt:
- Zustände der Klasse verhalten sich für jedes weitere Zeichen gleich
- → können nicht weiter verfeinern
![image_840.png](image_840.png)
#### Quotientenautomat am Beispiel
![image_841.png](image_841.png)