Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07

Ähnliche Dokumente
4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Multiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Die mittlere Zeit zum Auffinden eines Elements in einer Hash-Tabelle beträgt, unter realistischen Annahmen, O(1).

Kapitel 9. Hashverfahren. 9.1 Einführung

Bäume, Suchbäume und Hash-Tabellen

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

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.

Abschnitt 18: Effizientes Suchen in Mengen

Einführung in die Wahrscheinlichkeitsrechnung

Suchen in Listen und Hashtabellen

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Satz 16 (Multiplikationssatz)

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

Informatik II Grundbegriffe der Wahrscheinlichkeitsrechnung

3. Kombinatorik und Wahrscheinlichkeit

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

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

1 Zahlentheorie. 1.1 Kongruenzen

Stochastik I. Vorlesungsmitschrift

Wörterbucher. Das Wörterbuch 1 / 71

Grundlagen der Programmierung

2 Mengen und Abbildungen

9. Elementare Wahrscheinlichkeitsrechnung

Algorithmen und Datenstrukturen SS09. Foliensatz 12. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9

5. Äquivalenzrelationen

Satz 18 (Satz von der totalen Wahrscheinlichkeit)

1 Stochastische Konvergenz 2. 2 Das Gesetz der grossen Zahlen 4. 3 Der Satz von Bernoulli 6

Zahlentheorie für den Landeswettbewerb für Anfängerinnen und Anfänger der Österreichischen Mathematik-Olympiade

Datenbanksysteme I WS 2012/13 - Übung 0 - Bernhard Pietsch Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche

Probabilistische Primzahltests

Unabhängigkeit KAPITEL 4

3 Bedingte Wahrscheinlichkeit, Unabhängigkeit

Datenstrukturen & Algorithmen

31 Polynomringe Motivation Definition: Polynomringe

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Kap. 4.2: Binäre Suchbäume

Zufallszahlen. Diskrete Simulation. Zufallszahlengeneratoren - Zufallszahlen

Einführung in die Wahrscheinlichkeitsrechnung

Arbeitsblatt 2 Übungen zu Mathematik I für das Lehramt an der Grund- und Mittelstufe sowie an Sonderschulen H. Strade, B. Werner WiSe 06/

7. Triangulation von einfachen Polygonen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Grundlagen der Mengenlehre

Einführung in die Kryptographie ,

Rumpfskript. Elementare Wahrscheinlichkeitsrechnung. Prof. Dr. Ralf Runde Statistik und Ökonometrie, Universität Siegen

Komplexität von Algorithmen

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)

Kapitel 2 Wahrscheinlichkeitsrechnung

Kapitel 5. Stochastik

34. Algorithmus der Woche Hashing

Wahrscheinlichkeitsrechnung

Weihnachtszettel zur Vorlesung. Stochastik I. Wintersemester 2011/2012

Einführung in die Informatik Hashtables

Grundbegriffe der Wahrscheinlichkeitsrechnung

Die Menge C der komplexen Zahlen wird im Kapitel Weitere Themen behandelt.

1 Vorbemerkungen 1. 2 Zufallsexperimente - grundlegende Begriffe und Eigenschaften 2. 3 Wahrscheinlichkeitsaxiome 4. 4 Laplace-Experimente 6

2. Hashing. Einführung. Einführung (2) Perfektes Hashing: Direkte Adressierung

Kryptografische Protokolle

Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor du dir die Lösungen anschaust!

P (X = 2) = 1/36, P (X = 3) = 2/36,...

3. Diskrete Mathematik

Der Euklidische Algorithmus Dieter Wolke

Folgen und Reihen. Zahlenfolgen , ,

Äquivalenzrelation Restklassen Teilbarkeit in Z Kleiner Satz von Fermat Satz von Euler Eulersche ϕ-funktion

Varianz und Kovarianz

7 Der kleine Satz von Fermat

