12.01.2014 Aufrufe

Theoretische Informatik

Theoretische Informatik

Theoretische Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!