Muster Heim. 04
Transcription
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