Kapitel 14&15
This commit is contained in:
parent
fc68145c72
commit
0c42cf9ba9
@ -798,3 +798,100 @@ Konstruktion: Sei M ein PDA. Konstruiere die kontextfreie Grammatik $G_M=(V,\sum
|
||||
|
||||
PDAEs akzeptieren also so, wie es NFAs tun: Der Inhalt des Kellers nach dem kompletten Lesen der Eingabe ist irrelevant, es kommt nur auf den erreichten Zustand an.
|
||||
|
||||
> Lemma: Jede kontextfreie Sprache wird von einem PDAE akzeptiert
|
||||
|
||||
> Lemma: Ist M ein PDAE, so wird L(M) von einem PDA akzeptiert, ist also kontextfrei
|
||||
|
||||
> Satz: Eine Sprache L ist genau dann kontextfrei, wenn sie von einem PDAE akzeptiert wird
|
||||
|
||||
> Satz: Seien L eine kontextfreie und R eine reguläre Sprache. Dann ist $L\cap R$ kontextfrei
|
||||
|
||||
## Deterministisch kontextfreie Sprachen
|
||||
> Definition: ein deterministischer Kellerautomat oder DPDA ist ein PDAE M, so dass für alle $z\in Z, a\in\sum, A\in\Gamma$ gilt: $|\delta(z,a,A)|+|\delta(z,\epsilon,A)|\leq 1$.
|
||||
|
||||
> Definition: eine Sprache L ist deterministisch kontextfrei, wenn es einen deterministischen Kellerautomaten M gibt mit $L(M)=L$
|
||||
|
||||
- Ziel: ist $L\subseteq \sum^*$ deterministisch kontextfrei, so auch $\sum^*\backslash L$\\
|
||||
- Beweisidee: vertausche die akzeptierenden und die nichtakzeptierenden Zustände\\
|
||||
- Problem: es kann Wörter w geben, die vom DPDA M nicht vollständig gelesen werden, weil
|
||||
- der Keller leer ist, bevor das Eingabewort vollständig gelesen wurde
|
||||
- es keine passende Anweisung gibt
|
||||
- M in eine endlose Folge von $\epsilon$-Transitionen gerät, ohne das Wort bis zu Ende zu lesen
|
||||
- vorläufiges Ziel, ein äquivalenter DPDA M':
|
||||
- M' den Keller niemals leert
|
||||
- M' niemals blockiert
|
||||
- M' erlaubt keine endlosen Folgen von $\epsilon$-Transitionen
|
||||
- Lösungen:
|
||||
- Füge neues Kellerinitialisierungssymbol ein, wird dieses gesehen, so blockiere
|
||||
- Wenn sich neuer DPDA M' in Zustand $z_{abl}$ befindet, so liest er Wort zu Ende und akzeptiert nicht
|
||||
- Wenn sich M' in Zustand $z_{akz}$ befindet, so liest er Wort zu Ende. Ist das restliche Wort $\epsilon$, so akzeptiert er, ist es nicht $\epsilon$, so wechselt er in $z_{abl}$ (und akzeptiert also nicht).
|
||||
|
||||
> Lemma: Sei M ein DPDA. Dann existiert ein DPDA $M_1$ mit $L(M)=L(M_1)$, so dass $M_1$ den Keller nie vollständig leert.
|
||||
|
||||
> Lemma: Zu jedem DPDA M existiert ein DPDA M' mit $L(M)=L(M')$, so dass M' jedes Wort w bis zum Ende liest
|
||||
|
||||
> Satz: Ist $L\subseteq \sum^*$ deterministisch kontextfrei, so auch $\sum^*\backslash L$
|
||||
|
||||
> Satz: aus einem DPDA M kann ein DPDA M' berechnet werden mit $L/M')=\sum^*\backslash L(M)$
|
||||
|
||||
## Abschlusseigenschaften
|
||||
Erinnerung: Die Klasse der **regulären Sprachen** ist abgeschlossen unter
|
||||
- Vereinigung ($L_1, L_2 \text{ regulär } \Rightarrow L_1\cup L_2 \text{ regulär }$)
|
||||
- Schnitt ($L_1, L_2 \text{ regulär } \Rightarrow L_1\cap L_2 \text{ regulär }$)
|
||||
- Komplement ($L \text{ regulär }\Rightarrow \sum^*\backslash L \text{ regulär }$)
|
||||
- Produkt/Konkatenation ($L_1, L_2 \text{ regulär }\Rightarrow L_1L_2 \text{ regulär }$ )
|
||||
- Stern-Operation ($L \text{ regulär }\Rightarrow L^* \text{ regulär }$ )
|
||||
|
||||
Satz: die Klasse der **kontextfreien Sprachen** ist abgeschlossen unter
|
||||
- Vereinigung ($L_1, L_2 \text{ kontextfrei } \Rightarrow L_1\cup L_2 \text{ kontextfrei }$)
|
||||
- Produkt/Konkatenation ($L_1, L_2 \text{ kontextfrei }\Rightarrow L_1L_2 \text{ kontextfrei }$ )
|
||||
- Stern-Operation ($L \text{ kontextfrei }\Rightarrow L^* \text{ kontextfrei }$ )
|
||||
-
|
||||
die Klasse der kontextfreien Sprachen ist **nicht** abgeschlossen unter
|
||||
- Schnitt ($L_1, L_2 \text{ kontextfrei } \Rightarrow L_1\cap L_2 \text{ kontextfrei }$)
|
||||
- Komplement ($L \text{ kontextfrei }\Rightarrow \sum^*\backslash L \text{ kontextfrei }$)
|
||||
-
|
||||
es folgt
|
||||
- Es gibt kontextfreie Sprachen, die nicht deterministisch kontextfrei sind.
|
||||
|
||||
## das Pumping Lemma für kontextfreie Sprachen
|
||||
Idee: Man versucht auszunutzen, daß eine kontextfreie Sprache von einer Grammatik mit endlich vielen Nichtterminalen erzeugt werden muss. Das bedeutet auch: wenn ein Ableitungsbaum ausreichend tief ist, so gibt es einen Ast, der ein Nichtterminal mehrfach enthält. Die durch diese zwei Vorkommen bestimmten Teilbäume werden wir „pumpen“.
|
||||
|
||||
Pumping Lemma (Bar-Hillel, Perles, Shamir ’61):
|
||||
```
|
||||
Wenn L eine kontextfreie Sprache ist,
|
||||
dann gibt es n>= 1 derart,
|
||||
daß für alle z in L mit |z| >= n gilt:
|
||||
es gibt Wörter u, v , w , x, y in SUM mit
|
||||
(i) z = uvwxy ,
|
||||
(ii) |vwx| <= n,
|
||||
(iii) |vx| >= 1 und
|
||||
(iv) uv^i wx^i y in L für alle i >= 0
|
||||
```
|
||||
Dieses Lemma spricht nicht über kontextfreie Grammatiken, sondern nur über die Eigenschaften der Sprache. Daher ist es dazu geeignet, Aussagen über Nicht-Kontextfreiheit zu machen.
|
||||
|
||||
- alle Sprachen, enthalten
|
||||
- Typ-0-Sprachen, enthalten
|
||||
- Typ-1-Sprachen (kontext sensitiv), enthalten
|
||||
- Typ-2-Sprachen (kontext frei), enthalten
|
||||
- Typ-3-Sprachen (rechtslinear)
|
||||
|
||||
Spielschema: Wir (die Beweiser) wollen zeigen, daß die Sprache L nicht kontextfrei ist. Dazu müssen wir das folgende Spiel (gegen den Gegner) gewinnen
|
||||
1. G wählt eine Zahl $n\geq 1$
|
||||
2. B wählt ein $z\in L$ mit $|z|\geq n$
|
||||
3. G wählt u,v,w,x,y mit
|
||||
1. $z=uvwxy$
|
||||
2. $|vwx|\leq n$
|
||||
3. $|vx|\geq 1$
|
||||
4. B wählt ein i und zeigt, dass $uv^i wx^i y \not\in L$
|
||||
|
||||
Die Sprache L ist nicht kontextfrei, falls B unabhängig von den Wahlen von G in Runden 1 und 3 immer so wählen kann (in Runden 2 und 4), dass schließlich $uv^i wx^i \not\in L$ gilt
|
||||
|
||||
Beispiel: $L=\{w2w| w\in\{0,1\}^*\}$ ist nicht kontextfrei
|
||||
|
||||
## das Lemma von Ogden (William Ogden)
|
||||
Wenn L eine kontextfreie Sprache ist, dann gibt es $n\geq 1$ derart, dass für alle $z\in L$, in denen n Positionen markiert sind, gilt: es gibt Wörter $u,v,w,x,y\in\sum^*$ mit
|
||||
1. $z=uvwxy$
|
||||
2. v oder x enthält wenigstens eine der Markierungen oder
|
||||
3. $uv^i wx^i y \in L$ für alle $i\geq 0$
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user