Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Eine dynamische Menge, die diese Operationen unterstützt,
Der k-d-Baum Richard Göbel.
Das LCA – Problem in Suffixbäumen
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Synonyme: Stapel, Keller, LIFO-Liste usw.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Effizienz: Indexstrukturen
Baumstrukturen Richard Göbel.
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Kap. 6.2 Binäre B-Bäume Ullmann: (2, 3) - Bäume
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Splay Trees Von Projdakov Benjamin.
Einführung in die Programmierung
Effiziente Algorithmen
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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.
Graphen und Bäume.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
7 Bäume = „verzweigte Folgen“ Z.B. Stammbaum, patriarchalisch: Abraham
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Binärbäume.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Einfache Bäume Übung 13 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
 Präsentation transkript:

Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren

Mengen von Zeichenketten 2

Danksagung Die nachfolgenden Präsentationen wurden mit einigen Änderungen übernommen aus: „Algorithmen und Datenstrukturen“ gehalten von Sven Groppe an der UzL 3

Idee: Ausnutzung von gemeinsamen Präfixen ao p r g a n i s m ep l e ape apple organ organism 4

Trie Repräsentation von Mengen von Zeichenketten Name stammt nach Edward Fredkin von reTRIEval –Anwendungen von Tries finden sich im Bereich des Information Retrieval Informationsrückgewinnung aus bestehenden komplexen Daten (Beispiel Internet-Suchmaschine) –auch Radix-Baum oder Suffix-Baum genannt Relativ kompakte Speicherung von Daten insbesondere mit gemeinsamen Präfixen Edward Fredkin, Trie Memory, Communications of the ACM 3 (9), S. 490–499,

Trie Voraussetzung –Daten darstellbar als Folge von Elementen aus einem (endlichen) Alphabet Beispiele –Zeichenkette „Otto“ besteht aus Zeichen ‚O‘, ‚t‘, ‚t‘ und ‚o‘ (Alphabet ist alle Zeichen) –Zahl 7 ist darstellbar als Folge von Bits 111 (Alphabet ist {0, 1}) –Unter den Elementen aus dem Alphabet besteht eine Ordnung 6

Trie - Definition Sei  das Alphabet der zu speichernden Wörter inklusive für leeres Zeichen Dann ist ein Trie ein Baum –Jeder Knoten hat 0 bis maximal |  | Kinder –Jede Kante besitzt einen Bezeichner in  –Die Kanten zu den Kinder eines Knotens haben unterschiedliche Bezeichner d.h. es gibt keine Kanten eines Knotens mit demselben Bezeichner in der Regel werden die Kanten sortiert dargestellt und gespeichert –steht nur über einen Blattknoten und auch nur wenn der Elternknoten des Blattknotens weitere Kindsknoten besitzt –Der Wert eines Blattknotens ergibt sich aus der Konkatenation der Kantenbezeichner von der Wurzel zum Blattknoten Anstatt wird manchmal mit einem Terminierungssymbol am Ende eines jeden Wortes oder mit speziellen Auszeichnungen von Knoten gearbeitet 7

Trie – Variante mit Terminatorsymbol ao p r g a n i s m ep l e 8

Trie – Variante mit ausgezeichneten Knoten ao p r g a n i s m ep l e 9

Trie – Beispiel mit Bits als Alphabet

Suche in Tries 11

Beispiel: Suche nach ape ao p r g a n i s m ep l e ape apple organ organism a p e Gefunden! (Blattknoten erreicht und Ende des zu suchendes Wortes erreicht) a p e 12

Beispiel: Suche nach organ ao p r g a n i s m ep l e ape apple organ organism o r g a n Gefunden! 13

Beispiel: Suche nach apricot ao p r g a n i s m ep l e ape apple organ organism a p r i c o t Nicht Gefunden! (Keine Kante mit ‚r‘) 14

Beispiel: Suche nach org ao p r g a n i s m ep l e ape apple organ organism o r g 15

Einfügen in Tries 16

r i Beispiel: Einfügen von apricot ao p r g a n i s m ep l e ape apple organ organism a p r i c o t c o t 17

Beispiel: Einfügen von org ao p r g a n i s m ep l e ape apple organ organism o r g 18

