![Page 1: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/1.jpg)
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.
![Page 2: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/2.jpg)
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:
![Page 3: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/3.jpg)
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
![Page 4: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/4.jpg)
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
![Page 5: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/5.jpg)
5
Rekurrenz
• Wir werden im folgenden drei Verfahren zum Lösen von RF kennen lernen:
– Substitutions-Methode (Ersetzungsmethode)
– Rekursionsbäume– Master-Methode (Master-Theorem)
![Page 6: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/6.jpg)
6
Substitutions-Methode• Die Substitutions-Methode funktioniert wie folgt:
– Man „errate“ die Form der Lösung.– Man verwende (vollständige) Induktion, um die Konstanten
zu finden und um zu zeigen, dass es die Lösung ist.
• Beispiel:
• Wir „glauben“, dass
T(n) O(n log(n)) die Lösung der RF ist.
• Daher versuchen wir zu zeigen, dass
T(n) ≤ c n log(n) für eine geeignet gewählte Konstante c > 0
und für hinreichend große n (n n0)
nnTnT 2/2)(
![Page 7: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/7.jpg)
7
Substitutions-Methode
• Wir nehmen an, dass die Aussage für n/2 gilt:
• Induktionsschluss:
)2/log(2/2/ nncnT
nnncnT )2/log(2/2
nncn )2/log(
ncnncn )2log()log(
ncnncn )log(
)log(ncn 1_ cfalls
Es fehlt der Induktionsanfang n = 1 (siehe nächste Seite)!
![Page 8: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/8.jpg)
8
Substitutions-Methode
• Da die Laufzeit T(1) = c1 für n = 1 immer größer als 0 ist, ist die Grenzbedingung für jede Konstante c > 0 verletzt:
• Der Induktionsanfang ist also nicht erfüllt. • Man beachte, dass das asymptotische
Laufzeit-verhalten aber nur für alle n größer gleich einer vorgegebenen ganzen Zahl n0 gelten muss!
00*)1log(1 1 cccT
![Page 9: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/9.jpg)
9
Substitutions-Methode
• Wir müssen nur zeigen, dass
T(n) ≤ cn log(n) für alle n n0 gilt.
• Wir können also den Fall T(2) = c2 (oder T(3) = c3 oder T(4) = c4 usw.) als Basisfall (Induktionsstart) für die vollständige Induktion wählen.
• Dann haben wir kein Problem eine geeignete Konstante anzugeben:
c = max{ 1, c2 }
![Page 10: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/10.jpg)
10
Substitutions-Methode
• Manchmal funktioniert die Abschätzung mittels der vollständigen Induktion nicht, obwohl man sich bezüglich der Schätzung sehr sicher ist.
• Beispiel:
• Wir raten, dass T(n) = O(n), und wir wollen zeigen, dass T(n) ≤ cn ist:
12/2/)( nTnTnT
112/2/)( cnncncnT
![Page 11: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/11.jpg)
11
Substitutions-Methode
122/2/)( bncncnT
12 bcn
bcn 1_ bfalls
• Wir können das Problem lösen, in dem wir
T(n) ≤ cn – b
zeigen, wobei b > 0 eine Konstante ist.
![Page 12: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/12.jpg)
12
Substitutions-Methode
In einigen Beispielen kann man die RF erst dann lösen, wenn man eine geeignete Variablensub-stitution durchführt!
)log(2)( nnTnT
Setze m = log(n):
mTT mm 2/22)2(
Setze S(m) = T(2m):
mmSmS 2/2)( ))log(()( mmOmS ))log(log)(log()( nnOnT
![Page 13: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/13.jpg)
13
Substitutions-Methode
• Wie kann man die Lösung der RF „erraten“?
– Erfahrung: Ähnlichkeit mit bereits bekannten Rekursionsformeln.
– Man verwende Rekursionbäume, um die asymptotische Größenordnung abzuschätzen.
– Man verwende untere und obere Schranken, um die asymptotische Größenordnung immer weiter einzuschränken.
![Page 14: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/14.jpg)
14
Rekursionsbäume• Rekursive Algorithmen zerlegen das zu
lösende Problem in Teilprobleme.• Die Gesamtlösung wird aus den Lösungen
der Teilprobleme zusammengesetzt.• Die Zerlegung in Teilprobleme kann mittels
eines Rekursionsbaumes dargestellt werden.• In einem solchen Baum repräsentiert jeder
Knoten ein Teilproblem bzw. die Kosten eines Teilproblems.
• Rekursionsbäume sind hervorragend geeignet, um die asymptotischen Laufzeiten eines rekursiven Verfahrens abzuschätzen.
• Die asymptotische Laufzeit kann dann mittels der Substitutionsmethode bewiesen werden.
![Page 15: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/15.jpg)
15
Rekursionsbäume
• Als Beispiel betrachten wir die Rekursion:
)(4/3)( 2nnTnT 24/3)( cnnTnT
2cn
)4/(nT )4/(nT )4/(nT
2cn
2
4
nc
)16/(nT
2
4
nc
2
4
nc
)16/(nT )16/(nT )16/(nT )16/(nT )16/(nT )16/(nT )16/(nT )16/(nT
![Page 16: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/16.jpg)
16
Rekursionsbäume
• Als Beispiel betrachten wir die Rekursion:
)(4/3)( 2nnTnT 24/3)( cnnTnT 2cn
2
4
nc
2
4
nc
2
4
nc
2
16
nc
2
16
nc
2
16
nc
2
16
nc
2
16
nc
2
16
nc
2
16
nc
2
16
nc
2
16
nc
)1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T
2cn
2
16
3cn
22
16
3cn
)3(log4n
)( )3(log4n
![Page 17: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/17.jpg)
17
Rekursionsbäume
)(16
3
16
3
16
3)( )3(log2
1)(log2
222 4
4
ncncncncnnTn
)(16
3)( )3(log
1)(log
0
2 4
4
ncnnTn
i
i
)(1)16/3(
1)16/3()( )3(log2
)(log4
4
ncnnTn
)(2)( )3(log2 4ncnnT 4_ nfür
)()( 2nOnT
Wir vermuten daher, dass T(n) = O(n2) ist, und zeigen nun mittels derSubstitutionsmethode, dass T(n) ≤ dn2 für ein geeignetes d > 0.
![Page 18: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/18.jpg)
18
Rekursionsbäume
24/3)( cnnTnT
Die letzte Abschätzung gilt für alle d mit d (16/13)c .
224/3 cnnd
22)4/(3 cnnd
22
16
3cndn
2dn
![Page 19: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/19.jpg)
19
Master-Methode• Wir betrachten im folgenden Rekursionen der Form
)(/)( nfbnaTnT
)(nf
)/( bnaf
22
b
nfa
)(log abn
)( )(log abn
1a 1b 0)(:0 nfnn
)(nf
)/( bnf )/( bnf )/( bnf
)1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T )1(T
a
a a a
2b
nf
2b
nf
2b
nf
2b
nf
2b
nf
2b
nf
2b
nf
2b
nf
2b
nf
a a a a a a a a a
![Page 20: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/20.jpg)
20
Master-Theorem
)()()( )(log1)(log2
21)(log
an bnb
b nb
nfa
b
nfa
b
nafnfnT
)()( )(log1)(log
0
an
ii
i b
b
nb
nfanT
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
![Page 21: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/21.jpg)
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
![Page 22: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/22.jpg)
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
![Page 23: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/23.jpg)
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
![Page 24: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/24.jpg)
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
![Page 25: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/25.jpg)
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
![Page 26: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/26.jpg)
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:
![Page 27: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/27.jpg)
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
![Page 28: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/28.jpg)
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.
![Page 29: Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz: –Das Laufzeitverhalten bzw. der Speicher- platzbedarf](https://reader033.vdocuments.pub/reader033/viewer/2022051400/55204d6149795902118b490e/html5/thumbnails/29.jpg)
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
)log()()( nnnfnT
)()()()3(4log
nnnf wobei 0.207 ist.