18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

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.

4.4. CHOMSKY-HIERARCHIE 109<br />

Beispiel 1. Die Sprache {a n b n c n ; n ≥ 0}, die nicht kontextfrei ist (siehe 1 <strong>in</strong><br />

Abschnitt 2.4) ist kontextsensitiv. In der Tat ist die Grammatik <strong>in</strong> Beispiel 1 <strong>in</strong><br />

Abschnitt 4.3 offensichtlich kontextsensitiv.<br />

Beispiel 2. Jede kontextfreie Sprache, die ε nicht enthält, ist kontextsensitiv. Das<br />

folgt aus der Chomsky-Normalform, die immer kontextsensitiv ist, siehe 2.7.<br />

Bemerkung 1. Der Name ” kontextsensitiv“ stammt von der folgenden Form der<br />

Produktionen:<br />

uAw → uvw,<br />

wobei A e<strong>in</strong>e Variable und v e<strong>in</strong> nicht leeres Wort über Σ ∪ V ist. Jede derartige<br />

Produktion erlaubt uns, A durch v zu ersetzen, falls sich A im Kontext u?w bef<strong>in</strong>det.<br />

Es zeigt sich, dass jede kontextsensitive Sprache mit Hilfe dieser Regeln gegeben<br />

werden kann:<br />

Satz 1. Jede kontextsensitive Sprache kann von e<strong>in</strong>er Grammatik mit Produktionen<br />

uAw → uvw,<br />

(A Variable; u, v, w Wörter <strong>in</strong> (Σ ∪ V ) ∗ und v = ε) erzeugt werden.<br />

Beweis. Sei G e<strong>in</strong>e kontextsensitive Grammatik. Jede Produktion<br />

A1A2 . . .An → B1B2 . . . Bm (n ≤ m)<br />

wird durch Produktionen des obigen Typs ersetzt. Wir nehmen an, dass Ai Variablen<br />

s<strong>in</strong>d. (Sonst ersetzen wir Ai durch Variable Ai ∗ und fügen die Produktionen<br />

Ai ∗ → Ai h<strong>in</strong>zu.) Falls n = 2, ersetzen wir<br />

A1A2 → B1B2 . . . Bm<br />

(m ≥ 2)<br />

durch die folgenden vier Produktionen, die neue Variablen C1 und C2 enthalten:<br />

A1A2<br />

C1A2<br />

→ C1A2<br />

→ C1C2<br />

C1C2B3 . . . Bm → C1B2B3 . . . Bm<br />

C1B2B3 . . .Bm → B1B2B3 . . . Bm.<br />

Jede dieser Produktionen hat die gewünschte Form. Und es ist klar, dass diese<br />

Ersetzung ke<strong>in</strong>en E<strong>in</strong>fluss auf die erzeugte Sprache hat.<br />

Analog ersetzen wir für n = 3<br />

A1A2A3 → B1B2 . . .Bm (m ≥ 3)<br />

durch sechs Produktionen mit neuen Variablen C1, C2, C3 wie folgt:<br />

A1A2A3 → C1A2A3<br />

C1A2A3 → C1C2A3<br />

C1C2A3 → C1C2C3<br />

C1C2C3B4 . . .Bm → C1C2B3B4 . . . Bm<br />

C1C2B3B4 . . . Bm → C1B2B3B4 . . .Bm<br />

C1B2B3B4 . . . Bm → B1B2B3B4 . . . Bm<br />

Usw. für alle n ≥ 2.<br />

Beispiel 3. E<strong>in</strong>e Grammatik für {a n b n c n ; n ≥ 1}, die nur Produktionen vom Typ<br />

uAw → uvw hat. Wir nehmen die Grammatik aus Beispiel 2 <strong>in</strong> Kapitel 4.3 und<br />

wenden die Prozedur des obigen Beweises darauf an. Statt<br />

CB → BC<br />

schreiben wir<br />

CB → C1B<br />

C1B → C1C2<br />

C1C2 → BC2<br />

BC2 → BC<br />

Bemerkung 2. Die Entscheidung, ob für e<strong>in</strong>en gegebenen gerichteten Graphen<br />

G und zwei Knoten x, y e<strong>in</strong> Pfad von x nach y führt, kann mit e<strong>in</strong>em e<strong>in</strong>fachen

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!