1 Rekurrenz • Rekursion: – Algorithmen rufen sich selbst (rekursiv) auf. • Rekurrenz: – Das Laufzeitverhalten bzw. der Speicher- platzbedarf von rekursiven Algorithmen kann in der Regel durch eine Rekursionsformel (recurrence, RF) beschrieben werden.
29
Embed
Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Rekurrenz
• Rekursion:
– Algorithmen rufen sich selbst (rekursiv) auf.
• Rekurrenz:
– Das Laufzeitverhalten bzw. der Speicher-platzbedarf von rekursiven Algorithmen kann in der Regel durch eine Rekursionsformel (recurrence, RF) beschrieben werden.
2
Rekurrenz
1)()2/()2/(
1)1()(
nnnTnT
nnT
• Beispiel: MergeSort.
– Sei T(n) die (asymptotische) Laufzeit des MergeSort-Algorithmus für die Eingabegröße n:
3
Rekurrenz
• Bei der Lösung solcher Rekursionsformeln vernachlässigen wir oft gewisse technische Details:
– Z.B. das Auf- und Abrunden der Größen der rekursiven Teilprobleme:
– Beispiel: MergeSort.
1)()2/(2
1)1()(
nnnT
nnT
4
Rekurrenz
• Wenn die Laufzeit für die Eingabegröße 1 in (1) ist (also eine Konstante), schreiben wir in der Regel:
• Oder noch einfacher:
1)()2/(2
1)( 1
nnnT
ncnT
)()2/(2)( nnTnT
5
Rekurrenz
• Wir werden im folgenden drei Verfahren zum Lösen von RF kennen lernen:
Summieren wir nun die Kosten aller Schichten des Baumes auf, so erhaltenwir die folgenden Gesamtkosten.
Wir haben implizit in den obigen Berechnungen immer vorausgesetzt, dass n durch die Potenzen von b teilbar ist, d.h., dass n eine Potenz von b ist. Diese Voraussetzung behalten wir für die folgenden Rechnungen und Beweise bei. Die Berechnungen und Beweise für beliebige ganze Zahlen nN können Sie im Lehrbuch „Introduction to Algorithms“ von Cormen et al. nachlesen.
)()()( )(log abnngnT
1)(log
0
)(n
ii
ib
b
nfang
21
Master-Theorem
)()( )(log abnOnf
Wir diskutieren im folgenden die potentiellen Lösungen von Rekurrenzender Form T(n) = a T(n/b) + f(n) in Abhängigkeit vom asymptotischen Verhalten der Funktion f(n):
Hierbei betrachten wir zuerst den Fall, dass
für eine Konstante 0
)(log ab
ii b
nO
b
nf
1)(log
0
)(n
ii
ib
b
nfang
1)(log
0
)(logn
ii
ib
ab
b
naO
22
Master-Theorem
)(log1)(log
0
an
ii
ibb
b
na
in
ia
b
b
ab
b
abn
1)(log
0)(log
)(log
1)(log
0
)(logn
i
ibab
bn
1
1)(log)(log
b
bn
nbab
1
1)(log
b
ncn
ab
Da b und Konstanten sind, folgt aus der obigen Abschätzung:
)(log1)(log
0
an
ii
i b
b
nOb
nfa
)(log)( abnnT
)()(log ab
nO
23
Master-Theorem
)()( )(log abnnf
Wir betrachten nun den zweiten Fall und nehmen an, dass
)(log ab
ii b
n
b
nf
1)(log
0
)(log
)(n
ii
ib
ab
b
nang
24
Master-Theorem
)(log1)(log
0
an
ii
ibb
b
na
in
ia
b
b
ab
b
an
1)(log
0)(log
)(log
1)(log
0
1)(log
n
i
bab
n
)(log)(log
nn b
ab
))(log()()(log
nnnT b
ab
25
Master-Theorem
)()/( ncfbnaf Wir diskutieren im folgenden den dritten Fall und nehmen an, dass
)(1)(log
0
1)(log
0
nfcb
nfa
n
i
in
ii
ibb
1)(log
0
)(n
i
ib
cnf
Nehmen wir jetzt ferner an, dass
)()()(log
ab
nnf
für eine Konstante c < 1 undfür alle n b
)()/( nfa
cbnf Wenden wir diese Abschätzung
i mal iterativ an, so erhalten wir
)()/( nfa
cbnf
ii
1
1)(
)(log
c
cnf
nb
für ein > 0, so gilt: ))(()( nfnT
26
Master-Theorem
)()/()( nfbnaTnT
Satz [1]:
Seien a 1 und b > 1 Konstanten, sei f(n) eine auf den exakten Potenzen von b definierte positive Funktion und sei T(n) die Rekursion der Form
wobei n/b entweder als n/b oder als n/b interpretiert werden kann.
(1) Ist
)()()(log
ab
nOnf für ein > 0, so gilt: )(log)( abnnT
(2) Ist
)()()(log ab
nnf dann ist: )log()( )(log nnnT ab
))(()( nfnT
(3) Ist
)()()(log
ab
nnf für ein > 0, und ist a f(n/b) ≤ c f(n) für eine Konstante c < 1 und genügend großes n, so gilt:
27
Anwendung des MTs auf MergeSort
)()2/(2)( nnTnT
Die Laufzeit des MergeSort-Algorithmus wird durch die folgende RFbeschrieben:
Die Konstanten a und b sind gleich 2 und die Funktion f(n), die den Zeit-aufwand für das Mischen (Merge) der sortierten Teilfolgen angibt, ist in (n).
Da logb(a) = log2(2) = 1 ist,
)()()()( 1)(log
nnnnfab
folgt aus Fall (2) des Master-Theorems
Satz [2]:
Die Laufzeit T(n) des Algorithmus MergeSort ist in (n log n):
)log()( nnnT
28
Beispielanwendung des MTs
nnTnT )3/(9)(
Als zweites Beispiel betrachten wir die Rekursion
Es gilt: a = 9, b = 3, f(n) = n, logb(a) = log3(9) = 2 .
)( 22)(log
nnnab
Dann folgt aus Fall (1) des Master-Theorems
2)( nnT
)()()(log
ab
nOnf wobei = 1 ist.
29
Beispielanwendung des MTs
)log()4/(3)( nnnTnT
Als drittes Beispiel betrachten wir die Rekursion
Es gilt: a = 3, b = 4, f(n) = n log(n), logb(a) = log4(3) = 0.793 .
Da für große n gilt: 3 f(n/4) = 3 (n/4) log(n/4) ≤ (3/4) n log(n) = (3/4) f(n), folgt aus Fall (3) des Master-Theorems