Beispiel: Einfügen von ape-man ao p r g a n i s m ep l e ape apple organ organism a p e – m a n – m a m ape-man 19

Löschen in Tries 20

Löschen von ape ao p r g a n i s m ep l e ape apple organ organism 21

r g a n i s m o Löschen von organism a p ep l e ape apple organ organism 22

Implementationsmöglichkeiten I.Speicherung in einem Feld (ähnlich zu vollständigen Binärbäumen, jedoch als |  |-ärer Baum, Kantenbeschriftung als Knotenwert) –Vorteile Direkte Adressierung der Kante mit gegebener Beschriftung (Falls Zeichen k-tes Zeichen im Alphabet ist, so betrachte k-tes Kind) –Damit O(1) pro Knoten für Suche, Einfügen bzw. Löschen –Nachteil Großer Platzverbrauch O(|  | t ) mit t Tiefe des Tries II.Speicherung als Zeigerstruktur (n sei Knotenanzahl im Trie) a)Kinder in Liste Vorteile: Geringer Platzbedarf O(n); Einfügen und Entfernen in O(1) pro Knoten Nachteil: Suchen in O(|  |) pro Knoten b)Kinder in Feld mit Größe der Kinderanzahl Suchen in O(log |  |) pro Knoten (binäre Suche unter den Kindern) Vorteil: Geringster Platzbedarf O(n) Nachteile: Einfügen und Entfernen in O(|  |) pro Knoten c)Kinder in Feld mit Größe |  | Vorteile: Suchen, Einfügen und Entfernen in O(1) pro Knoten Nachteil: Platzbedarf von O(n∙|  |) 23

Komplexität der Basisoperationen (Suchen, Einfügen, Löschen) Alle Basisoperationen hängen ab –von der Tiefe t des Tries t ist gleich der (maximalen) Länge der eingefügten Wörter –sowie der Kosten f(|  |) pro Knoten für diese Operation Abhängig von Speicherstruktur des Tries, siehe vorherige Folie O(t∙f( |  |)) Bei geeigneter Implementation oder kleinem |  |: O(t) 24

Patricia Tries In Tries haben viele Knoten nur 1 Kind und es bilden sich oft lange “Ketten” mit solchen Knoten Idee: Diese lange “Ketten” zusammenfassen –Konsequenz: Kanten sind nicht nur mit einem Zeichen, sondern mit Teilwörtern beschriftet Donald R. Morrison, PATRICIA - Practical Algorithm to Retrieve Information Coded in Alphanumeric, Journal of the ACM, 15(4): , October

Trie: Patricia Trie: ao p r g a n i s m ep l e ape apple organ organism aporgan ismeple ape apple organorganism Bedingungen: Ausgehende Kanten eines Knotens starten niemals mit demselben Zeichen! Knoten haben 0 oder 2 bis |  | viele Kinder, niemals haben Knoten 1 Kind! 26

Trie (binär):Patricia Trie:

Konsequenzen für die Basisoperationen Suchen –Anstatt Vergleich von Zeichen nun Vergleich von Teilzeichenketten, sonst keine wesentliche Änderung gegenüber Suchen in Tries Einfügen –Neuer Sonderfall: Aufteilen eines Knotens, „falls Bezeichner der eingehenden Kante (echte) Teilzeichenkette des einzufügenden Wortes ist“ Löschen –Neuer Sonderfall: Nach Löschen überprüfen, ob Knoten vereinigt werden können 28

Beispiel Suchen nach ape aporgan ismeple ape apple organorganism a p e 29

Sonderfall beim Einfügen von organization bzw. org aporgan ismeple ape apple organorganism aporgan ieple ape apple organ organismorganization smzation organism aporgan ismeple ape apple organ an aporg ism eple ape apple organorganism org 30

Beispiel für neuen Sonderfall beim Löschen von apple aporgan ismeple ape apple organorganism aporgan isme ape organorganism apeorgan ism ape organorganism Zwischenschritt: 31

Komplexität 32

Zusammenfassung Trie –n-äres Alphabet Speichern von Zeichenketten –binäres Alphabet Speichern von z.B. Zahlen Patricia Trie –kompaktere Darstellung –n-äres Alphabet –binäres Alphabet 33