Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Ähnliche Dokumente
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Willkommen zur Vorlesung Komplexitätstheorie

Grundlagen der Algorithmen und Datenstrukturen Kapitel 4

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

Willkommen zur Vorlesung Komplexitätstheorie

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Willkommen zur Vorlesung Komplexitätstheorie

Willkommen zur Vorlesung Komplexitätstheorie

Informatik II, SS 2018

Ressourcenmanagement in Netzwerken SS06 Vorl. 12,

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

Algorithms & Datastructures Midterm Test 1

EADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr

Informatik II, SS 2014

Data Structures and Algorithm Design

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Vorlesung Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

14. Rot-Schwarz-Bäume

4. Übung zu Algorithmen I 17. Mai 2017

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Informatik II, SS 2016

Data Structures and Algorithm Design

Informatik II, SS 2014

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing

3. Übung Algorithmen I

Übungsklausur Algorithmen I

Übung Algorithmen und Datenstrukturen

Übung Algorithmen I

Grundlagen: Algorithmen und Datenstrukturen

Informatik II, SS 2014

Übungsklausur Algorithmen I

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Final Exam. Friday June 4, 2008, 12:30, Magnus-HS

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Bayesian Networks. Syntax Semantics Parametrized Distributions Inference in Bayesian Networks. Exact Inference. Approximate Inference

Datenstrukturen und Algorithmen. Vorlesung 10

Cycling and (or?) Trams

Dictionary Definition

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (07 - Skiplisten) Prof. Dr. Susanne Albers

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009


Priority search queues: Loser trees

Order Ansicht Inhalt

Grundlagen: Algorithmen und Datenstrukturen

Introduction FEM, 1D-Example

Eine universelle Klasse von Hash-Funktionen

Hashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP

Hashing. Übersicht. 5 Hashing

Willkommen zur Vorlesung Komplexitätstheorie

Introduction FEM, 1D-Example

Magic Figures. We note that in the example magic square the numbers 1 9 are used. All three rows (columns) have equal sum, called the magic number.

Datenstrukturen. Ziele

Hashing. Überblick Aufgabe Realisierung

Finite Difference Method (FDM)

Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit

Informatik II, SS 2016

D-BAUG Informatik I. Exercise session: week 1 HS 2018

Hashing Hashfunktionen Kollisionen Ausblick. Hashverfahren. Dank an: Beate Bollig, TU Dortmund! 1/42. Hashverfahren

Konfiguration von eduroam. Configuring eduroam

Informatik II Hashing

Informatik II Hashing

Im Fluss der Zeit: Gedanken beim Älterwerden (HERDER spektrum) (German Edition)

8.1 Einleitung. Grundlagen der Künstlichen Intelligenz. 8.1 Einleitung. 8.2 Lokale Suchverfahren. 8.3 Zusammenfassung. Suchprobleme: Überblick

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Informatik II, SS 2018

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen

Willkommen zur Vorlesung Komplexitätstheorie

Titelmasterformat Object Generator durch Klicken bearbeiten

Zur Evolution technischer und biologischer Systeme Impulsvortrag

Splay-Bäume. Joseph Schröer. Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 5, Donnerstag, 21.

Randomisierte Algorithmen und probabilistische Analyse

Kapitel Andere dynamische Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT)

Application Note. Import Jinx! Scenes into the DMX-Configurator

Informatik II, SS 2018

Korollar 191 In einem (a, b)-baum mit n gespeicherten Schlüsseln können die Wörterbuchoperationen in Zeit O(log a n) durchgeführt werden.

Mixed tenses revision: German

Kap. 4.7 Skiplisten. 15./16. VO DAP2 SS /10. Juni 2008

FEBE Die Frontend-Backend-Lösung für Excel

Kapitel Andere dynamische Datenstrukturen

Informatik II, SS 2016

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

Informatik II, SS 2016

Vorlesung Datenstrukturen

Mercedes OM 636: Handbuch und Ersatzteilkatalog (German Edition)

