Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
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