• Keine Ergebnisse gefunden

Datenstrukturen und Algorithmen Vorlesung 6: Mastertheorem (K4) Joost-Pieter Katoen

N/A
N/A
Protected

Academic year: 2022

Aktie "Datenstrukturen und Algorithmen Vorlesung 6: Mastertheorem (K4) Joost-Pieter Katoen"

Copied!
80
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Mastertheorem

Datenstrukturen und Algorithmen

Vorlesung 6: Mastertheorem (K4)

Joost-Pieter Katoen

Lehrstuhl für Informatik 2 Software Modeling and Verification Group

https://moves.rwth-aachen.de/teaching/ss-18/dsal/

7. Mai 2018

(2)

Mastertheorem

Übersicht

1 Lösen von Rekursionsgleichungen Substitutionsmethode

Rekursionsbäume Mastertheorem

Joost-Pieter Katoen Datenstrukturen und Algorithmen 2/21

(3)

Mastertheorem Lösen von Rekursionsgleichungen

Übersicht

1 Lösen von Rekursionsgleichungen Substitutionsmethode

Rekursionsbäume Mastertheorem

(4)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsgleichungen

Rekursionsgleichung

Für rekursive Algorithmen wird die Laufzeit meistens durch Rekursionsgleichungen beschrieben.

Eine Rekursionsgleichung ist eine Gleichung oder eine Ungleichung, die eine Funktion durch ihre eigenen Funktionswerte für kleinere Eingaben beschreibt.

Beispiele

I T(n) =T(Á(n≠1)/2Ë) +1 Binäre Suche

I T(n) =T(n≠1) +n≠1 Bubblesort

I T(n) =2·T(n/2) +n≠1 Mergesort

I T(n) =7·T(n/2) +c·n2 Strassen’s Matrixmultiplikation Die zentrale Frage ist: Wie löst man solche Rekursionsgleichungen?

Joost-Pieter Katoen Datenstrukturen und Algorithmen 4/21

method foo ( int n )

{

FEE

) foods food t@ # )

) |Tgo(n)=3.Tfo(E)t=

(5)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsgleichungen

Rekursionsgleichung

Für rekursive Algorithmen wird die Laufzeit meistens durch Rekursionsgleichungen beschrieben.

Eine Rekursionsgleichung ist eine Gleichung oder eine Ungleichung, die eine Funktion durch ihre eigenen Funktionswerte für kleinere Eingaben beschreibt.

Beispiele

I T(n) =T(Á(n≠1)/2Ë) +1 Binäre Suche

I T(n) =T(n≠1) +n≠1 Bubblesort

I T(n) =2·T(n/2) +n≠1 Mergesort

I T(n) =7·T(n/2) +c·n2 Strassen’s Matrixmultiplikation Die zentrale Frage ist: Wie löst man solche Rekursionsgleichungen?

(6)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsgleichungen

Rekursionsgleichung

Für rekursive Algorithmen wird die Laufzeit meistens durch Rekursionsgleichungen beschrieben.

Eine Rekursionsgleichung ist eine Gleichung oder eine Ungleichung, die eine Funktion durch ihre eigenen Funktionswerte für kleinere Eingaben beschreibt.

Beispiele

I T(n) =T(Á(n≠1)/2Ë) +1 Binäre Suche

I T(n) =T(n≠1) +n≠1 Bubblesort

I T(n) =2·T(n/2) +n≠1 Mergesort

I T(n) =7·T(n/2) +c·n2 Strassen’s Matrixmultiplikation Die zentrale Frage ist: Wie löst man solche Rekursionsgleichungen?

Joost-Pieter Katoen Datenstrukturen und Algorithmen 4/21

. -

i. -

