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.
104 KAPITEL 4. CHURCHSCHE THESE<br />
Beispiel 1. E<strong>in</strong>e Grammatik für die Sprache<br />
{|, ||, ||||, . . . } = {2n ; n ∈ }<br />
(die nicht kontextfrei ist! ). Die Idee ist, dass wir mit dem Wort [A] anfangen und<br />
die Zahl von A’s verdoppelt werden kann. Dafür verwenden wir e<strong>in</strong>e Variable D, die<br />
l<strong>in</strong>ks auftauchen kann (also [ → [D) und rechts verschw<strong>in</strong>den kann (also D] → ]),<br />
und die auf ihrem Weg nach rechts A verdoppelt: DA → AAD. Am Ende bekommen<br />
wir [AA · · · A], wobei die Anzahl der A’s gleich 2n ist. Jetzt brauchen wir nur die<br />
Klammern zu entfernen und A <strong>in</strong> | umwandeln. Formal:<br />
G = ({|}, {S, A, D, [, ]}, S, R),<br />
wobei R die folgenden Produktionen s<strong>in</strong>d:<br />
(1) S → [A]<br />
(2) [ → [D<br />
(3) D] → ]<br />
(4) DA → AAD<br />
(5) [ → ε<br />
(6) ] → ε<br />
(7) A → |<br />
Es gilt:<br />
L(G) = {2n ; n ∈ }.<br />
Beweis. Erst zeigen wir, wie 2 n abgeleitet wird, also {2 n ; n ∈ } ⊆ L(G):<br />
S ⇒ [A] Regel (1)<br />
⇒ ∗ [D n A] Regel (2) n-mal<br />
⇒ [D n−1 AAD] Regel (4) 1-mal<br />
⇒ ∗ [D n−2 AAAAD 2 ] Regel (4) 2-mal<br />
.<br />
⇒∗ [A2nDn ] Regel (4) n-mal<br />
⇒∗ [A2n] Regel (3) n-mal<br />
⇒ A2n] Regel (5)<br />
⇒ A2n Regel (6)<br />
⇒ 2n Regel (7)<br />
Ist umgekehrt w e<strong>in</strong>e Zahl ist, also e<strong>in</strong> Wort über {|} mit S ⇒ ∗ w, beweisen wir<br />
w = 2 n , das heißt L(G) ⊆ {2 n ; n ∈ }. Sei<br />
S ⇒ w1 ⇒ w2 ⇒ · · · ⇒ wk ⇒ w<br />
e<strong>in</strong>e Ableitung von w. Bezeichnen wir durch m die Anzahl von Indizes i, für welche<br />
die Regel (2) die Basis für wi ⇒ wi+1 ist. Da wk ke<strong>in</strong> D enthält, musste die Regel<br />
(3) genau m-mal angewandt werden. Dabei wurde die Anzahl der A’s bei jedem<br />
” Durchgang“ e<strong>in</strong>es D’s (von l<strong>in</strong>ks also [D, nach rechts, d. h. D]) immer verdoppelt,<br />
da dieser Durchgang nur auf Grund der Regel (4) möglich ist. Am Anfang gibt es<br />
genau e<strong>in</strong> A: aus S ⇒ w1 folgt w1 = [A]. Also entstehen im Laufe der Ableitung<br />
genau 2m Symbole A. Da das term<strong>in</strong>ale Symbol | nur durch die Regel (7) ersche<strong>in</strong>en<br />
kann und wk = w ke<strong>in</strong>e Variablen enthält, beweist dies, dass<br />
w = | 2m.<br />
Beispiel 2. E<strong>in</strong>e Grammatik für die (nicht kontextfreie) Sprache L = {a n b n c n ;<br />
n ≥ 1}. Sei<br />
G = ({a, b, c}, {B, C, S}, S, R)<br />
die Grammatik mit den Regeln<br />
(1) S → aBC | aSBC<br />
(2) CB → BC<br />
(3) aB → ab<br />
(4) bB → bb<br />
(5) bC → bc<br />
(6) cC → cc