Christian Scheideler WS 2008 Effiziente Algorithmen und Datenstrukturen I Kapitel 0: Organisatorisches Christian Scheideler WS 2008 16.04.2017 Kapitel 0
Organisatorisches Vorlesung: Di 8:00 – 10:00 MI 00.13.009A Do 8:00 – 10:00 MI 00.13.009A Wahlpflichtvorlesung im Fachgebiet Algorithmen und Wissenschaftliches Rechnen, Bioinformatik Umfang: 4V+2Ü, 8 ECTS-Punkte Übungen: Di 12:00 – 14:00 und Mi 12:00 – 14:00 in MI 03.11.018 Übungsleitung: Jonas Pfoh pfoh@in.tum.de, MI 03.09.061 Sprechstunde: Mi 16:00 – 17:00 Uhr scheideler@in.tum.de, MI 03.09.044 16.04.2017 Kapitel 0
Organisatorisches Webseite: www14.in.tum.de/lehre/2008WS/ea/ Die Webseite enthält Vorlesungsfolien, Übungsblätter sowie ein vorläufiges Skript. Literatur: Michael T. Goodrich, Roberto Tamassia. Algorithm Design: Foundations, Analysis, and Internet Examples. John Wiley & Sons, Inc., 2002. Thomas H. Cormen, Charles E. Leiserson, Ron L. Rivest, Clifford Stein. Introduction to Algorithms. 2. Auflage, The MIT Press, Cambridge, MA, 2001. 16.04.2017 Kapitel 0
Organisatorisches Übungsblätter: Jede Woche ein Übungsblatt. Ausgabe: jeden Donnerstag auf der Kurswebseite Abgabe: jeden Donnerstag bis Kursende Klausuren: Midterm: Mitte Dezember Final: Mitte Februar Endnote: 50% Midterm, 50% Final 16.04.2017 Kapitel 0
Organisatorisches Vorkenntnisse: Einführung in die Informatik Grundlagen der Algorithmen und Datenstrukturen (GAD) Einführung in die Theoretische Informatik (THEO) Diskrete Strukturen, diskrete Wahrscheinlichkeitstheorie (DS, DWT) Bekannt: Java oder ähnliche Programmiersprache Felder, Listen, Bäume und Graphen (GAD SS 2008) Mathematische Grundlagen (vollst. Induktion) 16.04.2017 Kapitel 0
Organisatorisches Weiterführende Veranstaltungen: Effiziente Algorithmen und Datenstrukturen II Randomisierte Algorithmen Approximationsalgorithmen Netzwerkalgorithmen Komplexitätstheorie Internetalgorithmik … 16.04.2017 Kapitel 0
Vorlesungsinhalt Grundlagen Wiederholung von GAD Maschinenmodelle Komplexitätsmaße Pseudocode Höhere Datenstrukturen Priority Queues Suchstrukturen (Arrays und Bäume) Selbstorganisierende Suchstrukturen Wörterbücher (Hashing) Union-Find Datenstrukturen Sortieren und Selektieren (Minimale Spannbäume und kürzeste Wege) Matchings in Graphen Netzwerkfluss Lineare Algebra (Vektor- und Matrixmultiplikation) Generische Optimierungsverfahren Wiederholung von GAD Vertiefung von GAD Sucharrays: speichere Daten mit Lücken in Array, O(log^2 n) amortisierter Aufwand im worst case und O(log n) im average case Hashing: Kuckuckshashing mit Erweiterungen (mit Notfallspeicher und nichtuniformen Daten), konsistentes Hashing und SHARE Selbstorganisierende Strukturen: Erweiterungen durch Albers (MTF) und Splay Bäume 16.04.2017 Kapitel 0
Thema: Algorithmen und Datenstrukturen Einführung Thema: Algorithmen und Datenstrukturen Was ist ein Algorithmus? Was ist eine Datenstruktur? Muss ich Programme schreiben? Theorie? 16.04.2017 Kapitel 0
Was ist ein Algorithmus? Definition: Ein Algorithmus ist eine formale Handlungsvorschrift zur Lösung von Instanzen eines Problems in endlich vielen Schritten. Eingabe Algorithmus Ausgabe 16.04.2017 Kapitel 0
Was ist eine Datenstruktur? Definition: Eine Datenstruktur ist eine Anordnung / Verknüpfung von Daten, um den Zugriff auf diese und ihre Verwaltung geeignet zu ermöglichen. Datenstruktur Operation 1 Operation 2 Operation 3 16.04.2017 Kapitel 0
Algorithmen und Datenstrukturen Softwareentwicklung Problem Modellierung Algorithmen und Datenstrukturen Implementierung 16.04.2017 Kapitel 0
Grundsätzliche Probleme Korrektheit Effizienz Komplexität Robustheit / Sicherheit 16.04.2017 Kapitel 0
Effizienz Wichtig: Laufzeit und Speicheraufwand Warum? Riesige Datenmengen (Bioinformatik) Realzeitanwendungen (Spiele) Ziel der Vorlesung: Erweiterter Grundstock an effizienten Algorithmen und Datenstrukturen für Standardprobleme 16.04.2017 Kapitel 0
Nächstes Kapitel Grundlagen (Wiederholung aus GAD) Maschinenmodelle Komplexitätsmaße Pseudocode 16.04.2017 Kapitel 0