Grundlagen der theoretischen Informatik

Werbung
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
Herunterladen