Kapitel 16
This commit is contained in:
parent
24bf5e89c9
commit
bce4308988
@ -895,3 +895,97 @@ Wenn L eine kontextfreie Sprache ist, dann gibt es $n\geq 1$ derart, dass für a
|
||||
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$
|
||||
|
||||
## Entscheidbarkeit
|
||||
Wir geben Algorithmen an, mit denen übliche Probleme für kontextfreie Sprachen gelöst werden können.
|
||||
> Wortproblem für eine kontextfreie Sprache $L$. Gegeben $w\in\sum^*$. Gilt $w\in L$?
|
||||
|
||||
Ist die kontextfreie Sprache L durch eine kontextfreie Grammatik in Chomsky-Normalform gegeben, so kann das Wortproblem mit dem CYK-Algorithmus in Zeit $O(|w|^3)$ gelöst werden.
|
||||
Ist L durch einen deterministischen PDA gegeben, so kann das Wortproblem für L sogar in Zeit $O(n)$ gelöst werden.
|
||||
|
||||
> Uniformes Wortproblem für kontextfreie Sprachen: Gegeben kontextfreie Grammatik G und Wort $w\in\sum^*$. Gilt $w\in L(G)$?
|
||||
|
||||
Lösung:
|
||||
- berechne kontextfreie Grammatik G' in Chomsky Normalform mit $L(G)=L(G')$
|
||||
- Wende CYK-Algorithmus auf die Frage $w\in L(G')$ an
|
||||
|
||||
> Leerheitsproblem für kontextfreie Sprachen: Gegeben eine kontextfreie Grammatik $G=(V,\sum,P,S)$. Gilt $L(G)=\varnothing$
|
||||
|
||||
Lösung: Sei $W=\{A\in V | \exists w\in\sum^*: A\Rightarrow_G^* w\}$ die Menge aller produktiven Nichtterminale. Dann gilt $L(G)\not= \varnothing \leftrightarrow S\in W$. Berechnung von W:
|
||||
$W_0:=\{A\in V | \exists w\in\sum^*:(A\rightarrow w)\in P\}$
|
||||
|
||||
`for i=0 to |V| do`
|
||||
|
||||
$W_{i+1}:= W_i \cup \{A\in V | \exists v \in (\sum\cup W_i)^* : (A\rightarrow v)\in P\}$
|
||||
|
||||
`endfor`
|
||||
|
||||
---
|
||||
Beispiel
|
||||
G sei kontextfreie Grammatik mit folgenden Produktionen:
|
||||
- S -> AC
|
||||
- A -> BC
|
||||
- B -> CA | b
|
||||
- C -> a
|
||||
|
||||
Wir haben
|
||||
1. $W_0={B,C}$
|
||||
2. $W_1={A,B,C}$
|
||||
3. $W_2=W_3=W_4=W_5={S,A,B,C}$
|
||||
4.
|
||||
Also sind alle Nichtterminale produktiv. Insbesondere gilt $L(G)\not=\varnothing$
|
||||
|
||||
> Behauptung: $W_{|V|}$ ist die Menge der produktiven Nichtterminale W
|
||||
|
||||
Beweis:
|
||||
1. zunächst $W_i\subseteq W$ per Induktion über i beweisen
|
||||
2. dann zeige $W\supseteq W_{|V|}$
|
||||
---
|
||||
|
||||
> Endlichkeitsproblem für kontextfreie Sprachen: Gegeben eine kontextfreie Grammatik G. Ist $L(G)$ endlich?
|
||||
|
||||
O.E. können wir annehmen, daß G in Chomsky-Normalform ist. Wir definieren einen Graphen $(W , E )$ auf der Menge der produktiven Nichtterminale mit folgender Kantenrelation: $E=\{(A,B)\in W\times W | \exists C \in W: (A\rightarrow BC)\in P \text{ oder } (A\rightarrow CB)\in P\}$
|
||||
|
||||
Beobachtung: $(A,B)\in E$ gilt genau dann, wenn es einen vollständigen A-Ableitungsbaum gibt, so daß B ein Kind der Wurzel beschriftet.
|
||||
|
||||
|
||||
### Unentscheidbarkeit bei kontextfreien Sprachen
|
||||
Folgende Probleme sind für kontextfreie Sprachen nicht entscheidbar, d.h. es gibt kein entsprechendes Verfahren (vgl. Abschnitt „Unentscheidbare Probleme“):
|
||||
- Universalitätsproblem: Gegeben eine kontextfreie Grammatik G . Gilt $L(G ) =\sum^*$?
|
||||
- Äquivalenzproblem: Gegeben zwei kontextfreie Grammatiken $G_1$ und $G_2$. Gilt $L(G_1)=L(G_2)$?
|
||||
- (Inhärente) Mehrdeutigkeit: Gegeben eine kontextfreie Grammatik G. Ist G (inhärent) mehrdeutig?
|
||||
- Komplementierbarkeit: Gegeben eine kontextfreie Grammatik G. Ist $\sum^*\backslash L(G)$ kontextfrei?
|
||||
- Determinisierbarkeit: Gegeben ein PDA M. Existiert ein DPDA M' mit $L(M) = L(M')$?
|
||||
- Regularität: Gegeben ein PDA M. Ist $L(M)$ regulär?
|
||||
|
||||
### Entscheidbarkeit bei deterministisch kontextfreien Sprachen
|
||||
Folgende Probleme sind entscheidbar:
|
||||
- Regularität: Gegeben ein deterministischer Kellerautomat P. Ist $L(P)$ regulär?
|
||||
- Äquivalenzproblem: Gegeben zwei deterministische Kellerautomaten $P_1$ und $P_2$. Gilt $L(P_1) = L(P_2)$?
|
||||
- Universalitätsproblem: Gegeben ein deterministischer Kellerautomat P. Gilt $L(P) = \sum^*$?
|
||||
|
||||
Bemerkung: Die anderen Probleme der vorherigen Sektion sind für DPDAs trivial:
|
||||
- Jede deterministisch kontextfreie Sprache hat eine eindeutige Grammatik.
|
||||
- Das Komplement jeder deterministisch kontextfreien Sprache ist wieder kontextfrei.
|
||||
- Zu jedem DPDA existiert ein äquivalenter DPDA.
|
||||
|
||||
### Unentscheidbarkeit bei deterministisch kontextfreien Sprachen
|
||||
Folgende Probleme sind für deterministische Kellerautomaten nicht entscheidbar:
|
||||
- Inklusionsproblem: Gegeben zwei deterministische Kellerautomaten $P_1$ und $P_2$ . Gilt $L(P_1)\subseteq L(P_2)$?
|
||||
- Schnittproblem: Gegeben zwei deterministische Kellerautomaten $P_1$ und $P_2$. Gilt $L(P_1)\backslash L(P_2) = \varnothing$?
|
||||
|
||||
Damit sind diese Probleme auch für allgemeine kontextfreie Sprachen unentscheidbar.
|
||||
Das folgende Schnittproblem ist jedoch entscheidbar:
|
||||
- Gegeben eine kontextfreie Grammatik $G_1$ und eine rechtslineare Grammatik $G_2$. Gilt $L(G_1)\cap L(G_2)=\varnothing$?
|
||||
|
||||
|
||||
## Zusammenfassung kontextfreie Sprachen
|
||||
- durch kontextfreie Grammatiken erzeugt, durch PDAs bzw. PDAEs erkannt, LL-Parsing
|
||||
- Chomsky- und Greibach-Normalform, Pumping-Lemma, CYK-Algorithmus
|
||||
- Klasse der
|
||||
- abgeschlossen unter Vereinigung, Verkettung, Iteration, Schnitt mit reg. Sprachen;
|
||||
- nicht abgeschlossen unter Komplement und Schnitt
|
||||
- Algorithmen für Wortproblem, Leerheit, Endlichkeit; es gibt keinen Algorithmus für Äquivalenz usw.
|
||||
- Klasse der det. kontextfreien Sprachen abgeschlossen unter Komplement,
|
||||
- es gibt Algorithmus für Äquivalenz,
|
||||
- es gibt keine Algorithmen für Schnitt- und Inklusionsproblem
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user