Sie sind auf Seite 1von 31
Grundzuge¨ von Algorithmen und Datenstrukturen Andreas Karrenbauer Max-Planck-Institut fur¨ Informatik Wintersemester

Grundzuge¨

von Algorithmen und

Datenstrukturen

Andreas Karrenbauer

Max-Planck-Institut fur¨ Informatik

Wintersemester 2016/2017

Wozu kann man das uberhaupt¨

gebrauchen?

Bildrekonstruktion

Original Eingabe Ausgabe
Original
Eingabe
Ausgabe
Wozu kann man das uberhaupt¨ gebrauchen? Bildrekonstruktion Original Eingabe Ausgabe Wintersemester 2016/2017

Wintersemester 2016/2017

Bevor es richtig losgeht: Organisatorisches

6 CP = 30h Vorlesung + 30h

¨

Ubungen + 120h Selbststudium

Eine Vorlesung pro Woche (donnerstags 12 bis 14 Uhr)  ¨ Theoretische und (optionale) praktische Ubungen Eins von acht Tutorien pro Woche Hauptklausur am

 

¨

Theoretische und (optionale) praktischeUbungen

Ubungen

Eins von acht Tutorien pro Woche¨ Theoretische und (optionale) praktische Ubungen Hauptklausur am 16. Februar 2017, Nachklausur am 30. M¨arz

Hauptklausur am 16. Februar 2017, Nachklausur am 30. M¨arz 201712 bis 14 Uhr)   ¨ Theoretische und (optionale) praktische Ubungen Eins von acht Tutorien pro

Bitte besuchen Sie

und melden sich auf der Mailingliste an!

und melden sich auf der Mailingliste an! Achtung Die Anmeldung auf der Mailingliste ist

Achtung Die Anmeldung auf der Mailingliste ist unverbindlich und ersetzt nicht die offizielle Anmeldung gem¨aß Ihres Studiengangs!

Wintersemester 2016/2017

ist unverbindlich und ersetzt nicht die offizielle Anmeldung gem¨aß Ihres Studiengangs! Wintersemester 2016/2017
ist unverbindlich und ersetzt nicht die offizielle Anmeldung gem¨aß Ihres Studiengangs! Wintersemester 2016/2017
ist unverbindlich und ersetzt nicht die offizielle Anmeldung gem¨aß Ihres Studiengangs! Wintersemester 2016/2017

¨

Ubungsbl¨atter und Tutorien

¨

Ubungsbl¨atter werden jeweils donnerstags online gestellt.¨ Sie sind eine Woche sp¨ater vor der Vorlesung abzugeben. Klausurzulassung: 50% der Punkte aus den

Sie sind eine Woche sp¨ater vor der Vorlesung abzugeben. vor der Vorlesung abzugeben.

Klausurzulassung: 50% der Punkte aus denSie sind eine Woche sp¨ater vor der Vorlesung abzugeben. Zweierteams sind erlaubt vorausgesetzt, dass jeder alle

Zweierteams sind erlaubt vorausgesetzt, dass jeder alle L¨osungen vorrechnen kann.abzugeben. Klausurzulassung: 50% der Punkte aus den Die L¨osungen werden in den Tutorien besprochen. ¨

Die L¨osungen werden in den Tutorien besprochen.Punkte aus den Zweierteams sind erlaubt vorausgesetzt, dass jeder alle L¨osungen vorrechnen kann. ¨ Ubungsbl¨attern.

¨

Ubungsbl¨attern.

Der Link zur Registrierung fur¨

eine

¨

Ubungsgruppe wird heute um 16 Uhr

auf der Mailingliste ver¨offentlicht. Ab dann wird er auch in der

Willkommensnachricht der Liste enthalten sein.

ver¨offentlicht. Ab dann wird er auch in der Willkommensnachricht der Liste enthalten sein. Wintersemester 2016/2017

Wintersemester 2016/2017

Feedback

Bitte erm¨oglichen Sie uns, die Vorlesung laufend zu verbessern!

Achtung

