Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz:...

Post on 05-Apr-2015

110 views 0 download

Transcript of Wahrscheinlichkeitsrechnung 1 Rekursion: –Algorithmen rufen sich selbst (rekursiv) auf. Rekurrenz:...

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:

– Substitutions-Methode (Ersetzungsmethode)

– Rekursionsbäume– Master-Methode (Master-Theorem)

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)(

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)!

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

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 }

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

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.

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

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.

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.

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

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

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.

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

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

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

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

)log()()( nnnfnT

)()()()3(4log

nnnf wobei 0.207 ist.