{

÷

-

(7)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode

Substitutionsmethode

Die Substitutionsmethode besteht aus zwei Schritten:

1. Ratedie Form der Lösung, durch z. B.:

I Scharfes Hinsehen, kurze Eingaben ausprobieren und einsetzen

I Betrachtung des Rekursionsbaums

2. Vollständige Induktion, um die Konstanten zu finden und zu zeigen, dass die Lösung funktioniert.

.

(8)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode

Substitutionsmethode

Die Substitutionsmethode besteht aus zwei Schritten:

1. Ratedie Form der Lösung, durch z. B.:

I Scharfes Hinsehen, kurze Eingaben ausprobieren und einsetzen

I Betrachtung des Rekursionsbaums

2. Vollständige Induktion, um die Konstanten zu finden und zu zeigen, dass die Lösung funktioniert.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 5/21

(9)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

(10)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 6/21

- .

-0

±

(11)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

(12)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 6/21

o

-

(13)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

O

0

no of ^

no > ^

(14)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 6/21

- .

* -

o

no = 2

(15)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

o

(16)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

Betrachte folgende Rekursionsgleichung:

T(1) =1

T(n) =2·T(n/2) +n fürn>1.

I Wir vermuten als Lösung T(n)œO(n·logn).

I Dazu müssen wirT(n)6c·n·logn zeigen, für ein geeignetesc >0.

I Bestimme, ob für ein geeignetes n0 und fürn>n0 gilt, dass T(n)6c·n·logn.

I Stelle fest, dass T(1) =1 6 c·1·log 1=0 verletztist.

I Es gilt:T(2) =46c·2 log 2 undT(3) =56c·3 log 3 fürc >2

I Überprüfe dann durch Substitution und Induktion (s. nächste Folie)

I Damit gilt für jedes c >2 und n>n0>1, dassT(n)6c·n·logn.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 6/21

(17)

Mastertheorem Lösen von Rekursionsgleichungen

Die Substitutionsmethode: Beispiel

Beispiel

T(n) =2·T(n/2) +n für n>1, undT(1) =1

T(n) = 2·T(n/2) +n Induktionshypothese 62(c·n/2·logn/2) +n

=c·n·logn/2+n log-Rechnung: (log©log2) logn/2=lognlog 2

=c·n·lognc·n·log 2+n

6c·n·lognc·n+n mitc>1 folgt sofort:

6c·n·logn

Th ) e 0 ( n log n)

TCE

) e OCE losE)

E c . E.lose

>

0

-

÷

- -

0

-

Q

-

1-7

-

C = 2

(18)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Iteration

Grundidee

Wiederholtes Einsetzen der Rekursionsgleichung in sich selbst, bis man ein Muster erkennt.

Beispiel

T(n) =3·T(n/4) +n Einsetzen

=3·(3·T(n/16) +n/4)) +n Nochmal einsetzen

=9·(3·T(n/64) +n/16)) +n/4+n Vereinfachen

=27·T(n/64) +33 4

42

·n+33 4

41

·n+33 4

40

·n Wir nehmen T(1) =c an und erhalten: T(n) =log4ÿn≠1

i=0

33 4

4i

·n+c·nlog43 Diese Aussage kann mit Hilfe der Substitutionsmethode gezeigt werden.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 8/21

-

(19)

Tk )

= 3 .

TCI )

+ n Th

)

= c

fer

n

grip gang

=

-

(

*

TCF )

=3 .

HE )

+

E

*

)

Mn )

- 3.

(

o .

TC E)

+

F )

+ n

=

32 TCF )

+

}

. n + n

=

(

*

TCI )

= 3 . T

(E)

+

I

±

)

=

32 (

3

TC f)

+

F)

+

÷

. n + n

=

steal

+

a ?n

+

Hi

+

Ein

Nehme Mel

tcbu )

=3 '

TG )

+

( ⇒

' n +

ED

' n +

Ey )°n

/

-

wieuiele Teme

?

not

izoepin

(20)

Hoa )

=3 '

I

=c

)

+

E. El

-

in

a)

=

zlogabli

by

43 )

-

|Tln)=nw43+Z(})i=| f ?

i

?

=

logs 64

=3

?= loss

n - n

.

Teme

i=o ,

iii.

in , . . . is

Gun

- a

(21)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Iteration

Grundidee

Wiederholtes Einsetzen der Rekursionsgleichung in sich selbst, bis man ein Muster erkennt.

Beispiel

T(n) =3·T(n/4) +n Einsetzen

=3·(3·T(n/16) +n/4)) +n Nochmal einsetzen

=9·(3·T(n/64) +n/16)) +n/4+n Vereinfachen

=27·T(n/64) +33 4

42

·n+33 4

41

·n+33 4

40

·n