K. Eppler, Inst. f. Num. Mathematik Übungsaufgaben. 8. Übung SS 16: Woche vom

Klausur Informatik B April Teil I: Informatik 3

Kapitel IV. Endliche, abzählbare und überabzählbare Mengen. IV.1 Abzählbare Mengen

Dieses Quiz soll Ihnen helfen, Kapitel besser zu verstehen.

Prof. Dr. H. Brenner Osnabrück SS Zahlentheorie. Vorlesung 3. Der euklidische Algorithmus

8. Konfidenzintervalle und Hypothesentests

A N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )

4 Affine Koordinatensysteme

Stochastik Klasse 10 Zufallszahlen

Ü b u n g s b l a t t 10

Doz. Dr. H.P. Scheffler Sommer 2000 Klausur zur Vorlesung Stochastik I

WS 2016/17 Torsten Schreiber

2.2 Ereignisse und deren Wahrscheinlichkeit

Natürliche, ganze und rationale Zahlen

5 Grundlagen der Zahlentheorie

3 Vom Zählen zur Induktion

8. Wahrscheinlichkeitsrechnung

5 Kongruenzrechnung. Definition. Zwei Zahlen heißen kongruent modulo m, wenn sie bei der Division durch m den gleichen Rest lassen.

Lenstras Algorithmus für Faktorisierung

Bei der Berechnung von Laplace-Wahrscheinlichkeiten muss man die Mächtigkeit von Ergebnisräumen und Ereignissen bestimmen.

Kombinatorik: Abzählverfahren (Teschl/Teschl 7) Summenregel. Allgemeiner

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Algorithmen & Datenstrukturen 1. Klausur

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Einführung in die Zahlentheorie

Algorithmen und Datenstrukturen Suchbaum

Transkript:

6 Hashverfahren zum Namen Hash : engl für zerhacken gestreute Speicherung 61 Grundbegriffe Wir unterstellen ein direkt adressierbares Speichermedium mit einer Menge von Adressen, dem Adressraum Die Datensätze werden durch Schlüsselwerte repräsentiert Es gibt eine universelle Schlüsselwertmenge Zu jedem Zeitpunkt ist immer eine Teilmenge gespeichert Prof Dr Dietmar Seipel 336

Die Zuordnung eines Schlüsselwertes auf einen Speicherplatz erfolgt mittels einer arithmetischen Funktion genannt Hashfunktion: heißt Hausadresse von Prof Dr Dietmar Seipel 337

Beispiel: 4 1 19 18 10 f 18 4 10 19 Prof Dr Dietmar Seipel 338

Standardannahmen für Hashfunktionen Bei B Bäumen (bzw B Bäumen) erfolgte dagegen die Zuordnung der Schlüsselwerte auf die Speicherplätze in diesem Fall die Datenseiten durch Traversieren des Baumes gepaart mit Schlüsselwertvergleichen? : datenorientierte Strukturierung Die Strukturierung mittels Hashverfahren nennt man dagegen speicherorientiert Die Zuordnung eines Schlüsselwerts mittels einer Hashfunktion gespeicherten Menge von Schlüsselwerten auf einen Speicherplatz erfolgt unabhägig von der aktuell Ist injektiv, so heißt Hashfunktion Meist gilt, und direkt, anderenfalls heißt auch eigentliche ist eine eigentliche Hashfunktion Prof Dr Dietmar Seipel 339

Beispiel: (i) direkt (ii) eigentlich Prof Dr Dietmar Seipel 340

Synonyme Zwei unterschiedliche Schlüsselwerte dieselbe Hausadresse Die Äquivalenzklassen haben heißen Synonyme, wenn sie für heißen Synonymklassen, und sie bilden eine disjunkte Zerlegung von Prof Dr Dietmar Seipel 341

