Prof. Dr. Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4: Informatik Dennis Peuter 20. April 2017 Übung zur Vorlesung Grundlagen der theoretischen Informatik Aufgabenblatt 1 Lösungen Aufgabe 1.1 Bestimmen Sie jeweils, ob folgende Aussagen wahr sind, und begründen Sie Ihre Antwort: a) (∀n ∈ N : n ist eine gerade Zahl) =⇒ (∀n ∈ N : n ist durch 3 teilbar). Lösung: wahr, Prämisse falsch b) ∀n ∈ N : (∃m ∈ N+ : 4m = n ⇐⇒ n ≥ 4). Lösung: falsch: n = 5 c) ∃n ∈ N : (die Quersumme von n ist durch 10 teilbar ⇐⇒ n ist Vielfaches von 25). Lösung: wahr, n = 1, n = 550 Aufgabe 1.2 Spezizieren Sie die folgenden Teilmengen der natürlichen Zahlen formal. Beispiel: K , die Menge aller Kubikzahlen: K = {n ∈ N | ∃k ∈ N : (n = k · k · k)}. a) M2 , die Menge aller Zahlen, die beim Teilen durch 5 den Rest 2 ergeben. Lösung: M2 = {n ∈ N | ∃k ∈ N : (n = 5 · k + 2)} b) P , die Menge aller Primzahlen. Grundlagen der theoretischen Informatik SS2017 Blatt 1 Lösungen Lösung: P = {n ∈ N | n > 1 ∧ ∀a, b ∈ N : (n = a · b → (a = 1 ∨ b = 1))} Benutzen Sie in Ihrer Spezikation ausschlieÿlich die Symbole ∃ ∀ N Z : ∈ , · + = 6= ∧ ∨ ¬ ≤ < ≥ > { } | ( ) → ↔ bzw. Variablen oder natürliche Zahlen. Hinweis: : ist ein Doppelpunkt und kein Divisionszeichen. Aufgabe 1.3 Beweisen Sie mit Hilfe von Standardinduktion, dass n5 − n für alle n ∈ N durch 5 teilbar ist. Lösung: Zu zeigen ist ∀n ∈ N : ∃m ∈ N (n5 − n = 5m). Beweis mittels Standardinduktion über den natürlichen Zahlen. IA: Für n = 0 gilt die Aussage, denn 05 − 0 = 0 = 5 · 0. IV: Die Behauptung gelte für ein beliebiges aber festes n ∈ N. IS: Nun ist zu zeigen, dass gilt: ∃m0 ∈ N : ((n + 1)5 − (n + 1) = 5m0 ) IB (n + 1)5 − (n + 1) arith. Umformung = n5 + 5n4 + 10n3 + 10n2 + 5n + 1 − n − 1 2 arith. Umformung = 5m + 5(n + 2n + 2n + n) IV 5 4 3 = (n − n) + 5(n + 2n + 2n + n) 4 4 3 3 2 arith. Umformung 2 = 5(m + n + 2n + 2n + n) 0 0 mit m = m + n + 2n3 + 2n2 + n = 5m =⇒ ∃m0 ∈ N : ((n + 1)5 − (n + 1) = 5m0 ) 2 4 Grundlagen der theoretischen Informatik SS2017 Blatt 1 Lösungen Wiederholung: Alphabet, Wörter Alphabet: Σ Def.: endliche Menge von Buchstaben Σ = {a1 , . . . , an } Bsp.: Σ1 = {a, b, c}, Σ2 = {x, 3, 7, +, =} Wort über Σ: w Def.: eine endliche Folge w von Buchstaben aus Σ. |w| bezeichnet deren Länge. ε bezeichnet das leere Wort. Bsp.: w1 = aabbcab, w2 = 3 + x = 7, w3 = ε Konkatenation zweier Wörter: v ◦ w (auch: vw) Def.: Sei v = a1 . . . an und w = b1 . . . bm , v ◦ w := a1 . . . an b1 . . . bm Bsp.: aab ◦ bcab = aabbcab, abc ◦ ε = abc i-te Potenz eines Wortes: wi ( , falls i = 0 i Def.: w := i−1 ww , sonst Bsp.: ab1 = ab, ab2 = abab, ab0 = ε Reverses eines Wortes: wR ( av R Def.: wR := , falls w = va mit v ∈ Σ∗ a ∈ Σ , sonst Bsp.: abR = ba, εR = ε Wiederholung: Sprachen Sprache über Σ: L Def.: eine Menge von Wörtern über Σ Bsp.: L1 = {a, ab, abc}, L2 = ∅, L3 = {an |n ∈ N} Σ∗ bezeichnet die Menge aller Wörter über Σ. Konkatenation zweier Sprachen: L1 ◦ L2 Def.: L1 ◦ L2 := {v ◦ w | v ∈ L1 ∧ w ∈ L2 } Bsp.: {a, aa} ◦ {b, bb} = {ab, abb, aab, aabb} i-te Potenz einer Sprache: Li ( {} , falls i = 0 Def.: Li := i−1 L◦L , sonst Bsp.: L1 = {a, bb}:L01 = {ε}, L11 = L1 , L21 = {aa, abb, bba, bbbb} Kleene-∗-Abschluss einer Sprache: L∗ Def.: L∗ := i≥0 Li Bsp.: L1 = {a, bb}: L∗1 = {ε, a, bb, aa, abb, bba, bbbb, aaa, aabb, . . . } S 3 Grundlagen der theoretischen Informatik SS2017 Blatt 1 Lösungen Reverses einer Sprache: LR Def.: LR := {wR |w ∈ L} Bsp.: L1 = {a, ab, abc}: LR 1 = {a, ba, cba} Aufgabe 1.4 Gegeben seien die folgenden Sprachen: L1 = ∅ L2 = {ε, a} L3 = {b, c, ca} Bestimmen Sie die folgenden Sprachen: a) L4 = L3 ◦ L1 Lösung: L4 = ∅ b) L5 = L3 ◦ L2 Lösung: L5 = {b, c, ca} ∪ {ba, ca, caa} = {b, c, ca, ba, caa} c) L6 = L2 ◦ LR 3 Lösung: L6 = {b, c, ac} ∪ {ab, ac, aac} = {b, c, ac, ab, aac} d) L7 = L32 Lösung: L7 = {, a, aa, aaa} e) L8 = L∗1 Lösung: L8 = {} Aufgabe 1.5 Spezizieren Sie die im folgenden natürlichsprachlich angegebenen Sprachen über dem Alphabet Σ = {a, b, c} formal. Beispiel: L1 enthält genau die Wörter, die genau 2 a's enthalten: L1 = {w ∈ Σ∗ | #a (w) = 2}. a) L2 enthält genau die Wörter, die mit einem a beginnen. 4 Grundlagen der theoretischen Informatik SS2017 Blatt 1 Lösungen Lösung: L2 = {w ∈ Σ∗ | ∃w0 ∈ Σ∗ (w = a ◦ w0 )} = {a} ◦ Σ∗ b) L3 enthält genau die Wörter, die mit einem c enden. Lösung: L3 = {w ∈ Σ∗ | ∃w0 ∈ Σ∗ (w = w0 ◦ c)} = Σ∗ ◦ {c} c) L5 enthält genau die Wörter, die mehr a's als b's enthalten und deren Länge gerade ist. Lösung: L5 = {w ∈ Σ∗ | ∃n ∈ N0 (|w| = 2n ∧ #a (w) > #b (w)}) Hinweis: #a (w) ist die Anzahl der Vorkommen des Buchstabens a im Wort w. Wiederholung: Reguläre Ausdrücke: Syntax und Semantik Syntax: Die Menge der regulären Ausdrücke über Σ (RegΣ ) ist die kleinste Menge, die die folgenden Bedingungen erfüllt: 0 ∈ RegΣ ∀a ∈ Σ : a ∈ RegΣ ∀r, s ∈ RegΣ : (r + s) ∈ RegΣ (rs) ∈ RegΣ r∗ ∈ RegΣ Semantik: Der Reguläre Ausdruck r stellt eine Sprache I(r) dar: I(0) = ∅ I(a) = {a} für alle a ∈ Σ I(r + s) = I(r) ∪ I(s) I(rs) = I(r) ◦ I(s) I(r∗ ) = (I(r))∗ Abkürzung: 1 = 0∗ , I(1) = I(0∗ ) = (I(0))∗ = ∅∗ = {} Operatorreihenfolge: bindet stärker als Hintereinanderschaltung; Hintereinanderschaltung bindet stärker als +. ∗ Aufgabe 1.6 Geben Sie jeweils einen regulären Ausdruck über Σ = {a, b, c} an, der der natürlichsprachlichen Umschreibung entspricht: a) L1 enthält genau die Wörter, die mit a beginnen und mit c enden. 5 Grundlagen der theoretischen Informatik SS2017 Blatt 1 Lösungen Lösung: r1 = a(a + b + c)∗ c b) L2 enthält genau die Wörter, die mindestens ein b enthalten. Lösung: r2 = (a + c)∗ b(a + b + c)∗ Aufgabe 1.7 Konstruieren Sie jeweils I(ri ) für die folgenden Ausdrücke mithilfe der Denition der Semantik der regulären Ausdrücke. Vereinfachen Sie die resultierende Menge und bestimmen Sie jeweils die Mächtigkeit der Sprache. a) r1 = abc Lösung: I(r1 ) = {a} ◦ {b} ◦ {c} = {abc} |I(r1 )| = 1 b) r2 = abc + c(ba)∗ Lösung: I(r2 ) = ({a} ◦ {b} ◦ {c}) ∪ ({c} ◦ ({b} ◦ {a})∗ ) I(r2 ) = {abc} ∪ {c} ◦ {ba}∗ |I(r2 )| = |N| Wiederholung: Grammatik Def.: Eine Grammatik G ist ein Tupel G = (V, T, R, S). Dabei ist V eine endliche Menge von Variablen; T eine endliche Menge von Terminalen; R eine endliche Menge von Regeln. Eine Regel ist ein Element (P, Q) ∈ ((V ∪ T )∗ V (V ∪ T )∗ ) × (V ∪ T )∗ . P heiÿt Prämisse der Regel. Q heiÿt Conclusio der Regel. S ∈ V das Startsymbol. Konventionen: Wir vereinbaren folgende Abkürzungen: Für (P, Q) ∈ R schreibt man auch P →G Q oder P → Q. Für P → Q1 , P → Q2 , . . . , P → Qn schreibt man auch kurz P → Q1 |Q2 | . . . |Qn Beispiel: G1 = ({S, A, B}, {a, b}, R, S) mit R = {S → aA | bB | aa | bb, A → Sa, B → Sb} 6 Grundlagen der theoretischen Informatik SS2017 Blatt 1 Lösungen Wiederholung: Ableitung, Rechnung Ableitungsschritt: Def.: Sei G = (V, T, R, S) eine Grammatik, und seien w, w0 Wörter aus (V ∪ T )∗ , so gilt w ⇒G w0 , falls gilt: ∃u, v ∈ (V ∪ T )∗ : ∃(P, Q) ∈ R : (w = uP v und w0 = uQv) Bsp.: ab B a ⇒G1 ab Sb a u P v u Q v w w0 (da (B, Sb) ∈ R) Ableitung: Def.: Falls es Wörter w0 , . . . , wn ∈ (V ∪ T )∗ gibt mit w = w0 , wn = w0 und wi ⇒G wi+1 , so schreibt man w ⇒∗G w0 . Die Folge w0 , . . . wn heiÿt Ableitung oder Rechnung. Bsp.: aA ⇒∗G1 abSba, denn es existieren w0 , . . . , w3 mit w0 = aA, w1 = aSa, w2 = abBa, w3 = abSba und w0 ⇒G1 w1 , w1 ⇒G1 w2 , w2 ⇒G1 w3 . Man schreibt auch aA ⇒G1 aSa ⇒G1 abBa ⇒G1 abSba. Konvention: Wenn aus dem Zusammenhang klar ist, welche Grammatik gemeint ist, schreibt man auch w ⇒ w0 bzw. w ⇒∗ w0 . Aufgabe 1.8 Gegeben sei die Grammatik G = (V, T, R, S) durch V = {S, A, B, C, D, E}, T = {a, b, c} und R = {S → abA|aDaE, A → cCaB|EbA, B → bbB|ba, C → c|ε, D → bCC|EbA, E → b|BcA|bE|EbA}. Leiten Sie das Wort abcabbaccaba in G ab. Lösung: S ⇒ aDaE ⇒ abCCaE ⇒ abcCaE ⇒ abcaE ⇒ abcabE ⇒ abcabBcA ⇒ abcabbacA ⇒ abcabbaccCaB ⇒ abcabbaccaB ⇒ abcabbaccaba 7