Wir nehmen T(1) =c an und erhalten: T(n) =log4ÿn≠1

i=0

33 4

4i

·n+c·nlog43 Diese Aussage kann mit Hilfe der Substitutionsmethode gezeigt werden.

(22)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Iteration

Grundidee

Wiederholtes Einsetzen der Rekursionsgleichung in sich selbst, bis man ein Muster erkennt.

Beispiel

T(n) =3·T(n/4) +n Einsetzen

=3·(3·T(n/16) +n/4)) +n Nochmal einsetzen

=9·(3·T(n/64) +n/16)) +n/4+n Vereinfachen

=27·T(n/64) +33 4

42

·n+33 4

41

·n+33 4

40

·n Wir nehmen T(1) =c an und erhalten: T(n) =log4ÿn≠1

i=0

33 4

4i

·n+c·nlog43

Diese Aussage kann mit Hilfe der Substitutionsmethode gezeigt werden.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 8/21

(23)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Iteration

Grundidee

Wiederholtes Einsetzen der Rekursionsgleichung in sich selbst, bis man ein Muster erkennt.

Beispiel

T(n) =3·T(n/4) +n Einsetzen

=3·(3·T(n/16) +n/4)) +n Nochmal einsetzen

=9·(3·T(n/64) +n/16)) +n/4+n Vereinfachen

=27·T(n/64) +33 4

42

·n+33 4

41

·n+33 4

40

·n Wir nehmen T(1) =c an und erhalten: T(n) =log4ÿn≠1

i=0

33 4

4i

·n+c·nlog43 Diese Aussage kann mit Hilfe der Substitutionsmethode gezeigt werden.

(24)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1). 2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes. 3. DieGesamtkosten := summieren überdie Kosten aller Ebenen. Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 9/21

(25)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1). 2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes. 3. DieGesamtkosten := summieren überdie Kosten aller Ebenen. Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

(26)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1). 2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes. 3. DieGesamtkosten := summieren überdie Kosten aller Ebenen. Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 9/21

(27)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1).

2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes. 3. DieGesamtkosten := summieren überdie Kosten aller Ebenen. Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

(28)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1).

2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes.

3. DieGesamtkosten := summieren überdie Kosten aller Ebenen. Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 9/21

(29)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1).

2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes.

3. DieGesamtkosten := summieren überdie Kosten aller Ebenen.

Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

(30)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1).

2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes.

3. DieGesamtkosten := summieren überdie Kosten aller Ebenen.

Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 9/21

.

(31)

Mastertheorem Lösen von Rekursionsgleichungen

Raten der Lösung durch Rekursionsbäume

Grundidee

Stelle das Ineinander-Einsetzen als Baum dar, indem man Buch über das aktuelle Rekursionsargument und die nicht-rekursiven Kosten führt.

Rekursionsbaum

1. Jeder Knotenstellt die Kosten eines Teilproblems dar.

I Die Wurzel stellt die zu analysierenden KostenT(n)dar.

I Die Blätter stellen die Kosten der Basisfälle dar, z. B.T(0)oder T(1).

2. Wir summieren die Kosten innerhalb jeder Ebenedes Baumes.

3. DieGesamtkosten := summieren überdie Kosten aller Ebenen.

Wichtiger Hinweis

Ein Rekursionsbaum ist sehr nützlich, um eine Lösung zu raten, die dann mit Hilfe der Substitutionsmethode überprüft werden kann.

Der Baum selber reicht jedoch meistens nicht als Beweis.

(32)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsbaum: Beispiel

Beispiel

Der Rekursionsbaum vonT(n) =3·T(n/4) +n sieht etwa so aus:

T(n) n T(n/4)

n/4 T(n/16)

n/16 T(n/16)

n/16 T(n/16) n/16

T(n/4) n/4

. . . .

T(n/4) n/4 T(n/16)

n/16 T(n/16)

n/16 T(n/16) n/16 Aktuelles

Rekursionsargument Nichtrekursive

Kosten

Joost-Pieter Katoen Datenstrukturen und Algorithmen 10/21

( }

)°n=n

3 4I

11 \

f

in

(33)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsbaum: Beispiel

T(n) n T(n/4)

n/4 T(n/16)

n/16 T(n/16)

n/16 T(n/16) n/16