Warum eigentliche Hashfunktionen? Direkte Speicherfunktionen führen häufig zu einer Speicherplatzverschwendung Denn es gilt dann:, wegen der Injektivität von, und, da meist nur ein kleiner Prozentsatz aller möglichen Schlüsselwerte gespeichert wird Dies führt zu einem sehr geringen Belegungsfaktor Deshalb wählt man eigentliche Hashfunktionen mit Prof Dr Dietmar Seipel 342

Dabei nimmt man in Kauf, dass zwei Schlüsselwerte zu speichern sind, welche auf dieselbe Hausadresse abgebildet werden (Synonyme) Bei solchen Kollisionen sind dann weitere Maßnahmen erforderlich um die Wörterbuchoperationen (Suchen, Einfügen und Löschen) durchführen zu können Ein Hashverfahren besteht somit aus zwei Komponenten: einer (eigentlichen) Hashfunktion und [einfach zu berechnen] einer Kollisionsstrategie [aufwändiger] Prof Dr Dietmar Seipel 343

Kollisionswahrscheinlichkeit Man sollte die Hashfunktion so wählen, daß die Kollisionswahrscheinlichkeit möglichst gering wird Allerdings ist die Wahrscheinlichkeit für eine Kollision ia recht groß Das Auftreten mehrerer Kollisionen ist unwahrscheinlicher Prof Dr Dietmar Seipel 344

Geburtstags Paradoxon: Auf einer Party treffen sich zufällig Personen: Ihre Geburtstage stochastisch unabhängig: seien gleichverteilt über das Jahr und Prof Dr Dietmar Seipel 345

