Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…]

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Claudio Moraga; Gisbert Dittrich
Wilhelm-Raabe-Schule Fachbereich: Mathematik Thema: Lineare Funktionen
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Kapitel 6: Klassifizierung von Sortiertechniken
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
5. Sortier-Algorithmen Vorbemerkungen:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
WS 03/04 Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Vortrag: Ingo Gensch, Mathias Reich am:
Statistische Methoden I WS 2002/2003 Probeklausur Freitag, 13. Dezember statt Vorlesung - Nächsten Freitag!!!
Computer Science Unplugged Sortiernetzwerke © Computer Science Unplugged canterbury.ac.nz von Tim Bell, Ian H. Witten und Mike Fellows Übersetzung:
Effiziente Algorithmen
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Merge-Sort und Binäres Suchen /10D. Haehn Populäres algorithmisches Lösungsverfahren Populäres algorithmisches Lösungsverfahren Divide: Problem.
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Sortieralgorithmen Sortieren von Arrays.
Einführung in die Programmierung
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Mehrkriterielle Optimierung mit Metaheuristiken
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Erklärung der „Lottoformel“ P =
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Suchen und Sortieren.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Mittel- und Erwartungswert
 Präsentation transkript:

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort “Equivalenz”? Welche Webseiten enthalten die Wörter “Uni Saarland”? Welche ist die “wichtigste”? Web hat mehrere Billionen Seiten: Suche nach der Nadel im Heuhaufen.

Bedeutung von Suchen Menschen verbringen viel Zeit mit Suchen und Ordnen (Sortieren), Computer auch Suchen und Sortieren sind Hauptanwendungen von Computern Es gibt hocheffiziente Suchverfahren: Suche im Web in weniger als 1 Sekunde Sortieren hilft beim Suchen: Ordnung ist das halbe Leben

Gibt es ein X in der Buchstabensuppe?

Aha!

Ein grünes Badetuch?

Aha! Bilder von Ursus Wehrli, 2011

Konzepte der heutigen Vorlesung Suchen = Information ablegen und verarbeiten, so dass man sie schnell wiederfindet (oder sagen kann, das sie nicht vorhanden ist) Ordnung erleichtert das Suchen Sortieren = nach einem Kriterium ordnen Datenstrukturen = Suchen in Mengen, die sich zeitlich ändern Laufzeit (Komplexität) von Algorithmen

Suchen Daten können alles Mögliche sein: Hier: (Name + Telefonnummer) Zeichenketten, Zahlen, Bilder, … Hier: (Name + Telefonnummer) Haben einen Karteikasten: auf jeder Karteikarte steht ein Name und eine Nummer Wie viele Zettel muss man anschauen, bis man die Nummer zu einem Namen hat?

Zettel sind ungeordnet Wir müssen alle Karten anschauen, um sicher zu sein, dass ein gesuchter Name nicht da ist. Falls ein Name da ist, im Mittel die Hälfte der Karten Anzahl der Vergleiche im schlechtesten Fall = Anzahl der Karten

Ich finde Kurts Nummer nicht! Ein Beispiel Das Internet hat mehrere Billionen Webseiten 1 Billion = 1.000.000.000.000 Optimistisch: Pro Sekunde koennen wir 1.000.000.000 Seiten durchsuchen Dann brauchen wir 1.000 Sekunden! Ich finde Kurts Nummer nicht!

Wie machen wir das besser? Wir sortiern unsere Karteikarten nach Name Also wie in einem Telefonbuch Wir suchen nach X Wir ziehen eine Karte, darauf steht Y X kommt vor/nach Y in der alphabetischen Ordnung der Namen oder X= Y Was wissen wir nun? Welche Karte nehmen wir für den ersten Vergleich? Wie geht es weiter?

Konzept: Divide and Conquer Binärsuche Gegeben: Liste mit N Elementen Sortiert: der Nachfolger ist groesser als sein Vorgaenger. Frage: enthaelt die Liste ein Element x? Algorithmus: Konzept: Divide and Conquer

Der Algorithmus Karteikasten: L[1],L[2],…,L[N] N Karten Suche(L[1], …, L[N], x) falls N = 0 dann fertig, x nicht vorhanden Sei m das mittlere Element in L, also m = L[N/2] falls x = m dann fertig, x ist gefunden falls x < m dann Suche(L[1], …, L[N/2-1], x) falls x > m dann Suche(L[N/2+1], …, L[N], x)

Komplexität (Anzahl der Vergleiche) N = 1: Vergleiche = 1 N = 3: Vergleiche = 2 2 40 = 1.099.511.627.776 N = 7: Vergleiche = 3 N = 15: Vergleiche = 4 N = 31: Vergleiche = 5 N = 15 = 2x2x2x2 – 1 = 2 4 - 1 Vergleiche = 4 N = 31 = 2x2x2x2x2 – 1 = 2 5 - 1 Vergleiche = 5 N = …. = 2 40 - 1 Vergleiche = 40 Das ist irre!!!!! Anzahl Vergleiche = Zweierlogarithmus( N + 1 )

Lineare Suche vs. Binärsuche Binärsuche funktioniert wenn man die gegebenen Daten ordnen kann: (Name, Telefonnummer) Webseiten? Lineare Suche: Aufwand = Anzahl der Elemente Binärsuche: Aufwand = Logarithmus der Anzahl der Elemente Binärsuche ist rasend schnell

Wie sortiert man?

Sort( 𝑆 < ) s Sort( 𝑆 > ) Quicksort S = Menge, die zu sortieren ist Wähle ein Element s in S Teile S in 𝑆 < = Elemente kleiner s 𝑆 > = Elemente größer s Gib aus Sort( 𝑆 < ) s Sort( 𝑆 > ) Rekursion endet, wenn S< und S> leer sind Tony Hoare Turing Award 1980

Tony Hoare (1934 -- „Ich stelle fest, dass es zwei Wege gibt, ein Software-Design zu erstellen, entweder so einfach, dass es offensichtlich keine Schwächen hat, oder so kompliziert, dass es keine offensichtlichen Schwächen hat. Die erste Methode ist weitaus schwieriger.“ Tony Hoare, Dankesrede für den Turingpreis 1980 „I think Quicksort is the only really interesting algorithm that I've ever developed. “

Beim Teilen kann man Glück oder Pech haben Laufzeit wie 𝑛 log 𝑛 𝑛 2 𝑛 = 10 6 0.1 sec 500 sec

Kann man das Glück erzwingen? Bis 1980: immer raffiniertere deterministische Strategien Seit 1980: wähle das Teilungselement zufällig Randomisierter Algorithmus Urne mit n/2 roten und n/2 schwarzen Kugeln. Wie findet man eine rote Kugel ohne hinsehen?

Zusammenfassung Sortieren Sortieren geht recht schnell, eine Million Elemente in 0.1 Sekunden auf Notebook Weltrekorde Eine Billion Zahlen in drei Stunden 50 Milliarden Zahlen für einen Penny

Suchbäume 2,7,3,9,4, Suche nach 9, 11,1,6, Suche nach 8

Zusammenfassung Binärsuche ist rasend schnell: 40 Vergleiche für Suche in einer Billion Elemente Sortieren ist billig: eine Million Elemente in 0.1 sec auf diesem Notebook Suchbäume erlauben Binärsuche auf dynamischen Daten