• Keine Ergebnisse gefunden

Effiziente Algorithmen und Datenstrukturen

N/A
N/A
Protected

Academic year: 2021

Aktie "Effiziente Algorithmen und Datenstrukturen"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

WS 2010/11

Effiziente Algorithmen und Datenstrukturen

Ernst W. Mayr

Fakult¨ at f¨ ur Informatik TU M¨ unchen

http://www14.in.tum.de/lehre/2010WS/ea/

Wintersemester 2010/11

(2)

Kapitel 0 Organisatorisches

Vorlesungen:

4SWS

Di 8:30–10:00 (MI 00.13.009A) Do 8:30–10:00 (MI HS2)

Wahlpflichtvorlesung im Fachgebiet Algorithmen und Wissenschaftliches Rechnen (AWR), Bioinformatik Ubung: ¨

2SWS Zentral¨ ubung: Di 14:15–15:45 (MI 00.08.038) Ubungsleitung: Tobias Lieber ¨

Umfang:

4V+2Z ¨ U, 8 ECTS-Punkte (Modulnr.: IN2003) Sprechstunde:

nach Vereinbarung

EADS 2/600

©Ernst W. Mayr

(3)

Vorkenntnisse:

Einf¨ uhrung in die Informatik

Grundlagen: Algorithmen und Datenstrukturen (GAD) Einf¨ uhrung in die Theoretische Informatik (THEO)

Diskrete Strukturen, Diskrete Wahrscheinlichkeitstheorie (DS, DWT)

Weiterf¨ uhrende Vorlesungen:

Effiziente Algorithmen und Datenstrukturen II Randomisierte Algorithmen

Komplexit¨ atstheorie Approximationsalgorithmen Internetalgorithmik

. . . Webseite:

http://wwwmayr.in.tum.de/lehre/2010WS/ea/

(4)

Ubungsleitung: ¨

Tobias Lieber, MI 03.09.060 (lieber@in.tum.de) Sprechstunde: Mi 13:00–14:00

Sekretariat:

Frau Lissner, MI 03.09.052 (lissner@in.tum.de)

EADS 4/600

©Ernst W. Mayr

(5)

Ubungsaufgaben und Klausur: ¨

Ausgabe jeweils am Dienstag auf der Webseite der Vorlesung Abgabe eine Woche sp¨ ater vor der Vorlesung

Besprechung in der Zentral¨ ubung Klausur:

Zwischenklausur (50% Gewicht), Termin: Fr 17.12.2010, 16:30–18:30 (MI HS1)

Endklausur (50% Gewicht), Termin: Fr 18.02.2011, 15:00–17:00 (MI HS1)

Wiederholungsklausur, Termin: tba

bei den Klausuren sind keine Hilfsmittel außer einem handbeschriebenen DIN-A4-Blatt zugelassen

F¨ ur das erfolgreiche Bestehen des Moduls sind erforderlich:

1

Bestehen der zweigeteilten Klausur (mindestens 40% der Gesamtpunktzahl)

2

Erreichen von mindestens 40% der Punkte bei den Hausaufgaben

vorauss. 12 ¨ Ubungsbl¨ atter,

das erste am 26. Oktober, das letzte am 2. Februar,

jedes 40 Punkte

(6)

1. Vorlesungsinhalt Grundlagen

Maschinenmodelle Komplexit¨ atsmaße H¨ ohere Datenstrukturen

Suchb¨ aume Hashing Priority Queues

selbstorganisierende Datenstrukturen Union/Find-Datenstrukturen

Sortieren und Selektieren Minimale Spannb¨ aume K¨ urzeste Wege

Matchings in Graphen Netzwerkfluss

EADS 1 Vorlesungsinhalt 6/600

©Ernst W. Mayr

(7)

2. Literatur

Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman:

The design and analysis of computer algorithms,

Addison-Wesley Publishing Company: Reading (MA), 1974 Thomas H. Cormen, Charles E. Leiserson, Ron L. Rivest, Clifford Stein:

Introduction to algorithms, McGraw-Hill, 1990

Michael T. Goodrich, Roberto Tamassia:

Algorithm design: Foundations, analysis, and internet examples,

John Wiley & Sons, 2002

(8)

Volker Heun:

Grundlegende Algorithmen: Einf¨ uhrung in den Entwurf und die Analyse effizienter Algorithmen,

