Algorithm Engineering Sommersemester 2010 Universität Bremen

Slides:



Advertisements
Ähnliche Präsentationen
Cadastre for the 21st Century – The German Way
Advertisements

Peter S. Niess Steinbeis-Europa-Zentrum
Wehrpflicht in Deutschland
Kapitel 9: Graphdurchlauf
Hör zu! Auf dem Land In einer Großstadt In einem Dorf In einer Kleinstadt GernNicht gern Logo 4, Seite 84, Übung 1a.
Todays Learning Objective: To apply modal verbs to say what the rules are at home! Todays Language Focus: Ich muß = I must Ich darf = Im allowed to Ich.
Wir machen unsere Pläne.
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Peter Marwedel TU Dortmund, Informatik 12
Spezialvorlesung Suchalgorithmen Thema: External Probabilistic Planning Stefan Edelkamp.
Design by Contract with JML - Teil 2
Wenn…… the conditional. Using the conditional tense The conditional tense is used to talk about something that happens only after something else happened.
study of medicine no obligatory training content in almost all medical schools (universities) in Germany elective subject for medical students during.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Kurzvorstellung der AG Algorithmen und Komplexität MPI Informatik
Kapitel 10: Graphalgorithmen
Hallo! By: Manoj Kumar Bhateja.
Haben – to have ich habe du hast er/sie hat es hat man hat wir haben
Algorithm Engineering Sommersemester 2009 Universität Bremen
Definite and indefinite articles nom. and acc. cases.
Wish as if if only it were so Ich wünsche, ich wäre in Deutschland. I wish I were in Germany. Es scheint, als wäre das möglich. It seems as if that would.
Die Frau in der Werbung.
Passive Angriffe ... nicht-invasiv.
Deutsch III Sport berichten – Correcting German Writing 9. Oktober 2012.
Sabine Dennerlein Nice to meet you! Enjoy 60 seconds of your precious time for yourself! Cornelia Renate Gottwald Your personal holistic health coach.
Hauptgebiete der Informatik
Server.
Stellen Sie sich vor: .....kurz vor der Einführung, ein neues Produktes / eine neue Software.....
Vocab Test #2 to thank danken penpal der Brieffreund discrimination
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Das Perfekt (Present Perfect Tense). Think of 5 things you did in your holidays but think of sentences in the PRESENT TENSE. 1.Am Montag schlafe ich viel.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Einführung in die Politikfeldanalyse 3.Vorlesung Prof. Herbert Gottweis Sommersemester 2006 Studienassistent: Homepage:
Die Frage des Tages : 1. Was hast du in deinem Rucksack? 2. Take 2 minutes to look over your der words before the quiz. This is not matching. You.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
You use the Perfect Tense to talk about things that happened in the PAST.
DEUTSCHLAND UND DIE MEDIEN
Infinitive completion. Peter can come with his friend on Tuesday. Peter kann am Dienstag mit seinem Freund kommen. You have to help me on the weekend.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Algorithm Engineering Schnelles Sortieren Stefan Edelkamp.
Algorithm Engineering Schnelles Sortieren Stefan Edelkamp.
Algorithm Engineering „Zeichenkettensuche“
Kölner Karneval By Logan Mack
Staatsballett Berlin Ein Verbesserungskonzept für den Social- Media Auftritt Your picture here.
Criteria for Authorship
Travelling Salesman Problem (TSP)
© All rights reserved. Zend Technologies, Inc. Jenseits von var_dump(): Debugging in ZF Jan Burkl System Engineer.
Dr.-Ing. René Marklein - NFT I - WS 06/07 - Lecture 6 / Vorlesung 6 1 Numerical Methods of Electromagnetic Field Theory I (NFT I) Numerische Methoden der.
Deutsch Eins Guten Morgen! O Heute ist Mittwoch! O Das Ziel: You will ask/answer questions about yourself and others O You will conjugate.
(Where are you traveling to?)
AVL-Trees (according to Adelson-Velskii & Landis, 1962) In normal search trees, the complexity of find, insert and delete operations in search.
Greetings and goodbyes Deutschland v. USA
Nur noch kurz die Welt retten Tim Bendzko
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
Lehrstuhl für Algorithm Engineering LS11
Word Order and the Verb Haben Kapitel 3 pg 78 and pg 81.
Ich suche nach..
How to use and facilitate an OptionFinder Audience Response System.
1 University of Freiburg Computer Networks and Telematics Prof. Christian Schindelhauer Bachelor & Master Theses in Computer Networks No Lecture
By Martin L. Loeffler.  The basic sentence has a subject and a verb.  The subject and verb need to be together.  The subject and verb need to agree.
VO D6/G6 H. Gottweis - SoSe 2oo7: (3) Theorien der Politikfeldanalyse VO D6/G6: Einführung in die Politikfeldanalyse 3. Stunde am 22. März 2007: Theorien.
Frage des Tages 22:40 Uhr ist... a) vierzig nach zehn. b) zwanzig vor elf.
Wort des Tages Objective Students will be able to change sentences from the present tense to the present perfect and will be able to change sentences.
 Präsentation transkript:

Algorithm Engineering Sommersemester 2010 Universität Bremen Stefan Edelkamp

Algorithm Engineering = Algorithmen Ingineur Werden Sie Dipl. Ing. Alg.

Struktur Inhalte Formales Ansatz, grundlegende Methodologie Schnelles Sortieren (Worst-Case) Effiziente Prioritätslisten Perfekte Hash-Funktionen Konstruktion von Suffix Bäumen Festplattenalgorithmen Externes Suchen und Sortieren inkl. unterer Schranken Flashspeicher- und GPU-Algorithmen Formales 6 ECTS Termine: Mittwoch 10-12 Uhr (V) Do. 12-14 (Ü) TAB 1.50 Modul 602 (Algorithmen- und Komplexitätstheorie)

Übungen / Prüfungen / Web Übungszettel alle 14 Tage (erste Stunde: 22. April 2010) Übung wechselt mit Vorlesung (n.V.) Theoretisch mit praktischen Teil Globalübung Prüfungen mündlich (Modulprüfung & Fachgespräch) Termine nach Vereinbarung zum Ende des Semesters Internet-Präsenz www.tzi.de/~edelkamp/ lectures/ae

Vorlesung vs. Besprechung Vorlesungsskript Anstatt reinem Folienvortrag können wir die im Netz bereitgestellten Folien in der Vorlesungszeit auch besprechen. Es gibt eine Skript zur Vorlesung in Form einer Kopiervorlage.

Laptops

Laptops

Thema Im Mittelpunkt von Algorithm Engineering steht ein von falsifizierbaren Hypothesen getriebener Kreislauf aus Entwurf, Analyse, Implementierung, und experimenteller Bewertung von praktikablen Algorithmen. Realistische Modelle, für Algorithmenbibliotheken und Sammlungen realer Eingabeinstanzen erlauben eine zustzliche Kopplung an Anwendungen

Alles Kanonisch? Auf den ersten Blick gleichen die Themen dieser Vorlesung denen einer "kanonischen" Algorithmenvorlesung. Allerdings geht es hier nicht um die Vermittlung der Grundideen, sondern um größtmögliche praktische Effizienz. Erstaunlicherweise ist das immer noch ein aktuelles Forschungsthema.

Zwei Gründe Reale Maschinen haben sich weit vom einfachen von Neumann-Modell entfernt. Insbesondere Speicherhierarchien und parallele Befehlsausführung machen das bloße Zählen von Befehlen ungenau. Die Algorithmen-Theorie hat faszinierende Techniken erfunden, die z.T. als nicht implementierbar gelten. Durch die Weiterentwicklung dieser Techniken lassen sich solche Lücke zwischen Theorie und Praxis manchmal überwinden.

Theoretisch oder Praktisch? AE das Zugeständnis, dass aktuelle Rechnerentwicklungen nach dem Auslauf des von-Neumann Modells neue Komplexitätsmodelle, Algoirthmenentwürfe und Analysen bedürfen. Der Kurs richtet sich an den gleichnamigen Veranstaltungen von Peter Sanders, Ulrich Meyer und Petra Mutzel und ist an den dortigen Universitäten eindeutig in den theoretischen Curricula verankert

Theoretisch oder Praktisch? In Deutschland verbindet AE die führenden Theoretiker des Landes, siehe www.algorithm-engineering.de Auch Jyrki Katajainen, Thomas Ottmann, Martin Dietzfelbinger, Peter Widmayer, Rolf Klein, Kurt Mehlhorn, Emo Wetzl u.v.a.m. sind Vertreter der Verbindung von effizienten Algorithmen auf der einen und komplexitäts-theoretischen Betrachtungen auf der anderen Seite