Die Daten sind so anonym, wie Sie sich durch das Internet bewegen.Ich habe keinen Zugriff auf IP-Adressen. Bei strafrechtlicher Relevanz k¨onnen die Systemadministratoren gem¨aß

Ich habe keinen Zugriff auf IP-Adressen.sind so anonym, wie Sie sich durch das Internet bewegen. Bei strafrechtlicher Relevanz k¨onnen die

Bei strafrechtlicher Relevanz k¨onnen die Systemadministratoren gem¨aßInternet bewegen. Ich habe keinen Zugriff auf IP-Adressen. Datenschutzgesetz auf ubermittelte¨ Daten zugreifen. und

Datenschutzgesetz auf ubermittelte¨ Daten zugreifen.

und gespeicherte personenbezogene

Datenschutzgesetz auf ubermittelte¨ Daten zugreifen. und gespeicherte personenbezogene Wintersemester 2016/2017

Wintersemester 2016/2017

Regeln der guten wissenschaftlichen Praxis

Regeln der guten wissenschaftlichen Praxis Sag nein zu Plagiaten! Wenn Sie eine L¨osung ganz oder teilweise

Sag nein zu Plagiaten! Wenn Sie eine L¨osung

ganz oder teilweise aus dem Internet, von Ihren Kollegen oder von sonst woher ohne ausreichende
ganz oder teilweise
aus dem Internet, von Ihren Kollegen oder von sonst woher
ohne ausreichende Quellenangabe
¨
abgeben, dann werden die Punkte des gesamten
Ubungsblatts annuliert.
Alle Teammitglieder haften gemeinschaftlich.

Wenn Sie jedoch korrekt zitieren, dann bekommen Sie

die H¨alfte der m¨oglichen Punkte fur¨ vorausgesetzt) undWenn Sie jedoch korrekt zitieren, dann bekommen Sie desto mehr Punkte, je gr¨oßer Ihr eigener Beitrag

