Theoretische Informatik
Theoretische Informatik
Theoretische Informatik
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Wiederholung<br />
Maschinenmodell:<br />
◮ Bestandteile: Steuereinheit, Speicher<br />
◮ Konfiguration, Berechnung, Akzeptanz<br />
◮ Maschinenmodell definiert Sprachklasse (Menge aller durch<br />
eine solche Maschine akzeptierbaren Sprachen)<br />
◮ Berechnung: algorithmische Lösung des Wortproblems<br />
Kellerautomaten (PDA) A = (X, Q, Γ, δ, q 0 , F, ⊥)<br />
◮ Maschinenmodell mit Stack als Speicher<br />
◮ Akzeptanzbedingungen (Definition akzeptierender<br />
Konfigurationen):<br />
◮ akzeptierende Zustände<br />
◮ leerer Keller<br />
Beide Akzeptanzbedingungen sind äquivalent<br />
(definieren dieselbe Sprachklasse).<br />
Die Menge aller PDA-akzeptierbaren Sprachen ist genau die Menge<br />
aller von kontextfreien Grammatiken (Chomsky-Typ 2) erzeugten<br />
Sprachen.<br />
187
Nicht-kontextfreie Sprachen<br />
Die Grammatik G = ({A, B, C}, {a, b, c}, P, A) mit<br />
⎧<br />
⎪⎨<br />
P =<br />
⎪⎩<br />
A<br />
A<br />
CB<br />
aB<br />
bB<br />
bC<br />
cC<br />
⎫<br />
→ aABC,<br />
→ aBC,<br />
→ BC, ⎪⎬<br />
→ ab,<br />
→ bb,<br />
→ bc, ⎪⎭<br />
→ cc<br />
erzeugt die Sprache L(G) = {a n b n c n | n > 0}.<br />
(Chomsky-Typ 1, kontextsensitiv)<br />
Fakt<br />
Die Sprache L = {a n b n c n | n > 0} ist nicht kontextfrei.<br />
188
Pumping-Lemma für kontextfreie Sprachen<br />
Sprache L ⊆ X ∗ hat die Pump-Eigenschaft gdw.<br />
∃n ∈ N ∀w ∈ L (|w| ≥ n →<br />
∃u, v, x, y, z ∈ X ∗ (w = uvxyz ∧ |vxy| ≤ n ∧ |vy| ≥ 1 →<br />
∀i ∈ N : uv i xy i z ∈ L ))<br />
n heißt hier Pumping-Konstante.<br />
Satz (Pumping-Lemma für CF)<br />
Jede kontextfreie Sprache hat die Pump-Eigenschaft.<br />
Ausführlichere Formulierung desselben Satzes:<br />
Satz (Pumping-Lemma für CF)<br />
Für jede kontextfreie Sprache L<br />
existiert eine Zahl n ∈ N (Pumping-Konstante), so dass<br />
für jedes Wort w ∈ L mit |w| ≥ n<br />
eine Zerlegung w = uvxyz existiert mit<br />
u, v, x, y, z ∈ T ∗ , |vy| ≥ 1, |vxy| ≤ n und<br />
für jede Zahl i ∈ N gilt uv i xy i z ∈ L.<br />
189
Beispiele nicht-kontextfreier Sprachen<br />
◮ {a n b m a n b m | m, n ∈ N}<br />
◮ {w ∈ {a, b} ∗ | |w| a = |w| b = |w| c }<br />
◮ {ww | w ∈ {a, b} ∗ }<br />
◮ {a 2k | k ∈ N}<br />
Das Pumping-Lemma ist geeignet, um zu zeigen, dass eine<br />
Sprache nicht kontextfrei ist.<br />
ABER:<br />
Es gibt nicht-kontextfreie Sprachen mit Pump-Eigenschaft,<br />
z.B. L = {a j b k c l d m | j = 0 ∨ k = l = m}<br />
190