T(n/4)

n/4 T(n/4)

n/4 T(n/16)

n/16 T(n/16)

n/16 T(n/16) n/16

n 3n/4 9n/16 T(1)T(1)T(1)T(1)T(1) T(1)T(1)T(1)T(1)T(1)

log4n

3log4n=nlog43

T(n) = logÿ4n≠1

¸ ˚˙ ˝i=0 Summe über

alle Ebenen 33

4 4i

·n

¸ ˚˙ ˝ Kosten pro

Ebene

+ c¸ ˚˙ ˝·nlog43

Gesamtkosten für die Blätter mitT(1) =c

O

-

(34)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsbaum: Beispiel

T(n) n T(n/4)

n/4 T(n/16)

n/16 T(n/16)

n/16 T(n/16) n/16

T(n/4)

n/4 T(n/4)

n/4 T(n/16)

n/16 T(n/16)

n/16 T(n/16) n/16

n 3n/4 9n/16 T(1)T(1)T(1)T(1)T(1) T(1)T(1)T(1)T(1)T(1)

log4n

3log4n=nlog43

T(n) = logÿ4n≠1

¸ ˚˙ ˝i=0 Summe über

alle Ebenen 33

4 4i

·n

¸ ˚˙ ˝ Kosten pro

Ebene

+ c¸ ˚˙ ˝·nlog43

Gesamtkosten für die Blätter mitT(1) =c

Joost-Pieter Katoen Datenstrukturen und Algorithmen 11/21

-0¥

(35)

Mastertheorem Lösen von Rekursionsgleichungen

Rekursionsbaum: Beispiel

Eine obere Schranke für die Komplexität erhält man nun folgendermaßen:

T(n) = logÿ4n≠1

i=0

33 4

4i

·n+c ·nlog43 Vernachlässigen kleinerer Terme

<

ÿŒ i=0

33 4

4i

·n+c ·nlog43 Geometrische Reihe

< 1

1≠(3/4) ·n+c ·nlog43 Umformen

<n+c·nlog43 Asymptotische Ordnung bestimmen setze ein, dass log43<1

T(n) œO(n).

|Tln)eO(n)PT -

Iaf

< 1 dam

0 -

[

d. ai

=

e < 1

it d

-

= zwsnr

=a

-%q# =¥

, Kate a Be Her

kosye

(36)

Mastertheorem Lösen von Rekursionsgleichungen

Korrektheit

Wir können die Substitutionsmethode benutzen, um die Vermutung zu bestätigen, dass:

T(n)œO(n) eine obereSchranke von T(n) =3·T(n/4) +n ist.

T(n) =3·T(n/4) +n Induktionshypothese 63d·n/4+n

= 3

4d·n+n

=33

4d +14·n mitd>4 folgt sofort: 6d·n

Und wir stellen fest, dass es einn0 gibt, sodassT(n0)6d·n0 ist für d >4.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 13/21

-

(37)

Mastertheorem Lösen von Rekursionsgleichungen

Korrektheit

Wir können die Substitutionsmethode benutzen, um die Vermutung zu bestätigen, dass:

T(n)œO(n) eine obereSchranke von T(n) =3·T(n/4) +n ist.

T(n) =3·T(n/4) +n Induktionshypothese 63d·n/4+n

= 3

4d·n+n

=33

4d +14·n mitd>4 folgt sofort:

6d·n

Und wir stellen fest, dass es einn0 gibt, sodassT(n0)6d·n0 ist für d >4.

-

\

tcn ) EOCN )

-

an TCF )e0C

d.hr#ed.Itr

( fine }

dtn e Edof # d3g konskkd > o

(38)

Mastertheorem Lösen von Rekursionsgleichungen

Korrektheit

Wir können die Substitutionsmethode benutzen, um die Vermutung zu bestätigen, dass:

T(n)œO(n) eine obereSchranke von T(n) =3·T(n/4) +n ist.

T(n) =3·T(n/4) +n Induktionshypothese 63d·n/4+n

= 3

4d·n+n

=33

4d +14·n mitd>4 folgt sofort:

6d·n

Und wir stellen fest, dass es einn0 gibt, sodassT(n0)6d·n0 ist fürd >4.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 13/21

G- €

- =