desto mehr Punkte, je gr¨oßer Ihr eigener Beitrag ist.dann bekommen Sie die H¨alfte der m¨oglichen Punkte fur¨ vorausgesetzt) und w¨ortliche ¨ Ubernahmen (Korrektheit

w¨ortliche

¨

Ubernahmen (Korrektheit

mehr Punkte, je gr¨oßer Ihr eigener Beitrag ist. w¨ortliche ¨ Ubernahmen (Korrektheit Wintersemester 2016/2017

Wintersemester 2016/2017

Literatur

Bucher¨

(im Semesterapparat:

Cormen, Leiserson, Rivest, Stein: Algorithmen - Eine Einfuhrung¨ Oldenbourg 2010 Algorithmen - Eine Einfuhrung¨ Oldenbourg 2010

Dietzfelbinger, Mehlhorn, Sanders: Algorithmen und Datenstrukturen - Die Grundwerkzeuge , Springer 2014 Algorithmen und Datenstrukturen - Die Grundwerkzeuge, Springer 2014

Mehlhorn, Sanders: Algorithms and data structures - The basic toolbox , Springer 2008 Algorithms and data structures - The basic toolbox, Springer 2008

,

Skripte/Folien

Skript von Prof. Bl¨aser (Winter 2015/2016)http://www-cc.cs.uni-saarland.de/course/50/ Folien von Prof. Seidel (Winter 2014/2015)

Folien von Prof. Seidel (Winter 2014/2015)von Prof. Bl¨aser (Winter 2015/2016) http://www-cc.cs.uni-saarland.de/course/50/ http://www-tcs.cs.uni-sb.de/course/60/

Folien von Prof. Seidel (Winter 2014/2015) http://www-tcs.cs.uni-sb.de/course/60/ Wintersemester 2016/2017

Wintersemester 2016/2017

Lernziele

Die Studierenden lernen

die wichtigsten Methoden des Entwurfs von Algorithmen und Datenstrukturen kennen: Teile-und-Herrsche, Dynamische Programmierung, inkrementelle Konstruktion, ” Greedy“, Dezimierung, Hierarchisierung, Randomisierung. Greedy“, Dezimierung, Hierarchisierung, Randomisierung.

Algorithmen und Datenstrukturen bzgl. Zeit- und Platzverbrauch fur¨Greedy“, Dezimierung, Hierarchisierung, Randomisierung. das ubliche¨ Analysen zu vergleichen. RAM Maschinenmodell

das

ubliche¨

Analysen zu vergleichen.

RAM Maschinenmodell zu analysieren und auf Basis dieser

verschiedene Arten der Analyse (schlechtester Fall, amortisiert, erwartet) einzusetzen.RAM Maschinenmodell zu analysieren und auf Basis dieser wichtige effiziente Datenstrukturen und Algorithmen kennen.

wichtige effiziente Datenstrukturen und Algorithmen kennen.analysieren und auf Basis dieser verschiedene Arten der Analyse (schlechtester Fall, amortisiert, erwartet) einzusetzen.

erwartet) einzusetzen. wichtige effiziente Datenstrukturen und Algorithmen kennen. Wintersemester 2016/2017

Wintersemester 2016/2017

Kompetenzen

Sie sollen

die F¨ahigkeit erwerben, vorhandene Methoden durch theoretischeAnalysen und Abw¨agungen fur¨ auftretenden Szenarien zu prufen.¨ ihre Verwendbarkeit in tats¨achlich die F¨ahigkeit

Analysen und Abw¨agungen fur¨

auftretenden Szenarien zu prufen.¨

ihre Verwendbarkeit in tats¨achlich

die F¨ahigkeit trainieren, Algorithmen und Datenstrukturen unter dem Aspekt von Performanzgarantien zu entwickeln oder anzupassen.theoretische Analysen und Abw¨agungen fur¨ auftretenden Szenarien zu prufen.¨ ihre Verwendbarkeit in tats¨achlich

Aktuelles

Warum Merkel an die Algorithmen will Spiegel Online, 26.10.16, http://goo.gl/KonnOE http://goo.gl/KonnOE

Softwarefehler ließ “Schiaparelli” absturzen¨ Spiegel Online, 26.10.16, http://goo.gl/FMy78m http://goo.gl/FMy78m

ließ “Schiaparelli” absturzen¨ Spiegel Online, 26.10.16, http://goo.gl/FMy78m Wintersemester 2016/2017

Wintersemester 2016/2017

Algorithmus

Was sagt Wikipedia dazu? http://de.wikipedia.org/wiki/Algorithmus

Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur L¨osung eines Problems oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten.[1] Somit k¨onnen sie zur

Ausfuhrung¨

menschlicher Sprache formuliert werden. Bei der Probleml¨osung wird eine

bestimmte Eingabe in eine bestimmte Ausgabe uberf¨

in einem Computerprogramm implementiert, aber auch in

uhrt.[2]¨

1 Hartley Rogers, Jr.: Theory of Recursive Functions and Effective Computability, S. 2

2 Cormen, Leiserson, Rivest, Stein: Algorithmen - Eine

Einfuhrung,¨ S. 5
Einfuhrung,¨
S. 5

Wintersemester 2016/2017

Beispiel

Problem 1 (Auswahlproblem)

“Bestimme das k-kleinste von n Elementen”

gegeben: Elemente a 1 , k [n] := {1,

, a n mit einer Ordnung sowie ein , n}

gesucht: a π(k) fur¨ eine Permutation π : [n] [n] mit

a π(1) a π(2) ··· a π(n)

Minimumssuche (k = 1), Maximumssuche (k = n), Median (k = n ) 2 Wintersemester
Minimumssuche (k = 1), Maximumssuche (k = n), Median (k = n )
2
Wintersemester 2016/2017

Das RAM-Modell

Definition 2 (Random Access Machine)

Die Random Access Machine (RAM) ist ein abstraktes Maschinenmodell mit

abz¨ahlbar unendlich vielen Speicherzellen S i , i ∈ Z ≥ 0 , S i , i Z 0 ,

endlich vielen Registern R 1 , R 1 ,

einer arithmetisch-logischen Einheit (ALU).unendlich vielen Speicherzellen S i , i ∈ Z ≥ 0 , endlich vielen Registern R

, R k und

Zu Beginn ist R 1 = 1 und das Programm steht in S 1 , R 1 = 1 und das Programm steht in S 1 ,

Das Programm terminiert, wenn R 1 außerhalb von [ R 2 ] liegt. R 1 außerhalb von [R 2 ] liegt.

Ansonsten fuhrt¨wenn R 1 außerhalb von [ R 2 ] liegt. , S R 2 . die

, S R 2 .

die ALU die Anweisung in S R 1 aus und erh¨oht R 1 um 1

sofern R 1 in der Anweisung selbst nicht uberschrieben¨

wird:

R i ← S R j , S R j ← R i , R i i S R j , S R j R i , R i R j R h

wird: R i ← S R j , S R j ← R i , R

Wintersemester 2016/2017

Komplexit¨at

Algorithmen werden charakterisiert durch

Laufzeit: Anzahl der Schritte bis Terminierung Speicherbedarf: Anzahl benutzter Speicherzellen

Laufzeit: Anzahl der Schritte bis Terminierung Speicherbedarf: Anzahl benutzter Speicherzellen Wintersemester 2016/2017

Wintersemester 2016/2017

Asymptotische Notation

Definition 3 (Landau-Symbole)

Sei f : Z 0 R eine Funktion.

O( f ( n )) := { g : Z ≥ 0 → R : (f (n)) := {g : Z 0 R : c, n 0 > 0n n 0 : |g(n)| ≤ c · |f (n)|}

die Menge der Funktionen, die h¨ochstens so schnell wachsen wie f .

Ω(f ( n )) := { g : Z ≥ 0 → R : ∃ f (n)) := {g : Z 0 R : c, n 0 > 0n n 0 : |f (n)| ≤ c · |g(n)|}

die Menge der Funktionen, die mindestens so schnell wachsen wie f .

Θ(f ( n )) := { g : Z ≥ 0 → R : ∃ f (n)) := {g : Z 0 R : c 1,2 , n 0 > 0n n 0 :

c 1 · |f(n)| ≤ |g(n)| ≤ c 2 · |f (n)|}

die Menge der Funktionen, die genauso so schnell wachsen wie f .

o( f ( n )) := { g : Z ≥ 0 → R : (f (n)) := {g : Z 0 R : c > 0n 0 > 0n n 0 : |g(n)| ≤ c · |f (n)|}

die Menge der Funktionen, die gegenuber¨

f verschwinden.

ω( f ( n )) := { g : Z ≥ 0 → R : (f (n)) := {g : Z 0 R : c > 0n 0 > 0n n 0 : |f (n)| ≤ c · |g(n)|}

die Menge der Funktionen, denen gegenuber¨

f verschwindet.

Wintersemester 2016/2017

) | ≤ c · | g ( n ) |} die Menge der Funktionen, denen
) | ≤ c · | g ( n ) |} die Menge der Funktionen, denen
) | ≤ c · | g ( n ) |} die Menge der Funktionen, denen