Theoretisch oder Praktisch? Keine Seite ist mehr oder weniger "theoretisch", eher das Gegenspiel von Gut und Böse. Eine lange Zeit wurde gern von "Algrithmentheorie" gesprochen. Natürlich muss sich die Theorie immer rechtfertigen, dass sie mit ihren Modellen zur Beschreibung der Phänomene in der Praxis noch die richtigen sind, um verändernd einzugreifen

Theoretisch oder Praktisch? Welche formalen Beschreibungsmethoden werden eingesetzt? Die jeweils passenden. Wie im RAM Modell zur sequentiellen Berechnung und dem PRAM Modell zur parallelen Berechnung werden bei Festplattenalgorithmen die Blockzugriffe gezählt. So bedürfen effiziente Algorithmen bedürfen häufig der amortisierten Analyse. Welche Arten von Theoremen werden mit welchen Methoden bewiesen? Korrektheitsbeweise sowie Laufzeitanalysen z.B. im I/O-Komplexitätsmodell von Vitter und Shriver... … gepaart mit einigen Unmöglichkeitsanalysen und unteren Schranken zum Beispiel für das externe Sortieren.

Algorithmen größtmöglicher Effizienz Für das Sortieren (großer Datenmengen)? Für Prioritätslisten (Vorangwarteschlangen)? Für Hashing (großer Datenmengen)? Für Graphsuche (Puzzleprobleme, kürzeste Wege)? Für Zeichenkettensuche (Substringsuche)? Für SLP (Studi-Lieblingsproblem)?

Neue Hardware Die Vorlesung ist ausgerichtet auf Algorithmen für moderne PC-Architekturen mit mehreren Berechnungseinheiten, hierarchisch organisiertem Prozessorcaches und externe Medien, wie riesige Festplatten und Flashspeicher.

Veranstalter Weitere Interessen: Werdegang Projektgruppen TU Dortmund (Sortieren, DA) U Freiburg (Suchen & Planen, Promotion & Habilitation) TU Dortmund (MC & KI, Nachwuchsgruppe) U Bremen (Sicherheit & KI) Weitere Interessen: Sortieren & Suchen insbesondere mit aktueller Hardware (HDD, SSD, GPU) GPS-Route (automatische Kartengenerierung & Routing auf GPS-Spuren) Mod-Plan (Wissensmodellierung für die Handlungsplanung) Bug-Finder (Automatische Fehlersuche in Programmen) FIDIUS (IDS mit KI)

Betreuer Preise u.a. Werdegang TU Dortmund (Sequenzalignierung, Algorithm Engineering) U Bremen (Handlungsplanung, Allgemeine Spiele) Amtierender Planungsweltmeister im deterministischen und nicht-deterministischen Planen

Historie der Algorithmik 50er/60er: Pionierzeit Pioniere der Algorithmik (Knuth, Floyd,…) gaben Implementierungen an aber selten: Tests oder Vergleiche Knuth: „Beware of bugs in the above code; I have only proved it correct, not tried it.“

70er/80er: Papier-und Bleistift Jahre Algorithmen werden nie implementiert Viele Schichten komplexer, unimplementierter Algorithmen und Datenstrukturen Sehr abstrakte Beschreibungen auf hohem Level Fehler werden nicht entdeckt → viele nicht-korrekte Algorithmen werden publiziert, z.B. Planare Einbettung bei Planaritätstest, Hopcroft & Tarjan 1974, Mehlhorn 1982

Lakonisch “If you don´t make mistakes, you´re not working on hard enough problems” [F. Wikzek] Algorithmentheorie entfernt sich immer weiter von der Praxis! Hinwendung zu praxisfernen Problemen Rückzug in wissenschaftlichen „Elfenbeinturm“ Implementierung = „Finger schmutzig machen“

80er: Erste experimentelle Vergleiche Bentley 1983: „Programming Pearls“ Jones 1986: Exp. Vergleich von Datenstrukturen für Prioritätswarteschlagen Stasko & Vitter 1987: Pairing heaps Aber: viele Experimente sind unzureichend: Es existieren keine Benchmark-Bibliotheken → Instanzen bei denen man selbst gut abschneidet Selten Vergleiche mit „state-of-the-art“ Algorithmen

