# Grenzen & Größen endlicher Automaten ## Nerode-Index einer Sprache - Sei $L=\{w ∈ \{x,y,z\}^*\}\space | \space \#_z(w) ∈ \{2,3\}\}$ - betrachte die Wörter aus $\{x, y, z\}^*$ - Gruppiere sie hinsichtlich des "Grad der Zugehörigkeit" zu $L$ - ![image_780.png](image_780.png) - Beobachtung: - zwei Worte $u ∈ L$ und $v \not\in L$ sind sicherlich nicht sehr ähnlich - zwei Worte $u,v ∈ L$ _können_ ähnlich sein - ähnlich: $zz$ und $yzxxzy$ - nicht ähnlich: $zz$ und $zzz$ - zwei Worte $u,v \not\in L$ _können_ ähnlich sein - ähnlich: $ ε$ und $xxy$ - nicht ähnlich: $ ε$ und $yzxxxy$ - **$u,v ∈ Σ^*$ sind ähnlich bezüglich $L$, wenn:** - durch anhängigen des gleichen, beliebigen Wortes - in beiden Fällen ein Wort aus $L$ entsteht - in beiden Fällen ein Wort aus $Σ \backslash L$ entsteht ### Rechtsäquivalenz - gegebene Sprache $L$ über Alphabet Σ - $u,v ∈ Σ^*$ heißen rechtsäquivalent bezüglich L, wenn - $∀s ∈ Σ^*: u*s ∈ L ↔ v*s ∈ L$ - wir schreiben auch: $(u,v) ∈ R_L$ oder $u \space R_L \space v$ ### Nerode-Klassen und -Index - gegebene Sprache $L$ über Alphabet Σ und Wort $u ∈ Σ^*$ - **Nerode-Klasse $N(u)$**: Menge der zu $u$ rechtsäquivalenten Wörter: - $N(u) := \{v ∈ Σ^* \space | \space (u,v) ∈ R_L\}$ - **Nerode-Index** von L: Anzahl Nerode-Klassen ### Beispiel - ist $v ∈ N(u)$ so gilt $N(v)=N(u)$ - beliebiges $u ∈ N$ heißt _Repräsentant_ der Nerode-Klasse $N$ - Wie lauten die Nerode-Klassen von der Sprache $L_1 = \{w ∈ \{x,y,z\}^* \space | \space \#_Z(w) ∈ \{2,3\}\}$? - ![image_781.png](image_781.png) - Wie viele Nerode-Klassen hat $L_2=\{0^n*1^n \space | \space n ∈ N_0\}$ - ∞ - bspw. $N_i=N(0^i)$ für $i ∈ N_0$ ## Eigenschaften von Nerode-Klassen ### Nützliche Eigenschaften #### Alles-oder-nichts > Sei $L$ eine Sprache und $N$ eine Nerode Klasse von $L$. > Dann gilt entweder $N ⊆ L$ oder $N \not ⊆ L := Σ^* \backslash L$ **Beweis:** - wähle beliebiges, festes $u ∈ N$ - für jedes $v ∈ N$ gilt: $u$ und $v$ sind rechtsäquivalent - insbesondere: $u = u * ε ∈ L ↔ v * ε = v ∈ L$ - also entweder sind _alle_ solche Wörter $v$ aus $L$ (wenn $u ∈ L$) - oder es sind alle solche Wörter $v$ nicht aus $L$ (wenn $u \not ∈ L$) #### Mitgegangen-Mitgefangen > Sei $L$ eine Sprache und $u,v ∈ Σ^*$ Wörter aus der gleichen Nerode-Klasse. > Dann gilt für alle $s ∈ Σ^*$: $N(u*s)=N(v*s)$ **Beweis:** - zu zeigen: $(u*s, v*s) ∈ R_{L(A)}$ - d.h. $u*s$ und $v*s$ sind [rechtsäquivalent](#rechts-quivalenz) - sei dazu $w ∈ Σ^*$ beliebig, dann gilt: - ![image_782.png](image_782.png) #### Gemeinsame Reise > Sei $A = (Σ, Q, q_s, Q_A, δ)$ ein DEA. > Betrachte zwei Worte $u,v ∈ Σ^*$ die $A$ in den gleichen Zustand überführen. > Dann sind $u$ und $v$ rechtsäquivalent bzgl. $L(A)$ ![image_783.png](image_783.png) ## Nerode Klassen als Zustände > Nerode Klassen eignen sich perfekt als DEA-Zustände ### Konstruktionsidee Beispiel ![image_819.png](image_819.png) ![image_820.png](image_820.png) ### Formale Konstruktion Sei $L ⊆ Σ^*$ eine Sprache mit endlichem Index $m ∈ \mathbb{N}$. Seien $N_1, N_2, ..., N_m$ die Nerode-Klassen von $L$. Dann definieren wir den DEA $A_L =(Σ, Q, q_s, Q_a, δ)$: - $Q :=\{N_1, N_2, ..., N_m\}$ - $q_s:= N(ε)$ - $Q_a :=\{N_i\space|\space N_i ⊆ L\}$ - für alle $i ∈ \{1,2,...,m\}$ sei $δ(N_i,x):=N(w*x)$... - für ein _beliebiges_ $w ∈ N_i$ ## Der Satz von Myhill-Nerode > Zu einer Sprache $L$ gibt es genau dann einen DEA $A = (Σ, Q, q_s, Q_A, δ)$ mit > $L(A) = L$, wenn $L$ endlichen Index hat. ### Beweis (Richtung →) {id="beweis-richtung_1"} - Sei $A$ ein DEA mit $L(A)=L$ - Wörter, die den gleichen Zustand erreichen - gehören zur gleichen Nerode Klasse - Wenn man ein beliebiges Wort betrachtet endet man in einer Nerode-Klasse - **jede Nerode-Klasse entspricht einer der endlich vielen $N_q$** ### Beweis (Richtung ←) - Seien $N_1,N_2,...,N_m$ endlich viele Nerode-Klassen - ![image_821.png](image_821.png) - **$A$ ist ein DEA der die Sprache $L$ akzeptiert** ## Reaping the Fruits! ### Anwendung 1: Minimale endliche Automaten - Weniger Zustände als Nerode-Klassen gibt es nicht - > Ein DEA $A$ heißt minimal, wenn jeder DEA, der $L(A)$ akzeptiert, mindestens so viele Zustände wie $A$ hat. ### Anwendung 2: Nichtexistenz von DEAs - gegebene Sprache $L$ - $L$ hat unendlich viele Nerode-Klassen - > Sei $L$ eine Sprache mit Index $i ∈ \mathbb{N}$. Jeder minimale DEA für $L$ hat $i$ Zustände. #### Zu $L ⊆ Σ^*$ gibt es keinen DEA - definiere _unendliche_ Wortmenge $X ⊆ Σ^*$ - zeige: keine zwei Worte sind rechtsäquivalent - wähle $u,v ∈ X$ mit $u \not = v$ beliebig - finde ein $w ∈ Σ^*$ mit $u*w ∈ L$ und $v * w \not ∈ L$ - dann hat $L$ Index $i ≥ |X| = ∞$ und hat folglich keinen DEA ## Minimierungsalgorithmus