Veranschaulichung

Veranschaulichung Wintersemester 2016/2017
Veranschaulichung Wintersemester 2016/2017
Veranschaulichung Wintersemester 2016/2017

Wintersemester 2016/2017

Eigenschaften

Theorem 4

1. g ∈ O(f ) ⇔ f ∈ Ω(g), Θ(f ) = O(f ) ∩
1. g ∈ O(f ) ⇔ f ∈ Ω(g), Θ(f ) = O(f ) ∩ Ω(f ), g ∈ Θ(f ) ⇔ f ∈ Θ(g).
2. log b n ∈ Θ(log 2 n) fur¨
alle b > 1
3. log d (n) ∈ o(n ε ) fur¨
alle d ≥ 0 und ε > 0
2
Beweisskizze
1. Einsetzen der Definitionen
2. Logarithmengesetz: log b a = log c a
log c b
3. Logarithmengesetz: log d (n) = 2 d log 2 log 2 n versus n ε = 2 ε log 2 n
2
Wintersemester 2016/2017
Anmerkungen zum ersten Teil des Beweises Sei g ∈ O(f ), d.h. ∃c, n 0
Anmerkungen zum ersten Teil des Beweises
Sei g ∈ O(f ), d.h. ∃c, n 0 > 0∀n ≥ n 0 : |g(n)| ≤ c · |f (n)|, was genau
der Definition von f ∈ Ω(g) entspricht. Die Ruckrichtung¨
folgt analog.
Sei
g ∈ O(f ) ∩ Ω(f ). Deshalb existieren c , n
0 , c , n
> 0, so dass
0
∀n ≥ n 0 : |f(n)| ≤ c · |g(n)| und ∀n ≥ n : |g(n)| ≤ c · |f (n)|. Wir
0
definieren c 1 :=
c 1 , c 2 := c , n 0 := max{n
0 , n
} und beobachten, dass
0
∀n ≥ n 0 : c 1 · |f(n)| ≤ |g(n)| ≤ c 2 · |f (n)| und deshalb g ∈ Θ(f ) ist. Die
Inklusion in der Gegenrichtung ist trivial.
g ∈ Θ(f ) ⇔ f ∈ Θ(g) folgt aus der Kombination der beiden vorherigen
Behauptungen.
Wintersemester 2016/2017