Frage: Wie groß ist die Wahrscheinlichkeit, dass keine zwei Personen am gleichen Tag Geburtstag haben? (keine Kollision) Zahl der möglichen Fälle: ( Ziehen mit Zurücklegen ) Zahl der günstigen Fälle: Zurücklegen ) ( Ziehen ohne Schon für gilt Für ist der Belegungsfaktor noch sehr niedrig dagegen immer Prof Dr Dietmar Seipel 346

Hashfunktion 62 Gebräuchliche Hashfunktionen 621 Division mit Rest Sei der Adressraum mit mit einer Basisadresse, meist Bemerkung: Prof Dr Dietmar Seipel 347

Beispiel: Sei dh Dann erhalten wir für und, und sei die nicht injektive Funktion, Belegungsfaktor Prof Dr Dietmar Seipel 348

Stellen von Ist Modulo Berechnung dem Abschneiden der letzten Dezimaldarstellung ( Sectioning ) eine Zehnerpotenz, so entspricht die bei Aufgrund der häufig benutzten Dezimalklassifizierung und der Konkatenation von Teilschlüsseln zu Gesamtschlüsseln ist allerdings die Kollisionsgefahr beim Sectioning recht hoch Ist die Zahl der zu speichernden Schlüsselwerte zeitlich relativ konstant, so hat es sich praktisch bewährt für die Größe des Adressraums eine Primzahl zu wählen (Dann gilt ) Prof Dr Dietmar Seipel 349

622 Basistransformation Jeder Schlüsselwert läßt sich schreiben als Dezimaldarstellung: Wir wählen nun eine neue Basis : Prof Dr Dietmar Seipel 350

Beispiel: Die Basistransformation ist für Kollisionen injektiv, dh man erhält keine Man kann die Basistransformation mit der Division mit Rest kombinieren: Prof Dr Dietmar Seipel 351

623 Multiplikationsmethode Für den Adressraum die Hashfunktion mit: und eine reelle Zahl betrachten wir Dabei ist jeweils der gebrochene Anteil von Nach einem Satz von Vera Turán Sós sind diese gebrochenen Anteile gleichmäßig im Intervall verstreut, falls als irrationale Zahl gewählt wird Von allem Zahlen, führt der goldene Schnitt zur gleichmäßigsten Verteilung ( Fibonacci Hashing) Prof Dr Dietmar Seipel 352

Beispiel: Fibonacci Hashing für ist Permutation von Prof Dr Dietmar Seipel 353

63 Kollisionsstrategien 631 Überlaufhash Hier wird ein Überlaufbereich für alle Hausadressen eingerichtet Dieser wird ia durch eine lineare Liste realisiert Hausadressen Überlaufbereich Prof Dr Dietmar Seipel 354

Sei Hausadresse die Menge der gespeicherten Synonyme zur Ist, so ist kein Schlüssel in gespeichert Ansonsten ist genau ein Synonym in gespeichert, und alle anderen Synonyme,, im Überlaufbereich Aufwand für die Wörterbuchoperationen: Im schlechtesten Fall sind alle gespeicherten Schlüsselwerte Synonyme dh sie haben dieselbe Hausadresse Dann liegen Schlüssel im Überlaufbereich Prof Dr Dietmar Seipel 355

Speicherbelegung: Für alle Schlüssel, welche auf ihrer Hausadresse gespeichert sind, gilt Für alle Hausadressen, zu denen keine Schlüssel gespeichert sind, gilt Prof Dr Dietmar Seipel 356

zuerst in Suchen nach Berechne die Hausadresse Ist, so ist (erfolglose Suche) Ansonsten suche und dann im Überlaufbereich Einfügen von Ist, so speichere auf seiner Hausadresse Ansonsten suche zuerst in Falls gefunden wurde, so speichere nicht im Überlaufbereich (Falls gefunden wurde, so ist nichts zu tun) und dann im Überlaufbereich Prof Dr Dietmar Seipel 357

Löschen von Suche den Schlüssel Falls gefunden wird, dh, so entferne wie folgt: Ist auf seiner Hausadresse gespeichert, dh so ersetze, auf dh mit durch einen synonymen Schlüssel aus dem Überlaufbereich Das Löschen im Überlaufbereich erfordert keine Folgeaktionen Falls nicht gefunden wird, dh, so ist nichts zu tun Prof Dr Dietmar Seipel 358

Average Case für Suche: Wir setzen Gleichverteilung auf voraus, dh jeder Schlüssel Wahrscheinlichkeit die Hausadresse für alle hat mit Sei die Anzahl der Schlüssel aus im Überlaufbereich Dann sind Schlüssel auf ihrer Hausadresse gespeichert Für die erfolgreiche Suche ist der Aufwand Prof Dr Dietmar Seipel 359

und Man kann zeigen: Deshalb gilt: Prof Dr Dietmar Seipel 360

Für die erfolglose Suche ist der Aufwand Hier kann man zeigen Prof Dr Dietmar Seipel 361

632 Überlauf mit Verkettung Hier wird für jede Hausadresse ein spezieller Überlaufbereich eingerichtet, ia als lineare Liste Hausadressen Überlaufbereich Prof Dr Dietmar Seipel 362

Prinzip der Speicherung: Ist, so ist kein Schlüssel in gespeichert Ansonsten ist genau ein Synonym in gespeichert und alle anderen Synonyme, gespeichert, sind im Überlaufbereich zu Aufwand für die Wörterbuchoperationen: Prof Dr Dietmar Seipel 363

Average Case Suchaufwand: Gleichverteilung auf : Jede Adresse wird durch die Hashfunktion gleichen Belegungswahrscheinlichkeit belegt: mit der für alle Entscheidend ist der Erwartungswert für die Länge der Überlaufbereiche, dh die Größe der Synonymklassen Die Anzahlen,, sind identisch verteilte Zufallszahlen mit Prof Dr Dietmar Seipel 364

Für der Erwartungswert für die Größe der Synonymklassen gilt dann: Wir unterstellen nun noch gleiche Suchhäufigkeiten für alle für alle : erfolgreiche Suche, : erfolglose Suche Prof Dr Dietmar Seipel 365

Dann erhalten wir für erfolgreiche Suche: denn es muss die Hausadresse durchsucht werden und im Mittel dann noch der halbe Überlaufbereich Unter der Voraussetzung, dh, folgt: Prof Dr Dietmar Seipel 366

Für erfolglose Suche erhalten wir: denn es muss die komplette Synonymklasse (Hausadresse und Überlaufbereich) durchsucht werden Auch hier gilt für Fazit: Im Durchschnitt ist das Hashing mit Überlauf mit Verkettung für die Wörterbuchoperationen recht gut geeignet ( konstanter Aufwand ) Im schlechtesten Fall ist es dagegen viel schlechter als zu logarithmischer Höhe balancierte Bäume ( linearer Aufwand vs logarithmischer Aufwand ) Prof Dr Dietmar Seipel 367

633 Offener Hash (Open Adressing) Für jeden Schlüsselwert wird eine Permutation der Menge aller Hausadressen angegeben Ein einzufügender Schlüsselwert abgelegt wird unter der ersten freien Adresse Bezeichnung: ist die Hausadresse von heißen Ausweichadressen Prof Dr Dietmar Seipel 368

AUTO BAUM DOSE B Z OPEN A ALLE Lineares Suchen (Linear Probing) Sei : Beispiel: BALL DAMM HASH Prof Dr Dietmar Seipel 369

A B C D E F G H O ALLE BALL AUTO BAUM DAMM DOSE HASH OPEN Einfügereihenfolge: ALLE, BALL, AUTO, HASH, BAUM, DAMM, DOSE, OPEN nächster einzufügender Schlüsel: ABER Prof Dr Dietmar Seipel 370

Primäres Clustering Lineares Sondieren ist zwar einfach, es gibt aber auch Nachteile: Lange, schon besetzte Teile, haben durch die lineare Sondierungsfolge eine größere Tendenz zu wachsen als kurz besetzte Außerdem werden die Lücken zwischen längeren Teilstücken geschlossen, so daß noch größere Teilstücke entstehen (to coalesce) Dieses Ereignis der primären Häufung (primary clustering), verschlechtert die Effizienz sehr stark, wenn der Belegungsfaktor gegen geht Nach kontinuierlicher Belegung eines Teilraumes des Adressraumes müssen beim Einfügen mit der Ausweichadresse auch die Ausweichadressen,, erfolglos aufgesucht werden Prof Dr Dietmar Seipel 371

Average Case Suchaufwand ( geeignet) für für Prof Dr Dietmar Seipel 372

Doppel Hash (Double Hashing) Der Nachteil des primären Clustering kann vermieden werden, wenn man die Inkremente in der Folge Ausweichadressen vom Schlüssel abhängig macht Dazu benutzt man eine zweite Hashfunktion der Folge der welche Inkrementfunktion genannt wird Die Permutation der Ausweichadressen für ist dann mit für Prof Dr Dietmar Seipel 373

Sei ZB der größte gemeinsame Teiler zweier natürlicher Zahlen Lemma: ist eine Permutation von (dh sind teilerfremd) und Es gilt gdw ein Vielfaches von ist Prof Dr Dietmar Seipel 374

Beweis: Seien : Falls, so gilt: Also ist Falls in diesem Fall eine Permutation von, so gilt für :, aber Also ist in diesem Fall keine Permutation von Prof Dr Dietmar Seipel 375

Beim Doppel Hashing fordert man deshalb für alle : Die Doppel Hash Verfahren erwiesen sich in der Praxis als ausgezeichnete Verfahren Bei allen offenen Hashverfahren hängt die Suchzeit von der Reihenfolge des Ladens der Schlüsselwerte ab genau wie bei Suchbäumen auch Prof Dr Dietmar Seipel 376

Beispiel: 1 Sei eine Primzahl Dann ist dh kann (fast) beliebig gewählt werden, für alle, 2 Sei,, eine Zweierpotenz Dann gilt ungerade, dh kann gewählt werden 3 Seien und Primzahl Zwillinge (zb, ) Dann kann man wählen: Es gilt dann für alle Prof Dr Dietmar Seipel 377