(39)

Mastertheorem Lösen von Rekursionsgleichungen

Mastertheorem

Allgemeines Format der Rekursionsgleichung

Eine Rekursionsgleichung für die Komplexitätsanalyse sieht meistens folgendermaßen aus:

T(n) =b·T3n c

4+f(n)

wobei b>0,c >1 gilt und f(n) eine gegebene Funktion ist.

Intuition:

I Das zu analysierende Problem teilt sich jeweils inb Teilproblemeauf.

I Jedes dieser Teilprobleme hatdie Größe nc.

I DieKosten für das Aufteilen eines Problems und Kombinieren der Teillösungen sindf(n).

To

.

I \

Anzahl der

Eingabegnspe

nichtterpnbkme

der reknrsiien rekursne

Anfmfe Kosten

(40)

Mastertheorem Lösen von Rekursionsgleichungen

Mastertheorem

Allgemeines Format der Rekursionsgleichung

Eine Rekursionsgleichung für die Komplexitätsanalyse sieht meistens folgendermaßen aus:

T(n) =b·T3n c

4+f(n)

wobei b>0,c >1 gilt und f(n) eine gegebene Funktion ist.

Intuition:

I Das zu analysierende Problem teilt sich jeweils inb Teilproblemeauf.

I Jedes dieser Teilprobleme hatdie Größe nc.

I DieKosten für das Aufteilen eines Problems und Kombinieren der Teillösungen sindf(n).

Joost-Pieter Katoen Datenstrukturen und Algorithmen 14/21

(41)

Mastertheorem Lösen von Rekursionsgleichungen

Mastertheorem

Allgemeines Format der Rekursionsgleichung

Eine Rekursionsgleichung für die Komplexitätsanalyse sieht meistens folgendermaßen aus:

T(n) =b·T3n c

4+f(n)

wobei b>0,c >1 gilt und f(n) eine gegebene Funktion ist.

Intuition:

I Das zu analysierende Problem teilt sich jeweils inb Teilproblemeauf.

I Jedes dieser Teilprobleme hatdie Größe nc.

I DieKosten für das Aufteilen eines Problems und Kombinieren der Teillösungen sindf(n).

(42)

Mastertheorem Lösen von Rekursionsgleichungen

Mastertheorem

Allgemeines Format der Rekursionsgleichung

Eine Rekursionsgleichung für die Komplexitätsanalyse sieht meistens folgendermaßen aus:

T(n) =b·T3n c

4+f(n)

wobei b>0,c >1 gilt und f(n) eine gegebene Funktion ist.

Intuition:

I Das zu analysierende Problem teilt sich jeweils inb Teilproblemeauf.

I Jedes dieser Teilprobleme hatdie Größe nc.

I DieKosten für das Aufteilen eines Problems und Kombinieren der Teillösungen sindf(n).

Joost-Pieter Katoen Datenstrukturen und Algorithmen 14/21

(43)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem

T(n) =b·T3n c

4+f(n) mitb >1 undc >1.

I Anzahl der Blätter im Rekursionsbaum: nE mitE =logb/logc.

Mastertheorem

Wenn Dann

1. f(n)œO(nE≠Á) für ein Á>0 T(n)œ (nE)

2. f(n)œ (nE) T(n)œ (nE·logn)

3. f(n)œ (nE+Á) für ein Á>0 und b·f(n/c) 6 d·f(n) für ein d < 1 und n hinreichend groß

T(n)œ (f(n))

I Bemerke, dass das Mastertheorem nicht alle Fälle abdeckt.

0

- -

- -

0

@ Fig

.

Is

Th ) = 3-

TCE )

(44)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem

T(n) =b·T3n c

4+f(n) mitb >1 undc >1.

I Anzahl der Blätter im Rekursionsbaum: nE mitE =logb/logc. Mastertheorem

Wenn Dann

1. f(n)œO(nE≠Á) für ein Á>0 T(n)œ (nE)

2. f(n)œ (nE) T(n)œ (nE·logn)

3. f(n)œ (nE+Á) für ein Á>0 und b·f(n/c) 6 d·f(n) für ein d < 1 und n hinreichend groß

T(n)œ (f(n))

I Bemerke, dass das Mastertheorem nicht alle Fälle abdeckt.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 15/21