90er: Beginn des AE Johnson 1991: Erster DIMACS Computational Challenge: network flow & shortest path → Benchmark Libraries, Datenformate, beste Verfahren Moret & Shapiro 1991: Sortierverfahren, 1994: MST Cherkassky, Goldberg, Radzig 1996: Kürzeste Wege Mehlhorn & Näher: Beginn von LEDA: C++-Library Pioniere: Goldberg, Johnson, Karp, McGeoch, Mehlhorn, Moret, Orlin, Pevzner

Seit 1996: ACM Journal of Experimental Algorithmics (JEA) Seit 1997: Workshop on Algorithm Engineering (WAE,Italiano) → European Symposium on Algorithms / Applied Track Seit 1999: Workshop on Algorithm Engineering and Experiments (ALENEX) → co-located mit ACM Symposium on Discrete Algorithms (SODA) Seit 2001: Workshop on Experimental Algorithmics ACM Symposium on Computational Geometry: Applied Track (inzwischen integriert) Viele Konferenzen haben mehr „Praxis“ im „Call for Papers“

90er: Beginn des AE Aho, Johnson, Karp, Kosaraju, McGeoch, Papadimitriou, Pevzner 1996 (seminal NSF-paper): „Emerging Opportunities for Theoretical Computer Science“: „Efforts must be made to ensure that promising algorithms discovered by the theory community are implemented, tested and refined to the point where they can be usefully applied in practice.“ “…to increase the impact of theory on key application areas.“

Ende der 90er: Rechnerarchitektur LaMarca & Ladner 1996: „Cache-Optimierung ist machbar, algorithmisch interessant, lohnenswert (auch für Sortierverfahren) Vitter 2001: External Memory Modelle und Algorithmen: tiefere Speicherhierarchien als vor 40 Jahren, weit größere Datenmengen

Einige Erfolgsstories Erfolgreiche Algorithmenbibliotheken: – LEDA, CGAL, AGD, CPLEX, ABACUS Viele vergleichende experimentelle Studien über „beste“ Algorithmen und Datenstrukturen – Z.B. Prioritätswarteschlangen, Suchbäume, Hashtabellen, TSP, MST, kürzeste Wege, Konvexe Hülle, Delaunay Triangulierung, Matching, Flüsse) Große Instanzen NP-schwerer Probleme gelöst (TSP, Set Cover,…) Spektakuläre Speed-Ups über „Everyday“ Code

Aufgaben des AE 1. Studium von realistischen Modellen für algorithmische Probleme. 2. Studium von realistischen Modellen für realistische Maschinen. 3. Entwurf von einfachen und auch in der Realität effizienten Algorithmen.

Aufgaben des AE 4. Analyse praktikabler Algorithmen zwecks Etablierung von Leistungsgarantien, die Theorie und Praxis näher bringen. 5. Implementierungen, die Lücken zwischen bestem theoretischen Algorithmus und bestem implementierten Algorithmus verkleinern. 6. Systematische, reproduzierbare Experimente, die der Widerlegung oder Stärkung aussagekräftiger, falsifizierbarer Hypothesen dienen.

Aufgaben des AE 7. Entwicklung und Ausbau von Algorithmenbibliotheken, die Anwendungsentwicklungen beschleunigen und algorithmisches Know-how breit verfügbar machen. 8. Sammeln und verfügbar machen von großen und realistischen Probleminstanzen sowie Entwicklung von Benchmarks. 9. Einsatz von algorithmischem Know-how in konkreten Anwendungen.

Inhalte Schnelles Sortieren z.B. mit Quick- und Weak-Heapsort Cache- und Worst-Case Effiziente Prioritätslisten z.B. mit Relaxed Weak Queues Perfekte Hash-Funktionen z.B. zur Kompression von Daten Strings: Konstruktion von Suffix Bäumen und Arrays Festplattenalgorithmen: Externe Such- und Spannbäume, Graphsuche z.B. BFS mit „Delayed Duplicate Detection“ Flashspeicheralgorithmen: Schnelles Lesen auf der Solid-State-Disk GPU-Algorithmen: Parallele Algorithmen auf der Grafikkarte

