Theoretische Informatik und Logik ¨Ubungsblatt 5 (WS 2008

Werbung
Theoretische Informatik und Logik
Übungsblatt 5 (WS 2008)
Lösungen
Aufgabe 5.1 Geben Sie für jede der folgenden Grammatiken und die von der jeweiligen Grammatik
erzeugte Sprache an, ob Sie regulär, kontextfrei und/oder monoton ist:
a) G1 = h{A, B, C}, {0, 1}, {A → 0A | 1B,
b) G2 = h{S, T }, {a, b}, {S → aT | b,
B → 1C,
C → 0C | ε}, Ai
T → Sb}, Si
c) G3 = h{A, B}, {0}, {A → ABA | B | ε,
B → 0 0 | ε}, Ai
Lösung
a) G1 ist eine reguläre, und somit auch kontextfreie Grammatik. G1 ist jedoch nicht monoton,
da in einer monotonen Grammatik C → ε nicht erlaubt wäre, nachdem C auch auf der
rechten Seite einer Produktion (C → 0C) vorkommt.
L(G1 ), nachdem von einer regulären Grammatik erzeugt, ist sicher regulär, und somit, nach
der Chomsky-Hierarchie auch kontextfrei und monoton.
(Bemerkung: L(G1 ) = {0}∗ {1 1}{0}∗ .)
b) G2 ist eine kontextfreie und monotone Grammatik. (Wegen der Produktionen T → Sb und
S → b ist G2 nicht regulär.)
L(G2 ) = {an bn+1 | n ≥ 0} ist keine reguläre, aber eine kontextfreie, und somit auch monotone
Sprache.
c) G3 ist eine kontextfreie Grammatik. (Wegen der Produktionen A → ABA | B und B → 0 0
ist G2 nicht regulär, wegen A → ε und B → ε ist G3 auch nicht monoton, nachdem A und
B auch auf der rechten Seite einer Produktion (A → ABA | B) vorkommen.)
L(G3 ) = {00}∗ ist aber regulär, und somit auch eine kontextfreie und monotone Sprache.
Insgesamt erhalten wir also:
G1
L(G1 )
G2
L(G2 )
G3
L(G3 )
regulär
×
×
×
kontextfrei
×
×
×
×
×
×
monoton
×
×
×
×
Aufgabe 5.2 Zeigen Sie mittels entsprechender Abschlusseigenschaften (ohne direkte Zuhilfenahme des Pumping Lemmas für kontextfreie Sprachen), dass die Sprache {a3n b28 c2n b2n | n ≥ 1}
nicht kontextfrei ist. (Sie können dabei nur davon ausgehen, dass {0kn 1ln 2mn | n ≥ 1} für beliebige Konstanten k, l, m ≥ 1 nicht kontextfrei ist.)
Lösung Beweis indirekt. Angenommen, die Sprache L = {a3n b28 c2n b2n | n ≥ 1} ist kontextfrei.
Sei dann
M = ({q0 , q1 }, {a, b, c}, {0, 1, 2}, δ, q0 , {q1 })
die (deterministische) gsm mit
δ(q0 , a) = (q0 , 0),
δ(q1 , b) = (q1 , 2).
δ(q0 , b) = (q0 , ε),
δ(q0 , c) = (q1 , 1),
1
δ(q1 , c) = (q1 , 1),
a/0,
b/ε
c/1,
b/2
? c/1
?
}
- m
j
q0
q1
Da die Familie der kontextfreien Sprachen gegenüber beliebigen gsm-Abbildungen abgeschlossen
ist, müsste auch M (L) = {03n 12n 22n | n ≥ 1} kontextfrei sein, was aber nicht der Fall ist.
Widerspruch! Somit kann auch L nicht kontextfrei sein.
(Man beachte, dass in diesem Falle die Verwendung eines Homomorphismus nicht ausreicht, da der
erste Block von Symbolen b gelöscht werden muss, während der zweite Block auf eine entsprechende
Anzahl von Symbolen 2 abgebildet werden muss.)
Aufgabe 5.3 Zeigen Sie mittels entsprechender Abschlusseigenschaften (ohne direkte Zuhilfenahme des Pumping Lemmas für kontextfreie Sprachen), dass die Sprache {a2n b2008 c3n b3n d2n | n ≥ 1}
nicht kontextfrei ist. (Sie können dabei nur davon ausgehen, dass {a6n b6n c6n | n ≥ 1} nicht kontextfrei ist.)
Lösung Beweis indirekt. Angenommen, die Sprache L = {a2n b2008 c3n b3n d2n | n ≥ 1} ist kontextfrei. Sei dann h der Homomorphismus mit
h : {a, b, c, d}∗ → {a, b, c}∗
sowie
h(a) = a3 ,
h(c) = b2 ,
h(b) = ε,
h(d) = c3
Da die Familie der kontextfreien Sprachen gegenüber beliebigen Homomorphismen abgeschlossen
ist, müsste auch
h({a2n b2008 c3n b3n d2n | n ≥ 1}) = {a6n b6n c6n | n ≥ 1}
kontextfrei sein, was aber nicht der Fall ist. Widerspruch! Somit kann auch L nicht kontextfrei
sein.
Aufgabe 5.4 Definieren Sie eine deterministische Turingmaschine M , welche die Sprache
L = {0n 12n−1 | n ≥ 1}
akzeptiert. M soll dabei die Kellerautomatenbedingung erfüllen und in Normalform sein.
Lösung Wir definieren eine (deterministische) Turingmaschine
M = ({q0 , q1 , q2 , qf }, {0, 1}, {A, Z0 , B}, δ, q0 , {Z0 Z1 , Z2 }, B, {qf })
in Normalform, welche L akzeptiert; die Übergangsfunktion δ kann z.B. folgendermaßen definiert
werden:
1 : δ(q0 , 0, B) = (q1 , A, R, R)
2 : δ(q1 , 0, B) = (q0 , A, S, R)
3 : δ(q1 , 1, B) = (q2 , B, R, L)
4 : δ(q2 , 1, A) = (q1 , B, S, L)
5 : δ(q2 , Z2 , Z0 ) = (qf , Z0 , S, R)
Erläuterung:
1, 2 : Für jedes (bis auf das letzte) eingelesene Symbol 0 werden zwei Symbole A in den Keller
(bzw. auf das Arbeitsband) geschrieben. (Für das letzte eingelesene Symbol 0 wird nur ein Symbol
A in den Keller geschrieben)
3, 4 : nun wird für jedes eingelesene Symbol 1 ein Symbol A im Keller gelöscht;
5 : wird gleichzeitig mit dem Ende der Eingabe (dem Erreichen von Z2 auf dem Eingabeband)
das Kellergrundsymbol Z0 auf dem Arbeitsband erreicht, geht M in den Enzustand qf über und
akzeptiert somit die Eingabe.
2
Aufgabe 5.5 Geben Sie jeweils ein 0L-System für folgenden Sprachen an.
n
n
a) L1 = {a5 c5 a5 | n ≥ 0}
n
n
n
n
b) L2 = {a2 b3 c5 d8 | n ≥ 0}
c) L3 = {ε, a, a2 }
Lösung
a) G1 = ({a, c}, {a → a5 , c → c}, a c5 a)
b) G2 = ({a, b, c, d}, {a → a2 , b → b3 , c → c5 , d → d8 }, a bc d)
c) G3 = ({a}, {a → a, a → ε}, aa)
3
Herunterladen