Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )
|
|
- Frank Kästner
- vor 6 Jahren
- Abrufe
Transkript
1 Kapitel 4 Streuen Wir behandeln nun Ipleentationen ungeordneter Wörterbücher, in denen die Schlüssel ohne Beachtung ihrer Sortierreihenfolge gespeichert werden dürfen, verlangen aber, dass es sich bei den Schlüsseln u Zahlen handelt. Dies ist keine starke Voraussetzung, weil sich die Eleente anderer Schlüsseluniversen als Zahlen codieren lassen. Bezeichnungen: (Schlüssel-) Universu U N 0 Schlüsselenge K U, K = n Hashtabelle H[0,..., ] (Array von Zeigern auf Dateneleente) Durch eine Hashfunktion h : U {0,..., } wird jede zulässigen Schlüssel k U seine Speicherstelle H[h(k)] in der Hashtabelle H zugewiesen. I Idealfall gilt für die Menge K U der vorkoenden Schlüssel typisch in JAVA: Speicheradresse Object.hashCode hash (engl.): streuen k k 2 K = h(k ) h(k 2 ) (h K injektiv) weil Einfügen, Suchen und Löschen dann jeweils in Θ() realisiert werden können. 4. Beispiel (Hashfunktionen). h(k) = k od für Prizahl (Divisions- oder Kongruenzethode) 60
2 Algorithen und Datenstrukturen (WS 2008/09) 6 2. h(k) = (kα kα ) z.b. für α = φ = 5 0, 6803 goldener 2 Schnitt (Multiplikationsethode) Die n+ Intervalle nach Einfügen von,..., n haben nur 3 verschiedene Gröÿen; bei α = φ a ähnlichsten. 4. Kollisionen 4. I Allgeeinen ist allerdings h(k ) = h(k 2 ) für einige h, h 2 bezeichnen wir it Kollisionen, k, k 2 heiÿen Synonye. K. Dies p,n := P (keine Kollisionen) = 2... n+, falls Schlüssel durch h gleichäÿig gestreut werden, d.h. alle Positionen gleichwahrscheinlich sind. 4.2 Beispiel (Geburtstagsparadoxon) p 365,22 > 0.5 > p 365,23 Anschauliche Deutung: bei 23 oder ehr Personen ist die Wahrscheinlichkeit, dass zwei a gleichen Tag Geburtstag haben, gröÿer als die Wahrscheinlichkeit, dass alle an verschiedenen Tagen Geburtstag haben. Herleitung: p,n = n i=0 i Für welches n ist p,n /2? = n i= ( i ) n i= e i/ = e P n i= i = e (n 2)/ e (n 2)/ = 2 ( ) n 2 / = ln 2 ( ) n = ln 2 2 n(n ) 2 n 2(ln 2) ( für = 365)
3 Algorithen und Datenstrukturen (WS 2008/09) 62 Erwartete Anzahl Kollisionen Sei { falls h(ki ) = h(k X ij = j ) (Kollision von k i, k j ) 0 sonst Bei gleichäÿiger Streuung ist E(X ij ) = / für i j. ( ) E(X) = E X ij = E(X ij ) = / = i<j i<j i<j I Beispiel war = 365, soit gilt hier { < für n < 27 E(X) = für n 27 I Allgeeinen gilt also etwa bei n 2. E(X) n(n ) 2, 4.3 Def inition (Belegungsfaktor) Wir denieren den Belegungsfaktor (load factor) als β = n. ( ) n / 2 entscheidend für Nutzen? Erwartete Anzahl leerer Felder? Eleent k K steht nicht an Position i {0,..., } it Wahrscheinlichkeit =. Die Wahrscheinlichkeit, dass Position i nicht belegt ist, ist dait [ ] β P (i / {h(k ),..., h(k n )}) = ( )n = ( ) e β }{{} e / { 0 H[i] belegt = E(X i ) für X i = H[i] frei E(X) = E( X i ) = E(X i ) = e β = e β. Die erwartete Anzahl belegter Einträge ist e β = ( e β ). β = /2 : e / Belegung 39% β = : e 0.63 Belegung 63%
4 Algorithen und Datenstrukturen (WS 2008/09) Kollisionsbehandlung 4.2. Verkettung Idee Die Hashtabelle wird als Array von Zeigern auf Listen ipleentiert, wobei die Listen alle Schlüssel it gleiche Hashfunktionswert enthalten. 4.4 Beispiel (h(k) = k od p) 0 p H : 4.5 Def inition (Sondieren) Wenn die Hashtabelle über Verkettung realisiert wird, nden bei find eventuell ehrere Zugrie auf Zeiger statt (Sondieren). U die Anzahl der Sondierschritte zu analysieren, denieren wir A(, n) := ittlere Anzahl bei erfolgreicher Suche. A (, n) := ittlere Anzahl, falls Schlüssel nicht in der Hashtabelle ist. Wir gehen wieder davon aus, dass für das verwendete Modell P (h(k) = i) = k U, i {0,..., } gilt.
5 Algorithen und Datenstrukturen (WS 2008/09) 64 Die ittlere Länge der Listen ist gerade der Belegungsfaktor β = n [0, ). Also ist A (, n) = + β = + n. Zu A(, n): Die Suche nach k i ergibt genau die Sondierungen wie bei Einfügen von k i, wenn vorher k,..., k i eingefügt wurden. I Mittel ist dait A(, n) = n n i=0 A (, i) = n n i=0 ( + i ) = + n n i=0 i = + (n ) n = + β + β 2n Statistische Eigenschaften Sei β = (n = ). Dann sind 63% der Hashtabelle T besetzt, 37% sind frei (s.o.). Wie groÿ uss n i Mittel sein, dait alle Plätze in T belegt sind? Coupon Collector Proble Sei (k i ) i=,2,3,..., k i U die Folge in T einzufügender Schlüssel. Sei (i) die Anzahl belegter Plätze nach Einfügen von k,..., k i und sei i k := in{i (i) = k}, d.h. Einfügen von k ik belegt erstals den k-ten Platz in T. Index k Wir betrachten eine Zufallsvariable X it X k = X = i k i k k= X k Dann ist die gesuchte Zahl für n gerade E[X]. i : k k 2 k 3 k 4 k 5 k k (i) i i 2 i 3 i 4 i 5 i i X X 2 X 3 X 4 X 5 X X etwas unglücklich bei k für key Sei i k i < i k. Dann ist p k := E[X k ] = p k E[X] = P (i + = i k ) = k+ E[ X k] = = k= E[X k] = = H k ln k+
6 Algorithen und Datenstrukturen (WS 2008/09) 65 I Mittel sind also n = ln Einfügeoperationen notwendig, u alle Positionen in der Hashtabelle zu füllen. Dann ist β = ln = ln > Open Hashing Idee In jede Feld der Hashtabelle H wird nur ein Eleent gespeichert (daher β ). Füge Schlüssel k ein: h(k ) = i, H[i] = k. Füge Schlüssel k 2 ein (Kollision): h(k 2 ) = i, H[i] besetzt. Finde freien Platz in H. Wähle eine Folge (d i ) i=,2,..., d i Z und teste H[(h(k) + d i ) od ], i =, 2, 3,... Für die Folge (d i ) i gibt es verschiedene Wahlen: lineares Sondieren: d i = i quadratisches Sondieren: d i = i 2 double Hashing: d i = i h (k), wobei h : U {,..., } eine zweite Hashfunktion ist it h (k) 0 k U. Hier sollte pri sein! Waru? 4.6 Proble Einfügen und Suchen ist dait klar, Löschen ist aber ein Proble. Index h? bei 4.7 Beispiel Sei h(k) = h(k ) = i und füge k, k ein: H : k k i i + Lösche dann k. Anschlieÿend versagt die Suche nach k! Lösung: arkiere gelöschte Schlüssel als gelöscht
7 Algorithen und Datenstrukturen (WS 2008/09) 66 bei Suche werden sie behandelt wie belegte Felder bei Einfügen wie freie Felder ungünstig, wenn oft Eleente gelöscht werden, da die Suche verteuert. 4.8 Proble Clusterbildung 4.9 Beispiel (lineares Sondieren) H : i i + Nächster einzufügender Schlüssel: k U P (h(k) = i + ) = P (h(k) = i) = 5 } Cluster wachsen tendentiell Analyse lineares Sondieren double Hashing A ( + ) A ln( 2 β β A ( + ) A 2 ( β) 2 β β ) Beweis. lineares Sondieren: schwer, s. Schöning S Referenz double Hashing: (idealisierende) Annahe: Sondierungen h (k), h 2 (k),... zur erfolglosen Suche von k it P (H[h i (k)] ist frei) = n = β E[Anzahl Sondierungen bis freies Feld gefunden] = β
8 Algorithen und Datenstrukturen (WS 2008/09) 67 Also A (n, ) = β. A(n, ) = n n i=0 A (, i) = n n i=0 = i n = β ( n+ + + ) = β (H H n ) β (ln ln( n)) = β ln n = β ln β n i=0 i 4.3 Kollisionsvereidung 4.3. Streufunktionen Ziel gleichäÿige Streuung durch Hashfunktion, wie in der Berechnung der Kollisionswahrscheinlichkeiten unterstellt. Proble Wir wissen nicht, welche Schlüssel K U gespeichert werden. Schlistenfalls ist h(k ) = H(k 2 ) k, k 2 K Sondieren bei Suche entspricht linearer Suche O(n). Schlüsselengen K U führen zu sehr verschiedenen Laufzeiten. Versuche daher, die Wahrscheinlichkeit für schlechtes Laufzeitverhalten besser auf diese zu verteilen. Idee Wähle aus einer Menge von Hashfunktionen zufällig eine aus. H {h : U {0,..., }} Universelles Streuen 4.0 Def inition (universelles Streuen) Eine Failie von Streufunktionen H {h : U {0,..., }} heiÿt universell, falls H {h H : h(k ) = h(k 2 )} k, k 2 U.
9 Algorithen und Datenstrukturen (WS 2008/09) 68 Bei zufälliger Wahl h H sind wir dann berechtigt, P (h(k ) = h(k 2 )) = anzunehen. 4. Satz Ist H universell, dann ist für k {k,..., k n } = K U bei zufällig gewählte h H die erwartete Anzahl Kollisionen gerade n = β. Beweis. Sei C ij eine Zufallsvariable it { h(ki ) = h(k C ij = j ) 0 sonst Da H universell ist, ist P (C ij = ) = E k j K\{k i } C ij = k j K\{k i }, und es folgt für k = k i E(C ij ) K = β. Die erwartete Anzahl Kollisionen entspricht dann also wie erhot de Belegungsfaktor β. 4.2 Satz Die Failie von Streufunktionen H p = {(ak + b od p) od : 0 < a < p, 0 b < p}, p pri, p > ist universell. Beweis. Sei h a,b H p it h a,b (k) = (ak + b od p) od. Betrachte zunächst für k, k {0,..., p } r = (ak + b) s = (ak + b) od p od p Dann ist r s }{{} a (k k ) od p, also r s falls k k, weil p pri ist. 0 Es gibt also zunächst keine Kollisionen der Zahlen {0,..., p }, sondern diese werden nur perutiert.
10 Algorithen und Datenstrukturen (WS 2008/09) 69 Auÿerde liefert jede der (p ) p Wahlen für (a, b) ein anderes Paar r s, denn gegeben r s können wir nach a = (r s) (k k ) }{{} Inverses bzgl. Z p b = (r ak) od p od p auösen. Weil es aber auch nur p(p ) Paare (r, s) it r s gibt, liegt eine Bijektion vor. Werden a, b zufällig gewählt, dann erhalten wir also auch jedes Paar r s {0,..., p } it gleicher Wahrscheinlichkeit. Die Kollisionswahrscheinlichkeit von k k U entspricht dait der Wahrscheinlichkeit, dass r s od für zufällig gewählte r s {0,..., p }. Für festes r ist die Anzahl der s it r s und r s od höchstens p p + = p und wegen der zufälligen Wahl aus den p öglichen s r ist die Kollisionswahrscheinlichkeit für k k U höchstens. Also ist H p universell. Wir wollen nun noch eine andere universelle Failie von Streufunktionen betrachten. Annahe U besteht aus Bitstrings fester Länge, ist pri. Zerlege K U in Blöcke der Länge log k : k r k k 0 0 k i <, i = 0,..., r Wir denieren die Menge von Hashfunktionen H B = {h a : U {0,..., }} durch ( r ) h a (k) = a i k i od i=0 wobei a = (a r,..., a 0 ) {0,..., } r+. Dait gilt H B = r+.
11 Algorithen und Datenstrukturen (WS 2008/09) Satz H B ist universell. Beweis. Seien k k U, dann k i k i für ein i {0,..., r}. OBdA. sei i = 0. Für ein h a H B gilt dann h a (k) = h a (k ) r a i k i i=0 r a i k i i=0 a 0 (k 0 k 0) od r a i (k i k i ) i= a 0 (k 0 k 0) }{{} ult. Inv. in (Z,+, ) od r a i (k i k i ) i= od Für alle Wahlen von (a r,..., a ) {0,..., } r a 0 {0,..., } it h a (k) = h a (k ). Also gilt existiert genau ein P (Kollision k k ) = {a : h a(k) = h a (k )} H B = r r+ =. 4.4 Ausblick viele andere Techniken zur Kollisionsbehandlung, z.b. Cuckoo-Hashing. viele andere Techniken zur Konstruktion von Hashfunktionen, z.b. perfektes Hashing (für statische Schlüsselengen). viele andere Anwendungen, z.b. Bloo-Filter.. s. Übung
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe
MehrSuchen in Listen und Hashtabellen
Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)
MehrVorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
Mehr6-1 A. Schwill Grundlagen der Programmierung II SS 2005
6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
Mehr! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.
Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher
MehrEinführung in die Informatik Hashtables
Einührung in die Inormatik Hashtables Hashtabellen Wolram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben bisher einige der typischen Datenstrukturen zum Speichern von Inormationen kennen gelernt Arrays
MehrKapitel 9. Hashverfahren. 9.1 Einführung
Kapitel 9 Hashverfahren 9.1 Einführung Uns sind bereits Verfahren bekannt, mit denen Datensätze mit einem eindeutigen Schlüssel gespeichert werden (z.b. B*-Bäume). Statt bei der Suche nach einem Schlüssel
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrIn vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.
Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.
MehrRandomisierte Algorithmen
Randomisierte Algorithmen Kapitel 2 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
Mehr8. Quadratische Reste. Reziprozitätsgesetz
O Forster: Prizahlen 8 Quadratische Reste Rezirozitätsgesetz 81 Definition Sei eine natürliche Zahl 2 Eine ganze Zahl a heißt uadratischer Rest odulo (Abkürzung QR, falls die Kongruenz x 2 a od eine Lösung
MehrFaktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)
Dass das Problem, die Primzahlen von den zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren zu zerlegen zu den wichtigsten und nützlichsten der ganzen Arithmetik gehört und den Fleiss
MehrAVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
MehrDefinition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +
Definition Gnutella Ein -to--netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server- Aufgaben durchführt. Beobachtung: Das Internet ist (eigentlich
MehrKap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrLiteratur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)
Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,
Mehr9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen
9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel
MehrMitschrift Vorlesung Einführung in die Kryptographie vom 18. Januar 2011
Mitschrift Vorlesung Einführung in die Kryptographie vom 18. Januar 2011 Dominic Scheurer 6. Februar 2012 Inhaltsverzeichnis 30 Digitale Signaturen (cont'd) - One-Time-Signaturen (OTS) 1 31 Public-Key-Verschlüsselung
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Mehr3. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrDatenstrukturen in Java
Datenstrukturen in Java SEP 350 Datenstrukturen Datenstrukturen ermöglichen Verwaltung von / Zugriff auf Daten (hier: Objekte) Datenstrukturen unterscheiden sich duch Funktionalität Implementierung modulares
Mehr8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen
Stefan Lucks 8: Zufallsorakel 139 Kryptogr. Hashfunkt. (WS 08/09) 8: Zufallsorakel Unser Problem: Exakte Eigenschaften von effizienten Hashfunktionen nur schwer erfassbar (z.b. MD5, Tiger, RipeMD, SHA-1,...)
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
Mehr1 Ordnung muß sein. 1.1 Angeordnete Körper. 1.2 Folgerungen aus den Anordnungsaxiomen. ( c) (b a) > 0. Somit a c b c > 0.
1 Ordnung uß sein 1.1 Angeordnete Körper Wir nehen einal an, daß es in eine Körper Eleente gibt, die wir positiv nennen. Welche Eigenschaften sollen diese haben? O1) Wenn x und y positiv sind, dann auch
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
MehrErinnerung/Zusammenfassung zu Abbildungsmatrizen
Erinnerung/Zusammenfassung zu Abbildungsmatrizen Thomas Coutandin (cthomas@student.ethz.ch) 7. November 2 Abbildungsmatrizen Im Folgenden betrachten wir stets endlich dimensionale K-Vektorräume (K irgend
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrDigitale Magazine ohne eigenen Speicher
Stefan Lucks Digitale Magazine ohne eigenen Speicher 1 Digitale Magazine ohne eigenen Speicher Wie man die Integrität fremdgespeicherter Archivalien sicherstellen kann Stefan Lucks Professur für Mediensicherheit
MehrWS 2008/09. Diskrete Strukturen
WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809
Mehr1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
MehrKapitel 8: Physischer Datenbankentwurf
8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen
MehrUrbild Angriff auf Inkrementelle Hashfunktionen
Urbild Angriff auf Inkrementelle Hashfunktionen AdHash Konstruktion: (Bellare, Micciancio 1997) Hashe Nachricht x = (x 1,..., x k ) als H(x) = k i=1 h(i, x i) mod M. Inkrementell: Block x i kann leicht
Mehr1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes
1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon
MehrName:... Vorname:... Matrikel-Nr.:... Unterschrift:...
Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrBeispiel vor dem Beweis:
Beispiel vor dem Beweis: Beispiel vor dem Beweis: A = ¼3 6 2 3 11 2½ Beispiel vor dem Beweis: 2½ 2½ ¼3 6 A = 2 3 11 311 E 12 A = 3 6 Beispiel vor dem Beweis: 2½ 2½ ¼3 6 A = 2 3 11 311 E 12 A = 3 6 3 11
MehrPageRank-Algorithmus
Proseminar Algorithms and Data Structures Gliederung Gliederung 1 Einführung 2 PageRank 3 Eziente Berechnung 4 Zusammenfassung Motivation Motivation Wir wollen eine Suchmaschine bauen, die das Web durchsucht.
MehrAquaZIS. Zeitreihenkorrektur
AquaZIS Zeitreihenkorrektur Aachen, Juli 2013 aqua_plan Ingenieurgesellschaft für Problemlösungen in Hydrologie und Umweltschutz mbh Amyastr. 126, 52066 Aachen Tel.: 0241 40070-0, Fax: 0241 40070-99 Geschäftsführer:
MehrLösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
MehrTheoretische Informatik SS 04 Übung 1
Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die
Mehr9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83
9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x
MehrDer Zwei-Quadrate-Satz von Fermat
Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat
Mehr1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrRSA Full Domain Hash (RSA-FDH) Signaturen
RSA Full Domain Hash (RSA-FDH) Signaturen Signatur RSA-FDH Sei H : {0, 1} Z N ein Random-Oracle. 1 Gen: (N, e, d) GenRSA(1 n ) mit pk = (N, e) und sk = (N, d). 2 Sign: Für eine Nachricht m {0, 1} berechne
MehrDATENSTRUKTUREN UND ZAHLENSYSTEME
DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden
MehrProgrammieren in Haskell
Programmieren in Haskell Felder (Arrays) Programmieren in Haskell 1 Was wir heute machen Motivationsbeispiel Die Typklasse Ix Felder in Haskell Funktionstabellierung Binäre Suche Pascalsches Dreieck Ein
Mehr2. Universelle Algebra
2. Universelle Algebra Die Theorie der universellen Algebra verallgemeinert die Theorien der klassischen Algebren. Obwohl ursprünglich nur eine Sorte betrachtet wurde, werden wir hier gleich den mehrsortigen
MehrE-Mails zuordnen. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de
E-Mails zuordnen Copyright 2015 cobra computer s brainware GmbH cobra Adress PLUS, cobra CRM PLUS, cobra CRM PRO und cobra CRM BI sind eingetragene Warenzeichen der cobra computer s brainware GmbH. Andere
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrDateiorganisation und Zugriffsstrukturen
Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet
MehrIT-Sicherheit - Sicherheit vernetzter Systeme -
IT-Sicherheit - Sicherheit vernetzter Systeme - Kapitel 7: Kryptographische Hash-Funktionen Wolfgang Hommel, Helmut Reiser, LRZ, WS 13/14 IT-Sicherheit 1 Inhalt Definition: Kryptographische Hash-Verfahren
MehrSuchen und Sortieren
(Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten
MehrAlignment-Verfahren zum Vergleich biologischer Sequenzen
zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen
MehrLeitfaden Lineare Algebra: Determinanten
Leitfaden Lineare Algebra: Determinanten Die symmetrische Gruppe S n. Eine Permutation σ der Menge S ist eine bijektive Abbildung σ : S S. Ist S eine endliche Menge, so reicht es zu verlangen, dass σ injektiv
Mehr- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:
6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)
MehrAlgorithmen. Consistent Hashing Bloom Filter MapReduce. Distributed Hash Tables. Einführung 1
Algorithmen Consistent Hashing Bloom Filter MapReduce Distributed Hash Tables Einführung 1 Consistent Hashing Problem: Wie finde ich den Speicherort für ein Objekt in einem verteilten System mit n Knoten?
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
Mehr4 Algorithmen und Datenstrukturen
4 Algorithmen und Datenstrukturen Algorithmen sind Verfahren zur schrittweisen Lösung von Problemen. Sie können abstrakt, d.h. unabhängig von konkreten Rechnern oder Programmiersprachen, beschrieben werden.
MehrBetriebsarten für Blockchiffren
Betriebsarten für Blockchiffren Prof. Dr. Rüdiger Weis TFH Berlin Sommersemester 2008 Betriebsarten für Blockchiffren Was ist eine Betriebsart (engl. Mode of Operation )? Blockchiffre wird genutzt, um
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
MehrABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK
ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
MehrIn beiden Fällen auf Datenauthentizität und -integrität extra achten.
Stromchiffren Verschlüsseln eines Stroms von Daten m i (Bits/Bytes) mithilfe eines Schlüsselstroms k i in die Chiffretexte c i. Idee: Im One-Time Pad den zufälligen Schlüssel durch eine pseudo-zufällige
MehrRSA Full Domain Hash (RSA-FDH) Signaturen
RSA Full Domain Hash (RSA-FDH) Signaturen Signatur RSA-FDH Sei H : {0, 1} Z N ein Random-Oracle. 1 Gen: (N, e, d) GenRSA(1 n ) mit pk = (N, e) und sk = (N, d). 2 Sign: Für eine Nachricht m {0, 1} berechne
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
MehrKademlia A Peer-to-peer Information System based on the XOR Metric
Kademlia A Peer-to-peer Information System based on the XOR Metric Martynas Ausra 12.5.2007 Zusammenfassung Das Kademlia-Protokoll wurde im Jahr 2002 an New York University von Petar Maymounkov und David
MehrCoupon Collector's-Problem (Sammelbilderproblem) Name: Walter Wolf Matrikelnr.: 533440 Dozent: Dr. W. Kössler
Coupon Collector's-Problem (Sammelbilderproblem) Name: Walter Wolf Matrikelnr.: 533440 Dozent: Dr. W. Kössler Problemstellung Als Sammelbilderproblem bezeichnet man die Frage, wie viele Produkte bzw. Bilder
MehrPräfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel
Präfx Trie zur Stringverarbeitung Cheng Ying Sabine Laubichler Vasker Pokhrel Übersicht: Einführung Eigenschaften von Tries Verwendung von Tries Allgemeine Defnition von Patricia Tries Eigenschaften von
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
MehrCodes und Codegitter. Katharina Distler. 27. April 2015
Codes und Codegitter Katharina Distler 7. April 015 Inhaltsverzeichnis 1 Codes 4 Codegitter 14 Einleitung Die folgende Seminararbeit behandelt das Konzept von Codes und Codegittern. Da sie bei der Informationsübertragung
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrSoftware ubiquitärer Systeme
Software ubiquitärer Systeme 13. Übung Constantin Timm Arbeitsgruppe Entwurfsautomatisierung für Eingebettete Systeme Lehrstuhl für Informatik 12 TU Dortmund constantin.timm@cs.tu-dortmund.de http://ls12-www.cs.tu-dortmund.de/staff/timm/
MehrBäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.
Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens
MehrKryptographie und Komplexität
Kryptographie und Komplexität Einheit 6 Kryptographie und Sicherheit 1. Kryptographische Hashfunktionen 2. Passwörter und Identifikation 3. Digitale Signaturen 4. Secret Sharing 5. Anwendungen und Ausblick
MehrTeil II. Nichtlineare Optimierung
Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene
MehrAllgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16
PHOENIX Tool WinUser2PHOENIXUser Version: 3.5.2 Stand: 2013-04-16 Allgemein Das Tool ermöglicht es, Benutzerinformationen aus dem Windows Active Directory (AD) in den PHOENIX zu importieren. Dabei können
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrDidaktik der Algebra Jürgen Roth Didaktik der Algebra 4.1
Didaktik der Algebra 4.1 Didaktik der Algebra Didaktik der Algebra 4.2 Inhalte Didaktik der Algebra 1 Ziele und Inhalte 2 Terme 3 Funktionen 4 Gleichungen Didaktik der Algebra 4.3 Didaktik der Algebra
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrMathematik I Internationales Wirtschaftsingenieurwesen
Mathematik I Internationales Wirtschaftsingenieurwesen Integralrechnung 03.12.08 Das unbestimmte Integral/Stammfunktion Das bestimmte Integral/Flächenberechnung Integral als Umkehrung der Ableitung Idee:
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrModelle und Statistiken
Kapitel 4 Modelle und Statistiken In letzter Zeit werden vermehrt Parameter (Gradfolgen, Kernzahlfolgen, etc.) empirischer Graphen (Internet, WWW, Proteine, etc.) berechnet und diskutiert. Insbesondere
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
MehrLenstras Algorithmus für Faktorisierung
Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrOPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
MehrGraphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007
Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80
Mehr1 Visual Basic for Application mit Excel (VBA)
Informatikfreikurs WS 2008/2009 1 1 Visual Basic for Application mit Excel (VBA) 1.1 Mosaik Puzzle Das untenstehende Zahlenschema ist ein sogenanntes Mosaik Puzzle. Jede Zahl zeigt an, wie viele der (höchstens
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme Sei K ein Körper, a ij K für 1 i m, 1 j n. Weiters seien b 1,..., b m K. Dann heißt a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2... a m1
Mehr