Inhalte Schnelles Sortieren z.B. mit Quick- und Weak-Heapsort Cache- und Worst-Case Effiziente Prioritätslisten z.B. mit Relaxed Weak Queues Perfekte Hash-Funktionen z.B. zur Kompression von Daten Strings: Konstruktion von Suffix Bäumen und Arrays Festplattenalgorithmen: Externe Such- und Spannbäume, Graphsuche z.B. BFS mit „Delayed Duplicate Detection“ Flashspeicheralgorithmen: Schnelles Lesen auf der Solid-State-Disk GPU-Algorithmen: Parallele Algorithmen auf der Grafikkarte

Motivation: Finden einer Telefonnummer a) In einer sortierten Liste 04212182312 Sabine 04212183316 Martin 04212184039 Andree 04212184767 Stefan 04212187089 Otthein 04212187824 Michael 04212188175 Hagen 04212188797 Lothar 04212189740 Thomas 04212187089 Otthein 04212187824? Got it! 04212187824 Michael 04212188797 Lothar Anzahl der Operations steigt mit der Anzahl der Einträge.

Motivation b) In einer Hashtabelle 04212187824? 04212184039 Andree 04212188175 Hagen 04212188797 Lothar 04212182312 04212183316 04212184039 04212187824 04212188175 04212187089 04212184767 04212188797 04212189740 04212182312 Sabine 04212187089 Otthein 04212184767 Stefan 04212183316 Martin 04212187824 Michael Got it! 04212189740 Thomas Nutzen einer ”Hashfunktion” um Addressen zu generierung und zu merken

Cuckoo Hashing Suche: Die Hashfunktion gibt zwei Möglichkeiten aus. 04212188175 Hagen 04212183316 Martin 04212188797 Lothar 04212184039 Andree 04212187824 Michael 04212187089 Otthein 04212182312 Sabine 04212189740 Thomas 04212184767 Stefan 04212187824? Got it! Nicht hier

Cuckoo Hashing Insert: Neue Information wird eingefügt; falls notwendig, wird die alte Information herausgeschoben. 04212188175 Hagen 04212183316 Martin 04212188797 Lothar 04212184039 Andree 04212187824 Michael 04212189740 Thomas 04212182312 Sabine 04212187089 Otthein 04212184767 Stefan 04212187395 Gerrit Insert ”Gerrit, 04212187395” Insert ”Sabine, 04212182312” Insert ”Hagen, 04212188175” 04212182312 Sabine 04212188175 Hagen

Literatur zur Vorlesung Skript ~ 3. Kapitel (Datenstrukturen, Externe & Parallele Suche) von 22 aus eigenem Buchprojekt Aktuelle Veröffentlichung in Konferenzbänden und Zeitschriften der KI, der Verifikation und des Algorithmen Engineerings. Protagonisten der Szene Ulrich Meyer (Univ. Frankfurt), Peter Sanders (Univ. Karlsruhe), Lars Arge (Univ. Aarhus), Kurt Mehlhorn (MPI Saarbrücken), Eric Demaine (MIT) ...

Hausaufgabe: Cuckoo Hash Baumann, Hannes 8746 Bayro Kaiser, Esteban 8920 Berndt, Jan Ole 8177 Boronowsky, Michael 7272 Breckenfelder, Christof 3837 Edelkamp, Stefan 4676 Elfers, Carsten 7618 Gehrke, Jan 7828 Gottfried, Björn 7832 Herzog, Otthein 7089 Hoffmann, Peter 7281 Horstmann, Mirko 7835 Iben, Hendrik 2447 Jacobs, Arne 9135 Kalkbrenner, Gerrit 7395 Kemnade, Andreas 8919 Kissmann, Peter 7695 Landau, Veronika 2894 Langer, Hagen 8175 Lawo, Michael 7824 Leibrandt, Rüdiger 8919 Lüdtke, Andree 4039 Mania, Patrick 7282 Messerschmidt, Hartmut 7840 Mathews, Antje 7090 Meyer-Lerbs, Lothar 8797 Modzelewski, Markus Möhlmann, Daniel 9135 Nadin, Michai 4311 Nicolai, Tom 8172 Pantke, Florian 7475 Schröder, Marcus 8950 Schuldt, Arne 8176 Sohr, Karsten 7618 Sprado, Jörn 4781 Stommel, Martin 3316 Veit, Sabine 2312 Wagner, Thomas 9740 Warden, Tobias 8614 Wewetzer, David 3579 Wojtusiak, Janusz 8175 Woronowicz, Tanja 7829 Xing, Xin 3035