Algorithmen und Datenstrukturen Musterlösung 5

Informatik II, SS 2018

Walter Buchmayr Ges.m.b.H.

Algorithmen für schwierige Probleme

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2018

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

Ressourcenmanagement in Netzwerken SS06 Vorl. 13,

Transkript:

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 13, 25.11.08 Friedhelm Meyer auf der Heide 1

Organisatorisches Die letzte Vorlesung über Grundlegende Algorithmen findet am Montag, 1.12. statt. Die Vorlesung Komplexitätstheorie von Johannes Blömer beginnt am Montag, 8.12. Voraussichtliche Prüfungstage für die erste Prüfungsphase: 9.12., 12.12., 15.12. Friedhelm Meyer auf der Heide 2

Randomisierte Algorithmen Friedhelm Meyer auf der Heide 3

Perfektes Hashing Friedhelm Meyer auf der Heide 4

Perfektes Hashing Zu S U, S =n, berechne eine Hashfunktion h:u [m] mit: h kann in konstanter Zeit ausgewertet werden. h benötigt Speicherplatz O(n). Wie können wir ein h konstruieren, h S ist injektiv. das perfekt für S ist?? n m c n für eine (kleine) Konstante c 1. Ein solches h heisst perfekt für S. Eine perfekte Hashfunktion für S liefert eine Datenstruktur für ein statisches Wörterbuch, d. h. für den Datentyp, der die Suchoperation in S unterstützt. - Lege Hashtableau T an, d.h. ein Array T[0 : m-1] - Speichere x S in T[h(x)] (Beachte: Hierbei entstehen keine Kollisionen!!) Suche: Für x U liefert search(x) (die assoziierte Information zum) Schlüssel x. Dazu muss nur in T[h(x)] nachgeschaut werden. Suchzeit O(1), Speicherplatz O(n) Friedhelm Meyer auf der Heide 5

Lineare Hashfunktionen Sei U= [p], p prim. Für a U sei h a : U [m] definiert durch h a (x)= (ax) mod(p) mod(m) Sei H 1 (m):= {h a : U [m], a U}. Im folgenden betrachten wir immer das Zufallsexperiment Wähle h a zufällig, gleichverteilt aus H 1 (m). Für m=n : Σ(b a (j)) 2 < 5n für mindestens die Hälfte der h a H 1 (m). Für m=2n 2 : mindestens die Hälfte der h a H 1 (m) sind injektiv auf S. Friedhelm Meyer auf der Heide 6

Das perfekte Hashing-Schema d 0 d 1 x h a (x) = j a j, d j, 2b a (j) 2 h (j) (x) + d j = a j x mod(p)mod(2b a (j) 2 )+ d j d j 2b a (j) 2 T[j] S T[0 : n-1] T*[0 : 10n-1] Friedhelm Meyer auf der Heide 7

Eigenschaften des perfekten Hashing-Schemas Falls wir die Suche nach den Hashfunktionen h a H 1 (m) durch die Prozedur Wähle solange zufälliges h a H 1 (m), bis eins mit der gesuchten Eigenschaft gefunden ist realisieren, reichen wegen des Satzes über lineare Hashfunktionen erwartet zwei Versuche (vgl. Pralinen finden ). Ein Versuch benötigt Zeit O(m) (für den Test der Eigenschaft). Satz: Das oben beschriebene Schema hat folgende Eigenschaften: Es benötigt Platz O(n). Eine Suchanfrage benötigt konstante Zeit. Die Zeit um die Datenstruktur aufzubauen beträgt - O(p n) im worst case, - erwartet O(n). Friedhelm Meyer auf der Heide 8

A new data structure for dictionaries: Skiplists Friedhelm Meyer auf der Heide 9

Dictionaries (dynamische Wörterbücher) Support the operations find, insert, delete. Examples: Search trees like - AVL-trees, red-black- trees, 2-3-trees, O(log(n)) time per operation Hashing structures like - Hashing with chaining, linear probing, double hashing, Friedhelm Meyer auf der Heide 10