On

"

meets :

" e

0

T

=

(45)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem

T(n) =b·T3n c

4+f(n) mitb >1 undc >1.

I Anzahl der Blätter im Rekursionsbaum: nE mitE =logb/logc. Mastertheorem

Wenn Dann

1. f(n)œO(nE≠Á) für ein Á>0 T(n)œ (nE)

2. f(n)œ (nE) T(n)œ (nE·logn)

3. f(n)œ (nE+Á) für ein Á>0 und b·f(n/c) 6 d·f(n) für ein d < 1 und n hinreichend groß

T(n)œ (f(n))

I Bemerke, dass das Mastertheorem nicht alle Fälle abdeckt.

:

- -

(46)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem

T(n) =b·T3n c

4+f(n) mitb >1 undc >1.

I Anzahl der Blätter im Rekursionsbaum: nE mitE =logb/logc. Mastertheorem

Wenn Dann

1. f(n)œO(nE≠Á) für ein Á>0 T(n)œ (nE)

2. f(n)œ (nE) T(n)œ (nE·logn)

3. f(n)œ (nE+Á) für ein Á>0 und b·f(n/c) 6 d·f(n) für ein d < 1 und n hinreichend groß

T(n)œ (f(n))

I Bemerke, dass das Mastertheorem nicht alle Fälle abdeckt.

Joost-Pieter Katoen Datenstrukturen und Algorithmen 15/21

- fcn ) ist stnkt laysemer

"

genan so Schnell

"

-

0

- - - \ , fcn ) woichst wirklioh

Schneller als NE

(47)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem

T(n) =b·T3n c

4+f(n) mitb >1 undc >1.

I Anzahl der Blätter im Rekursionsbaum: nE mitE =logb/logc. Mastertheorem

Wenn Dann

1. f(n)œO(nE≠Á) für ein Á>0 T(n)œ (nE)

2. f(n)œ (nE) T(n)œ (nE·logn)

3. f(n)œ (nE+Á) für ein Á>0 und b·f(n/c) 6 d·f(n) für ein d < 1 und n hinreichend groß

T(n)œ (f(n))

I Bemerke, dass das Mastertheorem nicht alle Fälle abdeckt.

(48)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE) 2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn) 3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner. 2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

Joost-Pieter Katoen Datenstrukturen und Algorithmen 16/21

= =

T

T Anzahl der

nicht -

B letter teknrsive

kosle

(49)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE)

2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn) 3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner. 2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

) e

O(nE

-

e)

(50)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE) 2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn)

3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner. 2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

Joost-Pieter Katoen Datenstrukturen und Algorithmen 16/21

4 4

-

(51)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE) 2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn) 3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner. 2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

=

D=

Fe > o . fcn ) er

( netps)

(52)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE) 2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn) 3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner.

2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

Joost-Pieter Katoen Datenstrukturen und Algorithmen 16/21

X -

fcn

)e(#g)

fire > o

(53)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE) 2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn) 3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner.

2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

÷ )enEt#r

< > o

(54)

Mastertheorem Lösen von Rekursionsgleichungen

Das Mastertheorem verstehen

In jedem der 3 Fälle wird die Funktion f(n)mit nE =nlogcb verglichen.

Mastertheorem: Intuition

Wenn Dann

1. f(n)polynomial kleiner ist als nE T(n)œ (nE) 2. f(n)und nE die gleiche Größe haben T(n)œ (nE·logn) 3. f(n)ist polynomial größer alsnE und er-

füllt b·f(n/c)6d·f(n) T(n)œ (f(n))

Nicht abgedeckte Fälle:

1. f(n)ist kleiner als nE, jedoch nicht polynomiell kleiner.

2. f(n)ist größer als nE, jedoch nicht polynomiell größer.

3. f(n)ist polynomiell größer als nE, erfüllt nichtb·f(n/c)6d·f(n).

Joost-Pieter Katoen Datenstrukturen und Algorithmen 16/21

fire @

(55)

Mastertheorem Lösen von Rekursionsgleichungen

Anwendung des Mastertheorems

Beispiel

T(n) =4·T(n/2) +n

I Somit:b =4,c =2 undf(n) =n;E =log 4/log 2=2.