2. Auflage, Vieweg, 2003 Donald E. Knuth:

The art of computer programming. Vol. 1: Fundamental algorithms,

3. Auflage, Addison-Wesley Publishing Company: Reading (MA), 1997

Donald E. Knuth:

The art of computer programming. Vol. 3: Sorting and searching,

3. Auflage, Addison-Wesley Publishing Company: Reading (MA), 1997

EADS 8/600

©Ernst W. Mayr

(9)

Uwe Sch¨ oning:

Algorithmik,

Spektrum Akademischer Verlag, 2001

Christos H. Papadimitriou, Kenneth Steiglitz:

Combinatorial Optimization: Algorithms and Complexity, Prentice Hall, 1982

Steven S. Skiena:

The Algorithm Design Manual,

Springer, 1998

(10)

Kapitel I Grundlagen

1. Ein einleitendes Beispiel

Berechnung von F n , der n-ten Fibonacci-Zahl:

F 0 = 0 , F 1 = 1 ,

F n = F n 1 + F n 2 f¨ ur alle n ≥ 2 .

Also:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, . . .

EADS 1 Ein einleitendes Beispiel 10/600

©Ernst W. Mayr

(11)

1. Methode: Funktionales Programmieren f (n) := if n = 0 then 0

elif n = 1 then 1

else f (n − 1) + f (n − 2) fi

Sei T (n) der Zeitbedarf f¨ ur die Berechnung von f (n). Dann gilt:

T(0) = T (1) = 1 ;

T (n) = T (n − 1) + T (n − 2) f¨ ur n ≥ 2 .

(12)

Damit gilt:

T (n) = c 1 1 + √ 5 2

! n

+ c 2 1 − √ 5 2

! n

f¨ ur geeignete Konstanten c 1 und c 2 .

Einsetzen der Werte f¨ ur n = 0 und n = 1 ergibt c 1 = 1

2 +

√ 5 10 c 2 = 1

2 −

√ 5 10 und damit

T (n) = 1 2 +

√ 5 10

! 1 + √ 5 2

! n

+ 1

2 −

√ 5 10

! 1 − √ 5 2

! n

.

EADS 1 Ein einleitendes Beispiel 12/600

©Ernst W. Mayr

(13)

2. Methode: Dynamische Programmierung array F [0 : n]; F [0] := 0; F[1] := 1;

for i := 2 to n do

F [i] := F [i − 1] + F [i − 2]

Der Zeitbedarf dieses Algorithmus ist offensichtlich

O (n) .

(14)

3. Methode: Direkt (mit etwas mathematischer Arbeit)

F (n) := round 1

√ 5

1 + √ 5 2

! n !

=

$ 1

√ 5

1 + √ 5 2

! n

+ 1 2

% .

Der Zeitbedarf hier ist

O (log n) .

EADS 1 Ein einleitendes Beispiel 14/600

©Ernst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

Tabellieren Sie die Werte, die m , n, q und r von Schleifendurchlauf zu Schlei- fendurchlauf annehmen, wenn der ggT von 15333 und 1235 mit Hilfe des euklidischen Algorithmus

” Spezifizieren“ Sie in Form eines Klassendiagramms (vgl. Sparbuch- Spezifikation der Vorlesung) einen Datentyp Bestellung.

Ein Algorithmus ist eine endliche Folge von eindeutigen Anweisungen, mit- tels derer in endlich vielen Schritten aus vorgegebenen spezifizierten Einga- begr¨ oßen

Regular train tickets have time stamping printed up to date, but a platform ticket is printed up to minutes. At that time, the ticket collectors suddenly started purchasing

Erg¨ anzen sie dessen Ausgabe durch die zus¨ atzliche Ausgabe einer War- nung, wenn nach dem Prompt Bitte einen Wochentag eingeben: mehr als ein Wort eingegeben wurde...

(Ein Stack oder Kellerspeicher ist ein linearer Speicher mit Zugriff nach dem FILO — first in last out — Prinzip.) Die Operationen sollen heißen: new, push, pop,

Vergessen Sie bitte nicht, daß in einem sicher- heitskritischen Raum nur berechtigte Personen Eintritt erlangen d¨ urfen und daß die Menge der zutrittsberechtigten Personen

they told the dispatchers that an alarm had been given to a fire station, when in reality the fire station did not receive the alarm, and kept playing cards and wondering why there