Muster Heim. 04

C. Sohler
J. Flake, A. Krivo²ija
R. Penninger, B. Rudak, V.Volz
SoSe 2015
DAP2 Heimübung 4
Ausgabedatum: 24.04.2015 Abgabedatum: Montag 04.05.2015, 12 Uhr
Schreiben Sie unbedingt immer Ihren vollständigen Namen, Ihre Matrikelnummer und
Ihre Gruppennummer auf Ihre Abgaben!
Aufgabe 4.1 (5 Punkte): [7 Punkte] (Rekursionsgleichung)
Gegeben seien die Rekursionsgleichungen:
a)
(
1
T (n) =
4·T
b)
c)
n
2
+2·
(
1
T (n) =
4·T
n
2
(
1
T (n) =
3·T
n
3
√
+n
2
+n
2
n
für n = 1
für n > 1
für n = 1
für n > 1
für n = 1
für n > 1
Bestimmen Sie eine asymptotische obere Schranke für T (n) und beweisen Sie sie mittels vollständiger Induktion. Sie dürfen annehmen, dass n von der Form 2k bzw. 3k für ein k ∈ N ist.
Sie dürfen dazu nicht das Master-Theorem verwenden.
Begründen Sie, warum die Annahme über n keine Beschränkung der Allgemeinheit darstellt.
Lösung:
a) Behauptung: T (n) ≤
Potenz ist).
T (n) =
=
=
=
=
√
4 2+9 2
n
7
−
√
4 2+2 √
n
7
r n
√
n
4·T
+2 n=4· 4·T
+2
+2 n
2
2
2
n
√
√
√
42 · T 2 + 4 2 · n + 2 n
r 2 √ √
√
n
n
42 · 4 · T 2 + 2
+
2
·
2
2· n+2 n
2
2
2
n
√ 2 √
√ √
√
43 · T 2 + 2 · 2 2 · n + 2 · 2 2 · n + 2 n
2
k−1 n
√ i
√ X
k
... = 4 · T k + 2 n
2 2
2
i=0
n
√
= O(n2 ) (wir nehmen an, dass n eine 2er
1
für alle k , so dass n > 2k . Wenn k = log2 n, gilt weiter:
log2 n
T (n) = 4
√
· T (1) + 2 n
log2 n−1 X
√ i
2 2
i=0
=
=
=
=
√ log n
√
2 2 2 −1
log2 4
√
n
·1+2 n·
2 2−1
3
√ 2 2 ·log2 n − 1
√ 2
2
n +2 n· √
= n2 + √
· n2 − n
2 2−1
2 2−1
√
√
√ √ 4 2+2
2
2 2+1
2
2
2
n + √
· √
· n − n =n +
· n2 − n
8−1
2 2−1 2 2+1
√
√
4 2 + 9 2 4 2 + 2√
n ∈ O(n2 )
n −
7
7
Die bisherige Analyse ist eher ein intuitives, schlaues Erraten der Lösung. Die Behauptung
ist mittels vollständiger Induktion zu beweisen:
Beweis:
(I.A.) Für n = 1 ist T (n) = 1 ≤
√
4 2+9
7
· 12 −
√
4 2+2
7
· 1 77 = 1.
(I.V.) Die Behauptung gelte für ein beliebiges, aber festes n0 .
(I.S.) Betrachte n = 2n0 (die nächste 4er Potenz). Dann gilt
√ √
√
2n0
4·T
+ 2 2n0 = 4 · T (n0 ) + 2 2 n0
2
!
√
√
√ √
4 2 + 9 2 4 2 + 2√
n0 −
n0 + 2 2 n0
4·
7
7
√
√
√ √
4 2+9
4 2 + 2√
2
n0 + 2 2 n0
(2n0 ) − 4 ·
√7
√ 7
√ 4 2 + 2√
√
4 2+9 2
n −2 2·
2n0 + 2 2n0
√7
√ 7
4 2 + 9 2 16 + 4 2 − 14 √
n −
n
7
√
√7
4 2 + 9 2 4 2 + 2√
n −
n
7
7
T (n)
=
(IV)
=
=
=
=
=
Damit folgt die Behauptung für alle natürliche Zahlen n.
b) Behauptung: T (n) ≤ n2 + n2 log2 n ∈ O(n2 log n) (wir nehmen, oBdA an, dass n eine
2
2er Potenz ist). Dann gilt für ein k mit n/2k > 1:
n
n n 2 2
T (n)
=
4·T
+n =4· 4·T 2 +
+ n2
2
2
2
n
n
=
42 · T 2 + 2n2 = 43 · T 3 + 3n2
2 2
n
k
2
=
. . . = 4 · T k + kn
2
(k=log2 n)
=
=
4log2 n · T (1) + log2 n · n2 = nlog2 4 · 1 + log2 n · n2
n2 + n2 log2 n ∈ O(n2 log n)
Beweis:
(I.A.) Für n = 1 ist T (n) = 1 = 12 + 12 log2 1 = 1 + 1 · 0 = 1.
(I.V.) Die Behauptung gelte für ein beliebiges aber festes n0 .
(I.S.) Betrachte n = 2 · n0 . Dann gilt
T (n)
=
(IV)
=
=
=
4·T
2n0
2
+ (2n0 )2 = 4 · T (n0 ) + n2
4 · n20 + n20 log2 n0 + n2 = (2n0 )2 · (1 + log2 n0 ) + n2
n2 · (log2 2 + log2 n0 ) + n2 = n2 · log2 (2 · n0 ) + n2
n2 + n2 log2 n
c) Behauptung: T (n) ≤ 23 n2 − 12 n ∈ O(n2 ) (wir nehmen, oBdA an, dass n eine 3er Potenz
ist). Dann gilt für ein k mit n/3k > 1:
n
n n 2 2
T (n)
=
3·T
+n =3· 3·T 2 +
+ n2
3
3
3
n
n 1
1
1
=
32 · T 2 + n2 + n2 = 33 · T 3 + 2 n2 + n2 + n2
3
3
3
3
3
k−1
1 k
n
X
1
−
1
n
3
=
3k · T k + n2 ·
= 3k · T k + n2 ·
1
i
3
3
3
1
−
3
i=0
3 2
3 2
1
1
(k=log3 n)
log3 n
=
3
· 1 + · n · 1 − log n = n + · n · 1 −
2
3 3
2
n
3 2 1
=
n − n ∈ O(n2 )
2
2
Beweis:
(I.A.) Für n = 1 ist T (n) = 1 =
3
2
· 12 − 21 · 1 =
3
2
−
1
2
= 1.
(I.V.) Die Behauptung gelte für ein beliebiges aber festes n0 .
3
(I.S.) Betrachte n = 3 · n0 . Dann gilt
T (n)
=
(IV)
=
=
3n0
3
3·T
+ (3n0 )2 = 3 · T (n0 ) + 9n20
1
1
3 2 1
n0 − n0 + 9n20 = (3n0 )2 + (3n0 )2 − · 3n0
3·
2
2
2
2
3 2 1
·n − ·n
2
2
Hinweise: Für Fälle, wo die Aufteilung weniger oder genau gleich viele Kosten verursacht wie
die Kosten beim Zusammenfügen (Teilaufgabe 1), lässt sich der Induktionsbeweis meist ohne
gröÿeren Aufwand formulieren. Lediglich in den Fällen, wo die Kosten des Zusammenfügens echt
geringer sind als die Kosten der Aufteilung, muss man auf die Wahl der Konstanten achten. Hier
ist es allerdings häug möglich, eine gleiche Umformung der rekursiven Form anzugeben, wie
das hier auch bei allen Teilaufgaben geschehen ist. Wenn die Umformung keine Abschätzung
enthält, so lässt sich mit dem Ergebnis direkt der Induktionsbeweis führen.
Potenzenbehauptung: Es bleibt noch zu begründen, warum die Annahmen über n (2er- bzw.
3er-Potenzen) keine Beschränkung der Allgemeinheit darstellen.
Wir betrachten hier die 3. Rekursionsgleichung, bei der wir 3er-Potenzen zugrunde gelegt haben.
Wir haben für diese Rekursionsgleichung gezeigt, dass
T (n) ≤ c · n2
für eine Konstante c > 0 für alle Werte von n gilt, die Dreierpotenzen sind. Ein einfacher
Induktionsbeweis (den wir hier nicht führen wollen) zeigt, dass T (n) monoton wachsend ist.
Damit folgt für n mit 3k ≤ n < 3k+1 :
T (n) ≤ T 3k+1
≤ c · 32·(k+1) = c · 32 · 32k
2
= 9 · c · 3k
≤ 9 · c · n2 ,
d.h., es existiert eine Konstante c0 > c, nämlich c0 = 9 · c, so dass für alle n T (n) ≤ c0 · n2 gilt.
Die Argumentation für die 1. und 2. Rekursionsgleichung mit 2er-Potenzen verläuft ganz analog.
Wenn wir keine Behauptung über 3er- bzw. 2er-Potenzen machen würden, müssten wir entweder
behaupten, dass die Teilung in der Rekursionsgleichung (T ( n3 )) ganzzählig ist, oder dass bei
Teilung Ab- bzw. Aufrunden (T (b n3 c) bzw. T (d n3 e)) gegeben ist.
Aufgabe 4.2 (5 Punkte): [3 Punkte] (MergeSort)
Führen Sie MergeSort für das folgende Array aus:
4
75
19
33
11
85
50
Zeichnen Sie das Array nach jedem Teilvorgang und vor und nach jedem Vereinigungsschritt
(füllen Sie die Vorlage aus).
Lösung:
75
75
19
19
33
33
11
85
50
11
85
50
75
19
33
11
85
50
19
75
33
11
85
50
19
33
75
11
19
33
50
5
11
50
75
85
85