I Daf(n) =nœO(n2≠Á), gilt Fall 1: T(n)œ (n2)

Beispiel

T(n) =4·T(n/2) +n2

I Somit:b =4,c =2 undf(n) =n2;E =log 4/log 2=2.

I Daf(n) =n2”œO(n2≠Á), gilt Fall 1 nicht.

I Aber weilf(n) =n2 œ (n2), gilt Fall 2: T(n)œ (n2·logn)

=

(56)

Mastertheorem Lösen von Rekursionsgleichungen

Anwendung des Mastertheorems

Beispiel

T(n) =4·T(n/2) +n

I Somit:b =4,c =2 undf(n) =n;E =log 4/log 2=2.

I Daf(n) =nœO(n2≠Á), gilt Fall 1: T(n)œ (n2)

Beispiel

T(n) =4·T(n/2) +n2

I Somit:b =4,c =2 undf(n) =n2;E =log 4/log 2=2.

I Daf(n) =n2”œO(n2≠Á), gilt Fall 1 nicht.

I Aber weilf(n) =n2 œ (n2), gilt Fall 2: T(n)œ (n2·logn)

Joost-Pieter Katoen Datenstrukturen und Algorithmen 17/21

O

- i

; :

(57)

Mastertheorem Lösen von Rekursionsgleichungen

Anwendung des Mastertheorems

Beispiel

T(n) =4·T(n/2) +n

I Somit:b =4,c =2 undf(n) =n;E =log 4/log 2=2.

I Daf(n) =nœO(n2≠Á), gilt Fall 1: T(n)œ (n2)

Beispiel

T(n) =4·T(n/2) +n2

I Somit:b =4,c =2 undf(n) =n2;E =log 4/log 2=2.

I Daf(n) =n2”œO(n2≠Á), gilt Fall 1 nicht.

I Aber weilf(n) =n2 œ (n2), gilt Fall 2: T(n)œ (n2·logn)

= -

wenn fcn ) e 0( n " '

)

, dann Th ) c- OCNE

)

- Eiz

(58)

Mastertheorem Lösen von Rekursionsgleichungen

Anwendung des Mastertheorems

Beispiel

T(n) =4·T(n/2) +n

I Somit:b =4,c =2 undf(n) =n;E =log 4/log 2=2.

I Daf(n) =nœO(n2≠Á), gilt Fall 1: T(n)œ (n2)

Beispiel

T(n) =4·T(n/2) +n2

I Somit:b =4,c =2 undf(n) =n2;E =log 4/log 2=2.

I Daf(n) =n2”œO(n2≠Á), gilt Fall 1 nicht.

I Aber weilf(n) =n2 œ (n2), gilt Fall 2: T(n)œ (n2·logn)

Joost-Pieter Katoen Datenstrukturen und Algorithmen 17/21

:

b to =

Referenzen

ÄHNLICHE DOKUMENTE

Die Average-Case Laufzeit von A ist die von A durchschnittlich benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n:. A(n)

I Element getMin(PriorityQueue pq) gibt das Element mit dem kleinsten Schlüssel zurück; benötigt nicht-leere pq. I void delMin(PriorityQueue pq) entfernt das Element mit dem

I Die Partitionierung hat eine lineare Zeitkomplexität, d. eine Zerlegung im Verhältnis 9:1. alle Elemente im zu sortierenden Array E sind unterschiedlich 3.. Quicksort

Teile-und-Beherrsche Algorithmen (divide and conquer) teilen das Problem in mehrere Teilprobleme auf, die dem Ausgangsproblem ähneln, jedoch von kleinerer Größe

I Alloziere ein Array (die Direkte-Adressierungs-Tabelle), so dass es für jeden möglichen Schlüssel eine(1) Position gibt.. I Jedes Array-Element enthält einen Pointer auf

2 Offene Adressierung Lineares Sondieren Quadratisches Sondieren Doppeltes Hashing.. Effizienz der

2 Offene Adressierung Lineares Sondieren Quadratisches Sondieren Doppeltes Hashing.. Effizienz der

Wir werden zeigen, dass ein Fluss in G genau dann maximal ist, wenn sein Restnetzwerk keine augmentierende Pfade enthält. Dazu benutzen