A new realization of dictionaries: Skiplists A skiplist is a linked list with shortcuts Friedhelm Meyer auf der Heide 11

Find in Skiplists Friedhelm Meyer auf der Heide 12

Insert in Skiplists Insert(x): - Find x, - Flip a coin until, after some number h of trials, head appears - Insert x at the corresponding position on the h lowest levels h is the height of x. How large is h? Friedhelm Meyer auf der Heide 13

The height of a Skiplist is logarithmic, with high probability Thus, the expected size (number of nodes) is 2n. Prob(h 2log(n)) = 1/n² The height of the skiplist is the maxium height of its elements. Lemma: Prob(Height of Skiplist 2log(n)) 1/n Friedhelm Meyer auf der Heide 14

Delete in Skiplists Delete(x) - Find(x) - Remove it on all levels it is present by connecting its predecessor with its successor Friedhelm Meyer auf der Heide 15

Expected time per operation is logarithmic Note: We only analyse search; the other operations are dominated by this. Consider the reversed search path: (H:= height of skiplist) - In each step, it goes upwards with probability ½. - Thus, after expected 2H steps, it is on level H, which is expected < 2log(n). Friedhelm Meyer auf der Heide 16

Summing up A Skiplist is a randomized datastructure that has the following properties: - its expected size is O(n) - Find, insert, delete need expected time O(log(n)). Thus Skiplists have a performance comparable to balanced search trees, but are much easier to implement. Friedhelm Meyer auf der Heide 17

Grundlegende Begriffe über randomisierte Algorithmen Friedhelm Meyer auf der Heide 18

Grundlegende Begriffe über randomisierte Algorithmen Ein randomisierter Algorithmus A, gestartet mit Eingabe x, darf, zusätzlich zu den üblichen Operationen, Operationen vom Typ R :=random(m) ausführen. Dabei ist M eine endliche Menge, R :=random(m) weist der Variablen R ein zufällig, uniform gewähltes Element aus M zu. Eine Rechnung R von A gestartet mit x ergibt sich durch sukzessive Festlegung der Ergebnisse a i M i, i=1, s, der Zufallsexperimente R i :=random(m i ), i=1,,s, die während der Rechnung R ausgeführt werden. Die Wahrscheinlichkeit für das Auftreten von R bei Eingabe x ist somit Pr(R)= 1/ M 1 * 1/ M 2 * * 1/ M s. R := Länge von R; C := Menge aller Rechnungen von M gestartet mit x. Friedhelm Meyer auf der Heide 19

Grundlegende Begriffe über randomisierte Algorithmen (Sog. Tail Tail Estimates) Estimates) Friedhelm Meyer auf der Heide 20

Unsere Beispiel Praline suchen Wir schreiben k = εn E:= Erwartete Zahl von Versuchen = (n-k)/k +1 =(1- ε)/ε +1 Prob(#Versuche > s) = ((n-k)/n) s = (1 - ε) s Prob(#Versuche > E (1+d)) = (1 - ε) E (1+d) [e - (1 - ε) (1 - ε)] 1+d Da e - (1 - ε) (1- ε) < 1 ist, fällt diese W keit exponentiell mit d. Beispiel: Für ε = ½ ist E=2, also Prob(#Versuche > E (1+d)) = (1/2) 2 + 2d. Das ist < 1/1Mio bereits für d=9, also bei 20 Versuchen Friedhelm Meyer auf der Heide 21

Thank you for your attention! Friedhelm Meyer auf der Heide Heinz Nixdorf Institute & Computer Science Department Fürstenallee 11 33102 Paderborn, Germany Tel.: +49 (0) 52 51/60 64 80 Fax: +49 (0) 52 51/62 64 82 E-Mail: fmadh@upb.de http://www.upb.de/cs/ag-madh Friedhelm Meyer auf der Heide 22