Rechnen mit Landau-Symbolen

Wir werden die Notation f = O(g) fur¨ f O(g) bzw. O(f ) = O(g) fur¨ O(f ) O(g) einfuhren.¨

Theorem 5 Fur¨ alle n ∈ Z ≥0 gilt 1. H n := n k
Theorem 5
Fur¨ alle n ∈ Z ≥0 gilt
1. H n := n
k 1 = ln(n) + O(1)
(harmonische Zahlen)
k=1
1
2. n! = √ 2πn · n n · 1 + Θ n
(Sterlingformel)
e
Wintersemester 2016/2017

Instanzen und Komplexit¨at

Die Komplexit¨at wird i.d.R. in Abh¨angigkeit von der Gr¨oße der Eingabe angegeben.Eine gultige¨ Kodierung einer Eingabe fur¨ einen Algorithmus/eines Problems nennen wir Instanz . size (

Eine gultige¨in Abh¨angigkeit von der Gr¨oße der Eingabe angegeben. Kodierung einer Eingabe fur¨ einen Algorithmus/eines

Kodierung einer Eingabe fur¨

einen Algorithmus/eines

Problems nennen wir Instanz.

size( I ) bezeichnet dabei die Kodierungsl¨ange einer Instanz I in der Anzahl der ben¨otigten (I) bezeichnet dabei die Kodierungsl¨ange einer Instanz I in der Anzahl der ben¨otigten Bits.

Wir fassen Instanzen ¨ a h n l i c h e r Gr¨oße in Klassen zusammen. ¨ahnlicher Gr¨oße in Klassen zusammen.

Sei I n die Menge aller Instanzen I (fur¨ mit size ( I ) = Θ( I n die Menge aller Instanzen I (fur¨ mit size(I) = Θ(n)

Ausnahmen; z.B. Gauss-Elimination (LR-Zerlegung), Eingabe n × n Matrix, size ( I ) = Θ( n 2 ) , Laufzeit n × n Matrix, size(I) = Θ(n 2 ), Laufzeit time(I) = O(n 3 ) arithm. Op.

einen Algorithmus/ein Problem)

n 2 ) , Laufzeit time ( I ) = O ( n 3 ) arithm.

Wintersemester 2016/2017

F¨alle

Wir unterscheiden bei der Komplexit¨at den

schlechtesten Fall (worst case): T (n) = max{time(I) : I ∈ I n } besten
schlechtesten Fall (worst case): T (n) = max{time(I) : I ∈ I n }
besten Fall (best case): T (n) = min{time(I) : I ∈ I n }
1
mittleren Fall (average case): T (n) =
|I n | I∈I n time(I)
Fall (average case): T (n) = |I n | I∈I n time(I) Hinweis Meistens wird der

Hinweis Meistens wird der schlechteste Fall betrachtet. Sofern nicht anders angegeben, gehen wir davon aus.

wird der schlechteste Fall betrachtet. Sofern nicht anders angegeben, gehen wir davon aus. Wintersemester 2016/2017
wird der schlechteste Fall betrachtet. Sofern nicht anders angegeben, gehen wir davon aus. Wintersemester 2016/2017

Wintersemester 2016/2017

Pseudocode

Es gibt keinen einheitlichen Standard fur¨

Pseudocode.

Leitlinien

Pseudocode soll leicht lesbar, aber eindeutig interpretierbar sein.D.h. von Experten in ein RAM-Programm ubersetzt¨ evtl. uber¨ werden k¨onnen, den Umweg einer hinreichend

D.h. von Experten in ein RAM-Programm ubersetzt¨soll leicht lesbar, aber eindeutig interpretierbar sein. evtl. uber¨ werden k¨onnen, den Umweg einer hinreichend

evtl. uber¨sein. D.h. von Experten in ein RAM-Programm ubersetzt¨ werden k¨onnen, den Umweg einer hinreichend hardware-nahen

werden k¨onnen,

den Umweg einer hinreichend hardware-nahen imperativen

Sprache wie z.B. C/C++.

Sinnvoll abstrahieren durch Prozeduren/Funktionen/Klassen.ubersetzt¨ evtl. uber¨ werden k¨onnen, den Umweg einer hinreichend hardware-nahen imperativen Sprache wie z.B. C/C++.

¨

Aquivalenz zu RAM-Programmen

Man kann es axiomatisch hinnehmen oder sich induktiv klarmachen,d.h. Makros bauen: JZ while ( C ) { I ; }

d.h. Makros bauen: JZ while ( C ) { I ; } JZ while(C){I; }

hinnehmen oder sich induktiv klarmachen, d.h. Makros bauen: JZ while ( C ) { I ;

Wintersemester 2016/2017

Datentypen und Datenstrukturen

Elementare Datentypen werden von den Registern/Speicherzellen des verwendeten RAM-Model vorgegeben:– beliebige reelle Zahlen Real-RAM – beliebige ganze Zahlen – beschr¨ankte ganze Zahlen Word-RAM –

beliebige reelle Zahlen Real-RAM

beliebige ganze Zahlen

beschr¨ankte ganze Zahlen Word-RAM

Bit Bit-Modell

¨

[ Ubung]

Strukturen: zusammenh¨angender Block von Speicherzellenganze Zahlen Word-RAM – Bit Bit-Modell ¨ [ Ubung] Felder (Arrays): konsekutive indizierte Speicherzellen (ggf.

Felder (Arrays): konsekutive indizierte Speicherzellen (ggf. Vielfache einer Struktur)ganze Zahlen Word-RAM – Bit Bit-Modell ¨ [ Ubung] Strukturen: zusammenh¨angender Block von Speicherzellen

Felder (Arrays): konsekutive indizierte Speicherzellen (ggf. Vielfache einer Struktur) Wintersemester 2016/2017

Wintersemester 2016/2017

Zusicherungen und Invarianten

Wir verstehen Pseudocode als Beweis fur¨

die Existenz eines Algorithmus,

der zu einer Eingabe eine bestimmte Ausgabe produziert.

Das Zusichern von Vor- und Nachbedingungen sowie die Verwendung von Invarianten erleichtern die Argumentation.

Beispiel: ggT

[Tafel]

sowie die Verwendung von Invarianten erleichtern die Argumentation. Beispiel: ggT [Tafel] Wintersemester 2016/2017

Wintersemester 2016/2017

Grundlagen der Algorithmenanalyse

Prinzipien

Abstrahieren weg von den Komplikationen eines realen Rechners,Gruppieren der Eingaben nach Gr¨oßen, Betrachtung des schlechtesten Falls, Asymptotische Notation, erlauben die direkte

Gruppieren der Eingaben nach Gr¨oßen,weg von den Komplikationen eines realen Rechners, Betrachtung des schlechtesten Falls, Asymptotische Notation,

Betrachtung des schlechtesten Falls,realen Rechners, Gruppieren der Eingaben nach Gr¨oßen, Asymptotische Notation, erlauben die direkte Analyse der

Asymptotische Notation,Eingaben nach Gr¨oßen, Betrachtung des schlechtesten Falls, erlauben die direkte Analyse der Rechenzeit von Pseudocode.

erlauben die direkte Analyse der Rechenzeit von Pseudocode.realen Rechners, Gruppieren der Eingaben nach Gr¨oßen, Betrachtung des schlechtesten Falls, Asymptotische Notation,

“Rechenregeln”

Sei T n (I) die max. Laufzeit der Anweisungen I auf Eingaben der Gr¨oße n.

Sequenzielle Anweisungen: T n ( I ; J ) = T n ( I ) + T T n (I; J) = T n (I) + T n (J)

T n ( while ( C ) { I ; } ) = T n ( n (while(C){I; }) = T n (C) + (n) T n (I, C, i) mit (n) als Schranke an die Interationen und T n (I, C, i) als Laufzeit von Iteration i mit anschließendem Test von C.

i=1

und T n ( I, C, i ) als Laufzeit von Iteration i mit anschließendem Test

Wintersemester 2016/2017

Teile und Herrsche / Rekurrenzen

Beispiel: rekursive bin¨are Suche

T(n) = T( n/2 ) + O(1) = O(log n)

Simultane Minimums- und Maximumssuche T (1) = 0 T (2) = 1 T(n) = T(
Simultane Minimums- und Maximumssuche
T (1)
=
0
T (2)
=
1
T(n)
=
T( n ) + T( n ) + 2
fur¨
n > 2
2
2
Wintersemester 2016/2017

Master-Theorem

Theorem 6 (Master-Theorem)

Wenn T : Z → R ≥0 die Rekurrenzen fur¨ n ≤ n 0 ,
Wenn T : Z → R ≥0 die Rekurrenzen
fur¨
n ≤ n 0 ,
T(n) ≤ a
c · n s + d · T ( n/b + e n )
fur¨
n > n 0
fur¨ Konstanten a, c, d > 0, b > 1, s, e ≥ 0 und einer Folge von ganzen
Zahlen e n mit − n/b < e n ≤ e fur¨ alle n ≥ n 0 erfullt,¨ dann gilt
fur¨
T(n) =
 O(n s )
O(n s log n)
fur¨
d < b s ,
d = b s ,
 
O(n log b d )
fur¨
d > b s .
s ) O(n s log n) fur¨ d < b s , d = b s

Wintersemester 2016/2017

Beweisskizze fur¨ das Master-Theorem

 

¨

Spezialfall e n = e und monoton wachsende T

[OBdA, siehe

Ubung]

Sei N 0 =

Sei nˆ 0 := max{n 0 , 2(e + 1)/(1 1/b)} und k := min{i : N i nˆ 0 }.

Dann gilt N i < 2n

n und N i = N i1 + e fur¨

b

i > 0. Dann gilt N i

b

n

i +

e+1

11/b .

b

i

fur¨

i ∈ {0,

, k 1} und k log b (2n/nˆ 0 ).

Sei aˆ := max{a, T n 0 )}. Dann gilt

T(n) d · T(N 1 ) + cN

0

s d k · T(N k ) + c

k1

i=0

d i N

s

i

d k aˆ + c2 s n s

k1

i=0

d s i

b

F¨alle

d < b s

 

d = b s

d > b s

T(n)

2 s n s nˆ

s

0

+

c2 s n s

1d/b s

2 s n s

nˆ

s

0

+

c2 s n s log b (

2n

nˆ 0

)

d k aˆ + c2 s nˆ

s

0 ·d k

d/b s 1

=

O(n s )

 

= O(n s log n)

 

=

O(d k )

s − 1 = O ( n s )   = O ( n s log

Wintersemester 2016/2017

Analyse des mittleren Falls

Beispiel: bin¨arer Z¨ahler

Eingabe : A[] : Feld mit n bits, das eine Zahl a ∈ {0,

Ausgabe: Feld mit n bits, das die Zahl (a + 1) mod 2 n darstellt

i 0; while i < n und A[i] = 1 do

, 2 n 1} darstellt

A[ i ] ← 0 ; i ← i + 1 [i] 0; i i + 1

//Invariante: 2 i +

n1

j=0

A[j] · 2 j

if i < n then

A[ i ] ← 1 [i] 1

return A

Laufzeitkomplexit¨at I n = {0, 1} n worst-case: T (n) := max{time(A) : A ∈
Laufzeitkomplexit¨at
I n = {0, 1} n
worst-case: T (n) := max{time(A) : A ∈ I n } ≤ n
1
average-case: T (n) :=
|I n | A∈I n time(A) ≤ 2
[Tafel]
Wintersemester 2016/2017

Zufallsvariable und Erwartungswert

Wahrscheinlichkeitsraum (Ω, Σ, p)

Ergebnismenge Ω

Ereignismenge Σ ⊆ 2 Ω mit Ω ∈ Σ , A ∈ Σ ⇒ A := Σ 2 mit Σ, A Σ A := Ω \ A Σ,

= .

¯

A := iI A i mit A i Σ fur¨

Wahrscheinlichkeitsmaß p : Σ [0, 1] mit p() = 0, p(Ω) = 1, p(A) = iI p(A i ) fur¨ A := iI A i .

alle i I Z 1 gilt A Σ.

reelle Zufallsvariable X : Ω R

Messbarkeitsbedingung: x R : {ω Ω : X(ω) x} ∈ Σ

Erwartungswert E[X]

Sei X eine diskrete, reelle Zufallsvariable, die die Werte x i , i I Z 1 , annehmen kann, dann ist E[X] := iI x i · p(X = x i ).

≥ 1 , annehmen kann, dann ist E [ X ] := i ∈ I x

Wintersemester 2016/2017

Mittlere und erwartete Laufzeit

Beispiel: Zwischenmaxima

Eingabe : M [] : Feld mit n Elementen Ausgabe: max{M [i 1] : i [n]}

π randomPermutation(n); m M [π[0]]; for i [n 1] do return m

if M [π[i]] > m then

m M [π[i]];

Ω = S(n), die Menge aller Permutation π, Σ = 2 S(n) , p(π) = 1/n!

Bin¨are Zufallsvariable X 1 = 1, wenn M [π[i]] > M [π[j]] fur¨ alle j
Bin¨are Zufallsvariable X 1 = 1, wenn M [π[i]] > M [π[j]] fur¨
alle
j
∈ {0,
, i − 1}, ansonsten X i = 0.
1
E[X i ] = p(X i = 1) =
1+i .
1
S := n−1 X i E[S] = n−1 E[X i ] = n−1 1+i = H n ≤ 1 + ln n
i=0
i=0
i=0
Wintersemester 2016/2017

Las-Vegas- und Monte-Carlo-Algorithmen

Las-Vegas-Algorithmus

berechnet immer das richtige Ergebnis,aber die Laufzeit ist eine Zufallsvariable.

aber die Laufzeit ist eine Zufallsvariable.berechnet immer das richtige Ergebnis,

Monte-Carlo-Algorithmus

immer die gleiche Laufzeit,aber das Ergebnis kann mit einer durch eine Konstanten c < 1 beschr¨ankte Wahrscheinlichkeit falsch

aber das Ergebnis kann mit einer durch eine Konstanten c < 1 beschr¨ankte Wahrscheinlichkeit falsch sein. c < 1 beschr¨ankte Wahrscheinlichkeit falsch sein.

kann mit einer durch eine Konstanten c < 1 beschr¨ankte Wahrscheinlichkeit falsch sein. Wintersemester 2016/2017

Wintersemester 2016/2017