Einführung in die Theoretische Informatik
Einführung in die Theoretische Informatik
Einführung in die Theoretische Informatik
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Technische Universität MünchenFakultät für <strong>Informatik</strong>Prof. Tobias Nipkow, Ph.D.Dr. Werner Meixner, Dr. Alexander KraussSommersemester 2010Lösungsblatt 54. Juni 2010<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> <strong>Theoretische</strong> <strong>Informatik</strong>Hausaufgabe 1 (5 Punkte)1. Konstruieren Sie e<strong>in</strong> Beispiel dafür, dass unerreichbare Zustände nicht automatischäquivalent s<strong>in</strong>d. Begründung!2. Sei Σ e<strong>in</strong> Alphabet und L ⊆ Σ ∗ . Beweisen oder widerlegen Sie:(a) Wenn w ≡ L w ′ und v ∈ Σ ∗ , dann ist auch wv ≡ L w ′ v.(b) Wenn w ≡ L w ′ und v ∈ Σ ∗ , dann ist auch vw ≡ L vw ′ .Lösungsvorschlag1. Es genügt e<strong>in</strong> jeweils unerreichbarer Endzustand und e<strong>in</strong> Nicht-Endzustand. Z.B.gilt q 1 ≢ A q 2 <strong>in</strong> folgendem DFA A:a,baq 2q 0 q 1a2. (a) Wir nehmen an, dass w ≡ L w ′ , und damit ∀z.(wz ∈ L ↔ w ′ z ∈ L).Für wv ≡ L w ′ v sei u ∈ Σ ∗ beliebig. Dann folgt wvu ∈ L ↔ w ′ vu ∈ L direktaus der Annahme, wenn man vu für z e<strong>in</strong>setzt.(b) Die Aussage ist falsch. Gegenbeispiel: L = L(a ∗ b ∗ ), w = ab, w ′ = b, v = b.Hausaufgabe 2 (5 Punkte)Beschreiben Sie e<strong>in</strong> Entscheidungsverfahren, welches für e<strong>in</strong>en gegebenen DFAM = (Q, Σ, δ, q 0 , F ) entscheidet, ob jedes von M akzeptierte Wort e<strong>in</strong>e ungerade Längehat. Benutzen Sie dabei den Test auf Leerheit der Sprache e<strong>in</strong>es Automaten.
2.ɛq sɛq 0aq 1bɛ b baɛq 2 q 3aa,b3. Idee: Sei N e<strong>in</strong> ɛ-NFA N = (Q, Σ, δ, q 0 , F ), bei dem jeder Zustand vom Startzustanderreichbar ist. Daraus konstruiert man e<strong>in</strong>en neuen ɛ-NFA N ′ mit L(N ′ ) = suff(L(N)).Dafür fügt man e<strong>in</strong>en neuen Startzustand h<strong>in</strong>zu, von dem e<strong>in</strong> ɛ-Übergang <strong>in</strong> jedenZustand führt.Formal ist N ′ wie folgt def<strong>in</strong>iert: N ′ = (Q ∪ {q s }, Σ, δ ′ , q s , F ), mitδ ′ (q s , ɛ) = Qδ ′ (q s , a) = ∅δ ′ (q, b) = δ(q, b)∀a ∈ Σ∀q ∈ Q, b ∈ Σ ∪ {ɛ}Hausaufgabe 4 (5 Punkte)1. Seien A 1 = (Q 1 , Σ, δ 1 , q 01 , F 1 ) und A 2 = (Q 2 , Σ, δ 2 , q 02 , F 2 ) beliebige DFAs, und M =(Q M , Σ, δ M , q 0M , F M ) e<strong>in</strong> m<strong>in</strong>imaler DFA mit L(M) = L(A 1 ) ∪ L(A 2 ).Zeigen Sie:|Q M | ≤ |Q 1 | · |Q 2 | .2. Berechnen Sie systematisch den Quotientenautomaten M/≡ M des DFAM = ({A, B, C, D, E, F }, {0, 1}, δ, A, {A, D}) mit folgender Übergangsfunktion:q δ(q, 0) δ(q, 1)A A FB C AC D BD D CE F DF A EProtokollieren Sie <strong>die</strong> Schritte des angewandten Verfahrens.3
Lösungsvorschlag1. Der Produktautomat A 1 × A 2 von A 1 und A 2 mit |Q 1 | · |Q 2 | Zuständenakzeptiert L(A 1 ) ∩ L(A 2 ).Es gilt L(A 1 ) ∪ L(A 2 ) = L(A 1 ) ∩ L(A 2 ) .Da es zu jedem DFA A e<strong>in</strong>en DFA A ′ mit gleichvielen Zuständen gibt, der L(A)akzeptiert, gibt es e<strong>in</strong>en DFA mit |Q 1 | · |Q 2 | Zuständen, der L(M) akzeptiert.2.A× B× C× × D× × E× × F(1) Nach der InitialisierungA× B× × 1 C× × D× × 1 × E× × 1 × × 1 F(2) Nach dem 2. DurchlaufErgebnis nach Kollabierung:1A, D C, F00 10 1 E, B4
Lösungsvorschlag1. L(G) = {a m b n | 0 ≤ m < n und m + n ungerade}.Man beachte, dass nicht verlangt wurde, <strong>die</strong> Darstellung zu beweisen.2. Es gilt a 2 b 4 ∉ L(G) und a 4 b 4 ∉ L(G). Dies würde sofort aus der Teilaufgabe 1 folgen.Allerd<strong>in</strong>gs wurde <strong>die</strong> Mengendarstellung für L(G) dort nicht bewiesen.Es genügt aber der Nachweis, dass alle Satzformen α der Grammatik G, <strong>die</strong> e<strong>in</strong>eVariable T enthalten, e<strong>in</strong>e gerade Länge haben. Da jedes Wort w ∈ L(G) mit derProduktion T → G ɛ aus e<strong>in</strong>er Satzform α abgeleitet wird, <strong>die</strong> genau e<strong>in</strong> T enthält,folgt dann, dass w ungerade Länge haben muss.Wir betten unsere zu beweisende Aussage e<strong>in</strong> <strong>in</strong> <strong>die</strong> umfassendere Aussage: Jedeaus S ableitbare Satzform enthält höchstens e<strong>in</strong>e Variable und jede aus S ableitbareSatzform α, <strong>die</strong> e<strong>in</strong>e Variable T enthält, besitzt e<strong>in</strong>e gerade Länge, Und jede aus Sableitbare Satzform β, <strong>die</strong> ke<strong>in</strong>e Variable T enthält, besitzt e<strong>in</strong>e ungerade Länge.Der Beweis wird <strong>in</strong>duktiv über <strong>die</strong> Länge der aus S ableitbaren Satzformen geführt.Für α = S gilt <strong>die</strong> Aussage offensichtlich (S wird aus S <strong>in</strong> 0 Schritten abgeleitet).Jede Satzform β, <strong>die</strong> genau e<strong>in</strong> S enthält wird durch Anwendung der ProduktionS → T b <strong>in</strong> e<strong>in</strong>e Satzform α überführt, <strong>die</strong> genau e<strong>in</strong> T enthält und um 1 länger ist.Wenn <strong>die</strong> Aussage für α gegolten hat, dann gilt sie auch für β.Jede Satzform α, <strong>die</strong> genau e<strong>in</strong> T enthält wird durch Anwendung e<strong>in</strong>er der 3 möglichenProduktionen <strong>in</strong> e<strong>in</strong>e Satzform β überführt, <strong>die</strong> genau e<strong>in</strong> S enthält und um 1länger ist, oder <strong>die</strong> ke<strong>in</strong>e Variablen enthält und um 1 kürzer ist. Wenn <strong>die</strong> Aussagefür β gegolten hat, dann gilt sie auch für α.Tutoraufgabe 1Sei G = (V, Σ, P, S) e<strong>in</strong>e kontextfreie Grammatik.Zeigen Sie, dass für alle α, β, u, v, α 1 , α 2 , β 1 , β 2 ∈ (Σ ∪ V ) ∗ gilt:1. α → G β =⇒ uαv → G uβv (Abschluss von → G unter Kontext)2. α → n G β =⇒ uαv →n G uβv (Abschluss von →n Gunter Kontext)3. α 1 → n G β 1 ∧ α 2 → m G β 2 =⇒ α 1 α 2 → n+mGβ 1 β 2(Dekompositionslemma (Lemma 3.9), 1. Teil: ⇐=)Lösungsvorschlag1. Wenn α → G β, dann gibt es nach Def. 3.4 e<strong>in</strong>e Regel A → γ ∈ P und α 1 , α 2 , so dassα = α 1 Aα 2 und β = α 1 γα 2 . Nun setzen wir α ′ 1 = uα 1 und α ′ 2 = α 2 v, womit wieder<strong>die</strong> Def<strong>in</strong>ition von → G erfüllt ist, denn uαv = α ′ 1Aα ′ 2 und uβv = α ′ 1γα ′ 2. Somit giltuαv → G uβv.6
2. Die zuvor gezeigte Eigenschaft übertragen wir mit Induktion über n auf <strong>die</strong> Mehrschrittrelation→ n G :Fall n = 0: α → 0 G β =⇒ α = β =⇒ uαv = uβv =⇒ uαv →0 G uβv.Fall n → n + 1: Wenn α → n+1Gβ, dannα → n G γ → G β =⇒ uαv → n G uγv → G uβv =⇒ uαv → n+1G3. Wir setzen jetzt lediglich <strong>die</strong> zuvor gezeigten Eigenschaften zusammen. Mit demAbschluss unter Kontext schließen wir:α 1 → n G β 1 =⇒ α 1 α 2 → n G β 1α 2α 2 → m G β 2 =⇒ β 1 α 2 → m G β 1β 2uβvMit der Kompositionseigenschaft aus VA1.2 folgt nun α 1 α 2 → n+mGβ 1 β 2Tutoraufgabe 2Geben Sie e<strong>in</strong>e kontextfreie Grammatik an, <strong>die</strong> <strong>die</strong> SpracheL = {w ∈ {a, b} ∗ | # a (w) = 2 · # b (w)}erzeugt und zeigen Sie <strong>die</strong> Korrektheit Ihrer Konstruktion.LösungsvorschlagEs sei G = ({S}, {a, b}, P, S) mit den Produktionen:S → ɛ | SaSaSbS | SaSbSaS | SbSaSaS .An den Produktionen der Grammatik fällt auf, dass vor und nach jedem term<strong>in</strong>alenZeichen <strong>die</strong> Variable S steht. Damit ist sofort klar, dass ohne <strong>die</strong> Anwendung von ɛ-Produktionen sich <strong>die</strong>se Eigenschaft auf alle abgeleiteten Satzformen α überträgt. Da <strong>die</strong>ɛ-Produktionen mit allen anderen Produktionen vertauscht werden können gilt für jedesableitbare Wort w ∈ L(G)S → G ∗ w S → ɛ ∗ w ,wobei w S für w = x 1 x 2 . . . x n mit x i ∈ Σ def<strong>in</strong>iert sei durchw S = Sx 1 Sx 2 S . . . Sx n S ,und → ∗ ɛ e<strong>in</strong>e Ableitung mit ausschließlicher Anwendung von ɛ-Produktionen bedeuten soll.Den e<strong>in</strong>fachen, <strong>in</strong>duktiv geführten Beweis <strong>die</strong>ser Eigenschaft verlegen wir <strong>in</strong> <strong>die</strong> Schlußbemerkung.Für den Beweis von L(G) = L müssen wir <strong>die</strong> zwei Richtungen L(G) ⊆ L und L ⊆ L(G)beweisen.L(G) ⊆ L: Wir zeigen mit Induktion über <strong>die</strong> Erzeugung von w, dass für jedes aus Sableitbare Wort w gilt # a (w) = 2 · # b (w). Dabei erhalten wir je e<strong>in</strong>en Fall für jedeProduktion.• S → ɛ: Für w = ɛ gilt # a (w) = # b (w) = 0 , d. h. w ∈ L.7
• S → SaSaSbS: Sei w ∈ L(S)aL(S)aL(S)bL(S), d. h. w = w 1 aw 2 aw 3 bw 4w i ∈ L(S). Nach Induktionshypothese gilt # a (w i ) = 2 · # b (w i ) und somit folgt# a (w) = # a (w 1 aw 2 aw 3 bw 4 ) = # a (w 1 ) + # a (w 2 ) + # a (w 3 ) + # a (w 4 ) + 2= 2 · (# b (w 1 ) + # b (w 2 ) + # b (w 3 ) + # b (w 4 ) + 1) = 2 · # b (w) .Es folgt w ∈ L.mit• Analog für <strong>die</strong> übrigen Produktionen.L ⊆ L(G): Wir zeigen, dass jedes Wort w mit # a (w) = 2# b (w) aus S ableitbar ist. Wirführen <strong>die</strong> Induktion über <strong>die</strong> Länge von w:• |w| = 0: Dann ist w = ɛ und S → ɛ.• Es gibt ke<strong>in</strong>e Wörter aus L der Länge 1 oder 2.• Alle Wörter aus L der Länge 3 (aab, aba, baa) s<strong>in</strong>d direkt <strong>in</strong> 5 Schritten (davon 4mal S → ɛ) ableitbar.• |w| = n + 1 ≥ 4: Nach Induktionsvoraussetzung s<strong>in</strong>d alle kürzeren Wörter w ′ ∈ Lableitbar.Wegen |w| ≥ 4 und w ∈ L gibt es e<strong>in</strong>e Zerlegung w = uaabv oder e<strong>in</strong>e Zerlegungw = ubaav. Wir betrachten nur den Fall w = uaabv.Es gilt offenbar w ′ = uv ∈ L und nach Induktionsvoraussetzung ist w ′ herleitbar,d. h. w ′ ∈ L(G). Es folgtS → G ∗ (uv) S → ɛ ∗ uSv → G ∗ uaabv = w .Man beachte das allgeme<strong>in</strong>e Schema: Für <strong>die</strong> Richtung L(G) ⊆ L verwendet man Induktionüber <strong>die</strong> Erzeugung e<strong>in</strong>es Worts. Für <strong>die</strong> Gegenrichtung verwendet man Eigenschaftender Sprache L und (meist) e<strong>in</strong> anderes Induktionspr<strong>in</strong>zip, hier <strong>die</strong> Induktion über <strong>die</strong>Länge.Schlussbemerkung : Wir zeigen noch durch Induktion für alle w ∈ L(G)• S → ɛ: Für w = ɛ gilt S → ɛ ∗ w.S → G ∗ w S → ɛ ∗ w ,• S → SaSaSbS: Sei w ∈ L(S)aL(S)aL(S)bL(S), d. h. w = w 1 aw 2 aw 3 bw 4w i ∈ L(S). Nach Induktionshypothese gilt S → ∗ G (w i ) S → ∗ ɛ (w i ). Es folgtmitS → G ∗ SaSaSbS → G ∗ (w 1 ) S a (w 2 ) S a (w 3 ) S b (w 4 ) S = w S → ɛ ∗ w .• Analog für <strong>die</strong> übrigen Produktionen.8