R-Baum eine dynamische Index-Strukur für räumliche Suche

Größe: px
Ab Seite anzeigen:

Download "R-Baum eine dynamische Index-Strukur für räumliche Suche"

Transkript

1 Gabriele Wilke-Müller Klufternerstraße Friedrichshafen Matrikel-Nr. 01/ Support for Non-Standard Data Types in DBMSs WS 2003/2004 bei Prof. Dr. Marc H. Scholl Thema: R-Baum eine dynamische Index-Strukur für räumliche Suche Universität Konstanz, FB Informatik und Informationswissenschaft Friedrichshafen 10.März 2004

2 Inhaltsverzeichnis Abbildungsverzeichnis 1 Einleitung Aufbau und Eigenschaften von R-Bäumen Operationen auf R-Bäume Suchen Einfügen Löschen Updaten Splitten eines Knotens SplitNode Algorithmen für den Split Quadratic-Cost Algorithmus Linear-Cost Algorithmus Kosten für Seitenzugriffe beim R-Baum Der R + -Baum Opeartionen auf den R + -Baum Performance Sonstige Erweiterungen zum R-Baum Zusammenfassung Literaturverzeichnis - 2 -

3 Abbildungsverzeichnis Abbildung 1: Beispiel wie Rechtecke im R-Baum organisiert sind... 5 Abbildung 2: Der zu Abb. 1 dazugehörige R-Baum... 6 Abbildung 3: Suche in R-Bäumen... 8 Abbildung 4: Einfügen eines Datenpunktes auf der Seite ist Platz Abbildung 5: Einfügen eines Datenpunktes auf der Seite ist kein Platz Abbildung 6: Löschen eines Eintrages Abbildung 7: Varianten des Splittens eines Knotens Abbildung 8: Kosten für Seitenzugriffe Abbildung 9: R + -Baum

4 1 Einleitung Mehrdimensionale Daten sind in vielen Anwendungsgebieten, wie in der Molekularbiologie, der Kartographie und im Computer-Aided Design (CAD) von hoher Bedeutung. Deshalb sind die Anforderungen an Indexstrukturen, die auch mit mehrdimensionalen Daten arbeiten groß. Herkömmliche Indexstrukturen wie B-Bäume können lediglich eindimensionale Daten speichern und suchen, doch für räumliche Daten bedarf es Indexstrukturen, die auch mehrdimensionale Daten effizient verarbeiten können. Der R-Baum ist eine solche Indexstruktur, die vor allem für zwei-dimensionale Daten, wie CAD-Daten entwickelt wurde. In der folgenden Seminararbeit soll diese Indexstruktur erläutert, die einzelnen Operationen beschrieben und einige Erweiterungen betrachtet werden. Beim R-Baum handelt es sich um eine dynamische Indexstruktur, Daten können also jeder Zeit in einen bestehenden Baum eingefügt, verändert oder gelöscht werden. Im ersten Teil wird mit Hilfe eines Beispieles die Struktur eines R-Baumes vorgestellt. Im zweiten Teil werden die verschiedenen Operationen, wie das Einfügen, Löschen oder Verändern eines Datenobjektes in einem bestehen R-Baum beschrieben. Insbesondere werden an dieser Stelle verschiedene Splitalgorithmen, wie der Quadradric-Cost Algorithmus und der Linear-Cost Algorithmus näher beschrieben, die beim Überlaufen einer Datenseite angewandt werden können. Im folgenden Kapitel werden die Schwachpunkte des R-Baumes betrachtet und der R + -Baum, eine Erweiterung zum R-Baum eingeführt. Im letzten Punkt werden noch andere Erweiterungen, die auf dem R-Baum basieren und in unterschiedlichen Gebieten Anwendung finden, vorgestellt

5 2 Aufbau und Eigenschaften von R-Bäumen Der R-Baum ist eine hoch-balancierte Indexstruktur, die für mehrdimensionale Daten entwickelt wurde. Die Datenstruktur besteht aus Directory- und aus Datenseiten. Die Datenobjekte werden auf den Datenseiten gespeichert. Diese sind die Blattknoten des Baumes und speichern geclusterte Punktdaten oder aber auch n-dimensionale Datenobjekte, wie z. B. ein Detail einer CAD-Zeichnung. Die Directoryseiten ihrerseits sind die inneren Knoten und speichern die Directory-Einträge. Die räumlichen Daten, also die geclusterten Punktdaten bzw. die n- dimensionalen Datenobjekte werden mit Hilfe von minimal umgebende Rechtecke, auch Minimum Bounding Rectangles (MBRs) genannt, strukturiert. Es handelt sich dabei um Rechtecke, die das Datenobjekt minimal umspannen. Mit Hilfe der folgenden Abbildung soll der Aufbau des R-Baumes näher betrachtet werden. Die Rechtecke R1, R2 und R3 stellen die Directoryseiten dar. R4, R5 und R6 sind die Datenseiten, die auf der Directoryseite R1 liegen. R1 R5 R3 R11 R4 R6 R10 R2 R7 root R8 R9 Abbildung 1: Beispiel wie Rechtecke im R-Baum organisiert sind - 5 -

6 R8 ist ein Rechteck, das minimal um ein n-dimensionales Datenobjekt gezogen ist. R8 liegt auf der Directoryseite R2. root R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 Abbildung 2: Der zu Abb. 1 dazugehörige R-Baum Nach Antonin Gutmann, 1984 haben R-Bäume folgende Eigenschaften: 1. Alle Blätter haben zwischen m und M Indexeinträge. Wobei m M/2 gilt. Die minimale Anzahl m der Indexeinträge darf die Hälfte der Maximalen Anzahl M nicht überschreiten. 2. Für jeden Index-Eintrag (I, tuple-id) in einem Blatt ist I das kleinste umgebende Rechteck, das das n-dimensionale Datenobjekt beinhaltet. 3. Jeder Knoten, der kein Blattknoten ist, hat zwischen m und M Söhne. 4. Für jeden Eintrag (I, child-pointer) in einem Knoten, der kein Blattknoten ist, ist I das kleinste Rechteck, das die Rechtecke im Kindknoten beinhalten. 5. Die Wurzel hat mindestens zwei Söhne. 6. Alle Blätter erscheinen auf derselben Höhe. Es können wie beim B-Baum verschiedene Operationen ausgeführt werden. Das Suchen, Einfügen und Löschen eines Datenobjektes geschieht analog zum B-Baum. Das Splitten eines - 6 -

7 Knoten wird dann notwendig, wenn die maximale Anzahl an Indexeinträgen überschritten wird. Hierfür kommen dann verschiedene Split-Algorithmen, die in Kapitel 3.5 vorgestellt werden, zur Anwendung. 3 Operationen auf R-Bäume Im folgenden Kapitel werden auf die verschiedenen Operationen auf den R-Baum wie das Suchen, Löschen und Einfügen eines Datenobjektes eingegangen. 3.1 Suchen Die Suche in einem R-Baum ist ein rekursiver Vorgang. Der Baum wird von der Wurzel zu den Blättern abwärts, ähnlich wie beim B-Baum, durchsucht. Es wird immer ein Pfad durchlaufen. Ist das gesuchte Datenobjekt nicht in diesem Teilbaum, so wird der nächste Suchpfad durchgegangen. Die Pfadauswahl erfolgt willkürlich, weshalb eine gute Performance nicht garantiert werden kann. Da die Rechtecke sich überlappen können, müssen im schlimmsten Fall alle Pfade durchlaufen werden, bis das gesuchte Datenobjekt gefunden wird. Allerdings gibt es verschiedene Suchalgorithmen wie z. B. der Tiefensuche- Algorithmus von Roussopoulos, Kelley und Vincent oder die Prioritätensuche nach Hjaltason und Samet, die es ermöglichen irrelevante Regionen abzuschneiden. Diese machen es sich zu Nutze, dass die Indexstruktur Minimal Bounding Rectangles benutzt. Allerdings wird in dieser Seminararbeit nicht näher auf die oben genannten Algorithmen eingegangen - 7 -

8 Antonin Gutmann hat 1984 erstmals einen Suchalgorithmus für einen R-Baum vorgestellt. Und zwar ist ein R-Baum mit einer Wurzel T gegeben. Gesucht werden alle Indexeinträge, die das Suchrechteck S schneiden. Suchalgorithmus nach Gutmann S1 Suche in Teilbäumen Wenn T kein Blatt ist, prüfe jeden Eintrag darauf, ob dieser S überschneidet. überschneidenden Einträge setze die Suche in deren Söhnen fort. S2 Suche in Blattknoten Wenn T ein Blatt ist, prüfe alle Einträge darauf, ob sie S schneiden. Wenn ja, so ist dies der gesuchte Eintrag. R1 R5 R3 R11 root R4 R6 R10 R1 R2 R2 R7 root R7 R8 R9 R8 S R9 Abbildung 3: Suche in R-Bäumen In unserem Beispiel befindet sich das Suchrechteck S auf der Datenseite R8. S1 Suche in Teilbäumen

9 T, in unserem Fall die Wurzel (root) ist kein Blatt, also wird jeder Eintrag daraufhin geprüft, ob dieser S überschneidet. Wir entscheiden uns willkürlich als erstes den Pfad R1 zu verfolgen. Allerdings befindet sich das Suchrechteck S nicht R1, also wird die Suche den Söhnen nicht fortgesetzt und der nächste Pfad, R2 wird aufgerufen. Hier wird S gefunden, also wird die Suche in deren Söhnen fortgesetzt. Nun werden die Blätter durchsucht. In R8 wird der gesuchte Eintrag schließlich gefunden. 3.2 Einfügen Soll ein Datenpunkt oder ein Datenobjekt in einen bestehenden R-Baum eingefügt werden, so wird typischerweise folgendermaßen vorgegangen. Zuerst wird die beste Kindseite (ChooseLeaf) nach bestimmten räumlichen Kriterien gesucht. Dort wird der Datenpunkt eingefügt, wenn auf der Seite Platz ist, d. h wenn die maximale Anzahl M an Einträgen nicht überschritten wird. Ist kein Platz auf der Kindseite, so wird die Seite im Rahmen einer Überlaufbehandlung gesplittet (SplitNode). Auf den Split-Algorithmus wird in Kapitel 3.5 näher eingegangen. Bedingung ist, dass der tote Raum möglichst klein sein soll und die Überlappung minimal, damit die Performance nicht unnötig eingeschränkt wird. Der Vaterknoten muss dem neuen Objekt angepasst werden (AdjustTree) Es kann sein, dass bis zur Wurzel gesplittet werden muss. Wird die Wurzel durch Splitten erreicht, so wird eine neue - 9 -

10 Wurzel erstellt, deren Kinder die beiden resultierenden Knoten sind. R1 R5 R3 R11 R2 R7 R4 R6 R10 R8.i R9 R2 R7 root R2 R7 R8 i R9 R8.i R9 Abbildung 4: Einfügen eines Datenpunktes auf der Seite ist Platz In Abb. 3 wird das Einfügen eines Datenpunktes i demonstriert. Der Punkt liegt auf dem Verzeichnisrechteck R2. Es gibt zwei mögliche Datenseiten, wo der neue Punkt eingefügt werden kann. Nun kann der Punkt entweder in R7 oder in R9 eingefügt werden, vorausgesetzt, dass die maximale Anzahl M nicht überschritten wrid. In beiden Fällen wird das minimal umgebende Rechteck so vergrößert, dass der Punkt i ebenfalls innerhalb des Rechtecks liegt. Wird der Punkt in R7 eingefügt, so entsteht ein toter Raum. Das Rechteck muss ziemlich stark ausgedehnt werden, um den Punkt zu umschließen. Wird der Punkt in R9 eingefügt, so entsteht eine Überlappung mit R7. Das Rechteck selbst wird aber nur minimal vergrößert. Es entsteht kein toter Raum. In Abb. 4 gehen wir davon aus, dass der Datenpunkt i in R7 eingefügt wird. Dort ist allerdings kein Platz mehr, die Seite muss also gesplittet werden, worauf in Kapitel 3.5 näher eingegangen wird. Eine neue Seite 7-1 entsteht. Der

11 Vaterknoten R2 muss angepasst werden. So befinden sich nun R7, R7-1, R8 und R9 auf diesem Knoten R1 R5 R3 R11 R2 R7 R7-1 R4 R6 R10 R8.i R9 R2 R7 i root R8 R9 root R1 R2 R3 R4 R5 R6 R7 R7-1 R8 R9 R10 R11 Abbildung 5: Einfügen eines Datenpunktes - auf der Seite ist kein Platz 3.3 Löschen Antonin Gutmann stellt folgenden Algorithmus für das Löschen eines Eintrages vor. Das Blatt, das den zu löschenden Eintrag enthält, wird gesucht. (FindLeaf) 1 Der Eintrag wird aus dem Blatt gelöscht (DeleteRecord) 1 Diese Suche ist analog dem Suchen in Kapitel 3.1 Seite

12 Falls der Knoten nun zu wenige Einträge hat, d.h. wird die minimale Anzahl m unterschritten, so wird der Baum verdichtet (CondenseTree) Die Einträge, die aus dem Blattknoten entfernt wurden, werden wieder eingefügt. Sie werden so behandelt, wie im vorherigen Abschnitt 3.2 Einfügen beschrieben. Hat die Wurzel nur noch einen Sohn, so wird der Sohn die neue Wurzel. Wie in Abb. 5 dargestellt, soll ein Eintrag aus R9 gelöscht werden. Wird die minimale Anzahl m an Einträgen nach dem Löschen nicht unterschritten, so wird der Eintrag einfach aus R9 gelöscht und es passiert weiter nichts. Befinden sich nach dem Löschen allerdings zu wenig Einträge, so wird R9 als Ganzes gelöscht. Der Vaterknoten R2 wird angepasst, sodass sich nun nur noch R7 und R8 darunter befinden. R2 R7 R2 R7 root R1 R2 R3 R8 R9 R8 R4 R5 R6 R7 R8 R10 R11 Abbildung 6: Löschen eines Eintrages 3.4 Updaten Wird ein Datensatz aktualisiert und sein minimal umgebendes Rechteck verändert sich dadurch, so muss der Indexeintrag gelöscht, aktualisiert und wieder eingefügt werden

13 3.5 Splitten eines Knotens SplitNode Wie bereits in Kapitel 3.2 angesprochen, kann es durch das Einfügen eines Datenobjektes zum Überlaufen kommen. Das heißt, die maximale Anzahl M der Seite wird überschritten, sodass die Seite gesplittet werden muss. Soll ein neuer Eintrag in einen vollen Knoten erfolgen, so müssen die M+1 Einträge auf zwei Knoten aufgeteilt werden. Bei nachfolgenden Suchvorgängen sollten nicht beide Teilbäume durchsucht werden. Deshalb sollte darauf geachtet werden, dass es zu keinen Überlappungen kommt. Bei der Aufteilung der Knoten ist darauf zu achten, dass die Gesamtfläche der beiden Rechtecke möglichst klein ist. Der tote Raum soll minimiert werden. schlechter Split guter Splitt Abbildung 7: Varianten des Splittens eines Knotens Algorithmen für den Split Verschiedene Algorithmen wurden für das Splitten eines Knotens entwickelt. Die drei Algorithmen, der Exhaustive Algorithmus, der Quadratic-Cost Algorithmus und der Linear-Cost Algorithmus sollen in dieser Seminararbeit angesprochen werden, wobei der Schwerpunkt auf dem Quadratic-Cost Algorithmus liegt

14 Exhaustive Algorithmus Der Exhaustive Algorithmus ist der einfachste Algorithmus, allerdings sinkt die Performance je nach Anzahl der maximalen Einträge M pro Seite. Hier werden zuerst alle möglichen Splits gebildet, die Gesamtfläche für jeden einzelnen Split errechnet und dann der beste Split ausgewählt. Die Anzahl der Möglichkeiten beträgt 2 M-1. Quadratic-Cost Algorithmus Auch hier steht der Wunsch eine Aufteilung mit einer möglichst kleinen Gesamtfläche zu finden im Vordergrund. Allerdings wird nicht wie beim Exhaustive Algorithmus die kleinstmögliche Fläche garantiert. Dafür liegt die Performance in der Regel höher als beim Exhaustive Algorithmus. Die Kosten des Quadratic-Cost Algorithmus liegen bei O(M 2 ). Linear-Cost Algorithmus Dieser Algorithmus ähnelt dem Quadratic-Cost Algorithmus. Der Unterschied liegt in einer Prozedur. Die Kosten sind linear zu M und zur Anzahl der Dimensionen Quadratic-Cost Algorithmus Ein Split ist immer dann erforderlich, wenn ein Indexeintrag eingefügt werden soll und die maximale Anzahl an Indexeinträgen M pro Seite überschritten wird. Die Anzahl M+1 soll also auf zwei Seiten aufgeteilt werden. Beim Quadratic-Cost Algorithmus wird folgendermaßen vorgegangen

15 QS1 Wähle den ersten Eintrag für jede Gruppe. Hierbei soll der Algorithmus PickSeeds ausgeführt werden, um zwei Einträge als erste Elemente der beiden Gruppen zu finden. QS2 Prüfe, ob der Algorithmus fertig ist. Beende den Algorithmus, wenn alle Einträge zugewiesen wurden. Wenn eine Gruppe zu wenig Einträge hat, weise ihr die restlichen zu, um die minimale Anzahl m zu erreichen. QS3 Wähle einen Eintrag und weise ihn einer Gruppe zu. Der PickNext Algorithmus wird aufgerufen, um den nächsten zuzuweisenden Eintrag zu wählen. Die Gruppen werden nach folgender Strategie gebildet: Strategie: Wähle die Gruppe, deren Verzeichnisrechteck am wenigsten vergrößert werden muss. 2 Wähle die Gruppe, deren Verzeichnisrechteck kleiner ist. Wähle die Gruppe, die weniger Elemente hat. Wähle eine beliebige Gruppe. Fahre mit QS2 fort. PickSeeds Wähle die beiden Elemente, die die Startelemente in den beiden Gruppen sein sollen. PS1 Berechne die verschwendete Fläche des Verzeichnisrechtecks, wenn 2 Elemente gruppiert werden. 2 Das heißt, es wird zuerst die Gruppe nach 1. gewählt. Nur wenn das nicht eindeutig ist, kommt 2., usw

16 Für jedes Paar von Einträgen E 1 und E 2, erzeuge das Minimum Bounding Rectangle J, welches E 1.I und E 2.I enthält. d = Fläche (J) Fläche (E 1.I) Fläche (E 2.I) PS2 Wähle das verschwenderischste Paar, d. h. wähle das Paar bei dem d am größten ist. PickNext Die verbleibenden Einträge werden auf die beiden Gruppe aufgeteilt. PN1 Berechne die Kosten für jeden noch nicht zugeordneten Eintrag. Berechne d 1 und d 2 = Flächenzuwachs des Verzeichnisrechtecks, wenn es den Eintrag enthalten würde. PN2 Wähle den Eintrag mit d 1 d 2 am größten Linear-Cost Algorithmus Der Linear-Cost Algorithmus ähnelt dem Quadratic-Cost Algorithmus. Der Unterschied liegt in PickSeeds. Die beiden ersten Elemente einer Gruppe werden hier mit der Prozedur LinearPickSeeds gefunden. LinearPickSeeds LPS1 Finde die Extremrechtecke über alle Dimensionen Finde in jeder Dimension die Rechtecke mit der höchsten und der niedrigsten Koordinate

17 LPS2 Berechne den Abstand und normalisiere ihn. Über die gesamte Breite der Rechteckmenge wird entlang der entsprechenden Dimensionen geteilt. LPS3 Wähle das extremste Paar Wähle das Paar mit der größten normalisierten Separierung in einer Dimension. PickNext Mit PickNext werden die verbleibenden Einträge einer Gruppe zugeordnet. PN1 Berechne die Kosten für jeden Eintrag d 1 = Flächenzuwachs des Verzeichnisrechtecks der ersten Gruppe, wenn es E enthalten würde. Berechne d 2, analog zu d 1. PN2 Wähle den Eintrag mit d 1 d 2 am größten. 3.6 Kosten für Seitenzugriffe beim R-Baum Ziel ist es in R-Bäumen effizient nach gewünschten Datenobjekten zu suchen. Aus diesem Grund ist es erforderlich den toten Raum minimal zu halten und Überlappungen zu vermeiden bzw. ebenfalls minimal zu halten. In der nachstehender Abb. soll gezeigt werden, wie eine Suche nach dem Suchrechteck S im Fall einer Überlappung mehr Seitenzugriffe erfordert. In unserem Beispiel befindet sich das Suchrecheck S auf der Datenseite H. Wie bereits in Kapitel 3.1 beschrieben erfolgt die Suche erst in Teilbäumen, dann im Blattknoten

18 A F G K B root D E S H J A B C C M I N L D E F G H I J K L M N Abbildung 8: Kosten für Seitenzugriffe S1 Suche in Teilbäumen. T, in unserem Fall die Wurzel (root), ist kein Blatt, also wird jeder Eintrag daraufhin geprüft, ob dieser S überschneidet. Der Pfad A wird verfolgt. S überschneidet A, also wird die Suche in deren Söhnen fortgesetzt. Nun werden die Blätter durchsucht. S wird weder im Blattknoten D, noch in den Knoten E, F oder G gefunden. Die Suche muss also fortgesetzt werden. Der nächste Pfad B wird aufgerufen und verfolgt. S überschneidet B, also werden die Söhne durchsucht. Hier findet man S, das auf dem Blattknoten H liegt. Unser Eintrag wird gefunden, also kann die Suche hier abgebrochen werden. In unserem Fall gab es lediglich eine Überlappung, aber es zeigt, dass die Kosten der Seitenzugriffe durch Überlappungen steigen. Es müssen insgesamt zwei Pfade komplett durchlaufen werden, bis der gewünschte Eintrag gefunden wird. Es sollte also keine Überlappungen geben, allerdings könnten diese beim R-Baum nur dann vermieden werden, wenn Überlappungen alle Datenpunkte im voraus bekannt wären. Da aber der R-Baum eine dynamische Indexstruktur ist, ist dies in der Praxis nicht der Fall

19 4 R + -Baum Der R + -Baum ist eine Erweiterung zum R-Baum. Wie im vorherigen Kapitel angedeutet, führen Überlappungen zu höheren Kosten der Seitenzugriffe. Vor allem im mehrdimensionalen Raum gibt es häufig viele Überlappungen. Bei einer großen Anzahl von Überlappungen, ist ein sequentieller Scan oft geeigneter als eine Index-Struktur wie der R-Baum. Beim R + -Baum hingegen sind Überlappungen nicht zugelassen. Würde es zu einer Überlappung kommen, werden die entsprechenden Datenrechtecke geteilt, so der Eintrag in mehreren Blättern vorhanden ist. In unserem Beispiel von Abbildung 9 ist der Blattknoten G sowohl auf der Directoryseite A wie auf P. Das heißt, wird das Suchrechteck S gesucht, so werden die Pfade A, B und C nicht weiter verfolgt, da es keine Überschneidung gibt, aber die Söhne von P werden durchsucht und auch dort wird S auf dem Blattknoten G gefunden. A D C M F E G H S K J I B root A B C P N L D E F G I J K L M N G H root Abbildung 9: R + -Baum Der Vorteil von R + -Bäumen ist die schnellere Suche, allerdings erfordert dies auf der anderen Seite meist höhere Bäume

20 4.1 R + -Baum Operationen Die einzelnen Unterschiede vom R + -Baum im Gegensatz zum R- Baum sollen anschließend näher dargestellt werden. Suchen: Da es bei R + -Bäumen keine Überlappungen gibt, ist die Suche in der Regel schneller. Es müssen nicht unnötig Pfade durchlaufen werden, um dann festzustellen, dass der gesuchte Eintrag nicht auf dem entsprechenden Knoten liegt. Einfügen: Das Datenobjekt kann in mehreren Blättern eingefügt werden, damit es nicht zu Überlappungen kommt. Auch beim R + -Baum gibt es eine maximale Anzahl M an Einträgen. Kommt es zu überlaufende Knoten muss auch hier ein Split durchgeführt werden. Löschen: Soll ein Eintrag aus einem bestehenden Baum gelöscht werden, so wird zuerst das Blatt gesucht, wo sich der zu löschende Eintrag befindet, dann wird er aus dem Blatt entfernt. Ist der Eintrag auf mehreren Blättern gespreichert, so muss er aus allen Blättern entfernt werden. Im Gegensatz zum R-Baum gibt es beim R + -Baum keine minimale Anzahl m an Einträgen. Das heißt es müssen keine Einträge gelöscht werden um wieder an einer anderen Stellen einzufügen. Splitten: Wie bereits erwähnt kommt es bei Überschreiten der maximalen Anzahl M zu einem Überlaufen. Der Knoten

21 muss gesplittet werden. Dieses Splitten setzt sich abwärts fort. Wenn beispielsweise A Vater von B ist und B Vater von C, dann müssen diese ebenfalls gesplittet werden. Dies ist erfordelich, da keine Überlappungen erlaubt sind. 4.3 Performance Der Hauptvorteil von R + -Bäumen im Gegensatz zu R-Bäumen ist die verbesserte Suchleistung. Vor allem bei Punktanfragen können Zugriffsersparnisse bis zu mehr als 50 % betragen. Die Effizienz von R-Bäumen leidet unter wenigen großen Datenobjekten. Um Überlappungen zu vermeiden, werden diese Datenräume beim R + -Baum in mehrere kleiner Datenräume gesplittet. Da keine Pfade verfolgt werden, auf denen sich das gesuchte Objekt nicht befindet werden gesuchte Datenobjekte erheblich schneller gefunden. Der R-Baum ist eine gute Indexstruktur für mehrdimensionale Daten. Allerdings leidet die Performance sehr stark in hochdimensionalen Räumen. Hier kann es bis zu 90 % an Überlappungen kommen, was bedeutet, dass in diesem Fall ein sequentieller Scan meist schnellere Ergebnisse liefert

22 5 Erweiterungen des R-Baumes Da vor allem in hochdimensionalen Räumen das Hauptproblem des R-Baumes die vielen Überlappungen sind und damit verbunden eine schlechte Performance, wurde eine Reihe von weiteren Indexstrukturen entwickelt. R*-Baum Der R*-Baum ist eine Weiterentwicklung zum R + -Baum. Er ermöglicht durch einen ausgeklügelten Splitalgorithmus eine weitere Effizientsteigerung. X-Baum (extended node) Der X-Baum ist wiederum eine Weiterentwicklung zum R*-Baum. Seine Bedeutung liegt vor allem in hochdimensionalen Räumen. Durch Einführen von sogenannten supernodes können ebenfalls Überlappungen vermieden werden. Die Knoten können erweitert werden. TV-Baum (Telescope vector) Der TV-Baum besitzt eine ähnliche Struktur wie der R- Baum. Dieser Baum wurde speziell für Vektoren entwickelt. Cell-Baum Der sog. Cell-Baum benutzt nicht wie beim R-Baum Rechtecke, sondern Polygone. SS-Baum (Similarity Search) Beim SS-Baum werden anstatt den Minimium Bounding Rectangles (MBRs) Kugeln als Seitenregion benutzt. Dies führt ebenfalls zu einer verbesserten Performance im Gegensatz zum R-Baum

23 SR-Baum Der SR-Baum benutzt eine Kombination aus einem Rechteck (MBR) und einer Kugel als Seitenregion. Alle die hier vorgestellten Indexstrukturen basieren auf dem R- Baum und werden je nach Anwendungsgebiet unterschiedlich eingesetzt. So wird z. B. der X-Baum (extended Baum) hauptsächlich für hochdimesionale Räume eingesetzt. Da der Einsatz von supernodes erlaubt ist, können die Überlappungen vermieden werden und damit die Performance im Vergleich zum R-Baum deutlich verbessert werden. 6 Zusammenfassung Die vorliegende Seminararbeit behandelte das Thema R-Bäume. Der R-Baum ist eine Indexstruktur für räumlich Daten. Sie werden zum Beispiel in Geografischen Informationssystemen eingesetzt. Der R-Baum ist im Aufbau dem B-Baum sehr ähnlich. Auch die Operationen, die auf den R-Baum ausgeübt werden können, wie Einfügen, Suchen, Löschen eines Datenobjektes sind denen des B-Baumes sehr ähnlich. Der Vorteil vom R-Baum liegt in der Möglichkeit nicht nur Punktanfragen, sondern auch Bereichsanfragen stellen zu können. Dies ist vor allem auch für CAD-Systeme interessant. Da es sich um eine dynamische Indexstruktur handelt, kann es durch Einfügen von Datenobjekten zu Überlappungen führen. Diese Überlappungen verschlechtern die Suchperformance, da oft auch Pfade durchsucht werden müssen, in denen sich das gesuchte Datenobjekt nicht befindet. Der R + -Baum ist eine Erweiterung vom R-Baum und vermeidet Überlappungen und damit auch die Probleme der Performance. Es wurden noch mehr Erweiterung zum R-Baum entwickelt, wie zum Beispiel der X

24 Baum oder auch der TV-Baum, der hauptsächlich für Vektoren entwickelt wurde

25 Literaturliste: [1] Gutmann, Antonin: R-Trees A Dynamic Index Structure for Spatial Searching, University of California Berkeley, 1984 [2] Sellis Timos, Roussopoulos Nick, Faloustsos Christos: The R+- Tree: A Dynamic Index for Multi-Dimensional Objects, University of Maryland, [3] Vorlesung Multimedia-Datenbanksysteme; Dr. T. Seidl,

Mobile Objekte Indexstrukturen

Mobile Objekte Indexstrukturen Verteilung und Integration von Informationen im Verkehrsbereich Mobile Objekte Indexstrukturen Ingo Beutler 07.06.2004 Anfragen: z.b. Welche Transporter befinden sich in der Nähe des HSaF? Wie können räumliche

Mehr

B+-Baum mit Z-Ordnung. B+-Baum mit Z-Ordnung. Anforderungen. 7.3 Räumliche Zugriffsstrukturen

B+-Baum mit Z-Ordnung. B+-Baum mit Z-Ordnung. Anforderungen. 7.3 Räumliche Zugriffsstrukturen B+-Baum mit Z-Ordnung Window Query: 1. Ansatz Benutze den gewöhnlichen Algorithmus für Bereichsanfragen im B + -Baum: Suche mit dem kleinsten Z-Wert des Suchrechtecks (entspricht dem linken unteren Eckpunkt)

Mehr

4.1 Einführung. 4.2 Z-Ordnung. 4.3 R-Bäume. 4.4 Quadtrees. Kapitel 3: Räumliche Indexstrukturen. 4. Räumliche Indexstrukturen

4.1 Einführung. 4.2 Z-Ordnung. 4.3 R-Bäume. 4.4 Quadtrees. Kapitel 3: Räumliche Indexstrukturen. 4. Räumliche Indexstrukturen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Kapitel 3: Räumliche Indexstrukturen Skript zur Vorlesung Geo-Informationssysteme Wintersemester 2011/12 Ludwig-Maximilians-Universität

Mehr

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum

Mehr

R-Baum R + -Baum X-Baum M-Baum

R-Baum R + -Baum X-Baum M-Baum R-Baum und Varianten R-Baum R + -Baum X-Baum M-Baum staab@uni-koblenz.de 1 R-Baum R-Baum: Guttman 1984 Erweiterung B-Baum um mehrere Dimensionen Standardbaum zur Indexierung im niedrigdimensionalen Raum

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Übung zur Vorlesung Algorithmische Geometrie Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)

Mehr

Indizierung von Geodaten - Raumbezogene Indexstrukturen. Seminar mobile Geoinformationssystem Vortrag von Markus Steger

Indizierung von Geodaten - Raumbezogene Indexstrukturen. Seminar mobile Geoinformationssystem Vortrag von Markus Steger Indizierung von Geodaten - Raumbezogene Indexstrukturen Seminar mobile Geoinformationssystem Vortrag von Markus Steger Index wozu ist er gut? Index allgemein Effizienter Zugriff auf Daten, i.d.r. mit B-Baum

Mehr

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Informationssysteme - Indexstrukturen I: B-Bäume und ihre Varianten Seite 1 GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Leiter des Proseminars: Dr.Thomas Bode Verfasser

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1 Baum-Indexverfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k 2.

Mehr

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani INTERVALLBÄUME Tanja Lehenauer, Besart Sylejmani Datenstrukturen in der Informatik Baumstrukturen Warum Intervallbäume? Centered Interval Tree Konstruktion Suchen eines Punktes Suchen eines Intervalls

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Datenbanken: Indexe. Motivation und Konzepte

Datenbanken: Indexe. Motivation und Konzepte Datenbanken: Indexe Motivation und Konzepte Motivation Warum sind Indexstrukturen überhaupt wünschenswert? Bei Anfrageverarbeitung werden Tupel aller beteiligter Relationen nacheinander in den Hauptspeicher

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Non-Standard-Datenbanken

Non-Standard-Datenbanken Non-Standard-Datenbanken Multidimensionale Indizierung Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Non-Standard-Datenbanken Von der Volltextsuche zur multidimensionalen

Mehr

Baum-Indexverfahren. Einführung

Baum-Indexverfahren. Einführung Baum-Indexverfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k 2.

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

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

Grundlagen 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.

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Indexstrukturen Indexstrukturen insbesondere Mehrdimensionale Indexstrukturen, Ausgedehnte

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 13 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

Kapitel 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 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:

Mehr

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & 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

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:

Mehr

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe ( Bäume): a) Löschen Sie den Wert aus dem folgenden Baum und geben Sie den dabei

Mehr

Algorithmen und Datenstrukturen Bereichsbäume

Algorithmen und Datenstrukturen Bereichsbäume Algorithmen und Datenstrukturen Bereichsbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung k-d Baum BSP Baum R Baum Motivation

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen 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

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation 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

Mehr

Ausgangspunkt: punktförmige hochdimensionale Feature-Objekte

Ausgangspunkt: punktförmige hochdimensionale Feature-Objekte Baumverfahren Ausgangspunkt: punktförmige hochdimensionale Feature-Objekte B-Baum eindimensional Abbildung eines mehrdimensionalen Raums auf eine Dimension im Allgemeinen nicht distanzerhaltend möglich

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 8 Übung zur Vorlesung Grundlagen: Datenbanken im WS14/15 Harald Lang (harald.lang@in.tum.de) http://www-db.in.tum.de/teaching/ws1415/grundlagen/

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen 5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

Mehr

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

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil VII Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 08.

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 Anwendung: Schreibtisch Operation: insert(task) 2 Anwendung: Schreibtisch An uns wird Arbeit delegiert... Operation:

Mehr

Binärbäume: Beispiel

Binärbäume: Beispiel Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

Klassische Indexstrukturen

Klassische Indexstrukturen Klassische Indexstrukturen Verwaltung von räumlichen Objekten kann auch über räumliche Suchbäume erfolgen Suchbäume passen ihre Seitenregionen (Zonen) der Datenverteilung an Garantie über maximale Füllung

Mehr

Nachtrag zu binären Suchbäumen

Nachtrag zu binären Suchbäumen Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung Grundlagen von Datenbanken B-Bäume, B*-Bäume Normalisierung B-Bäume Definition: Seien k, h ganze Zahlen, h > 0, k > 0. Ein B-Baum B der Klasse τ(k,h) ist entweder ein leerer Baum oder ein geordneter Suchbaum

Mehr

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

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Kollisionserkennung

Kollisionserkennung 1 Kollisionserkennung von Jens Schedel, Christoph Forman und Philipp Baumgärtel 2 1. Einleitung Wozu wird Kollisionserkennung benötigt? 3 - für Computergraphik 4 - für Simulationen 5 - für Wegeplanung

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

In diesem Beitrag sollen die einzelnen Möglichkeiten detaillierter erläutert und bei Notwendigkeit mit einem Beispiel hinterlegt werden.

In diesem Beitrag sollen die einzelnen Möglichkeiten detaillierter erläutert und bei Notwendigkeit mit einem Beispiel hinterlegt werden. Inhalte einfügen Das Menü Inhalte einfügen bietet eine Vielzahl von Möglichkeiten kopierte Elemente wieder in ein Tabellenblatt einzufügen. Dabei kann im Gegensatz zum normalen Einfügen darauf geachtet

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu

Mehr

9. Heuristische Suche

9. Heuristische Suche 9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany rudolf.kruse@cs.uni-magdeburg.de S Heuristische Suche Idee: Wir nutzen eine (heuristische)

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Triangulierung von einfachen Polygonen

Triangulierung von einfachen Polygonen Triangulierung von einfachen Polygonen - Seminarvortrag von Tobias Kyrion - Inhalt: 1.1 Die Problemstellung Quellenangabe 1.1 Die Problemstellung Definition Polygon: endlich viele paarweise verschiedene

Mehr

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

Wiederholung 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

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld Westfählische Wilhelms-Universität Eulersche Graphen Autor: 21. Mai 2015 Inhaltsverzeichnis 1 Das Königsberger Brückenproblem 1 2 Eulertouren und Eulersche Graphen 2 3 Auffinden eines eulerschen Zyklus

Mehr

KD-Bäume. ein Vortrag von Jan Schaefer

KD-Bäume. ein Vortrag von Jan Schaefer ein Vortrag von Jan Schaefer Überblick - Kurzer Rückblick: Quad Trees - KD-Baum bauen - Effizienz des Konstruktionsalgorithmus - Regionen - Bereichssuche - Effizienz des Suchalgorithmus - Anwendungsgebiete

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Abschnitt 18: Effizientes Suchen in Mengen

Abschnitt 18: Effizientes Suchen in Mengen Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

Der Alpha-Beta-Algorithmus

Der Alpha-Beta-Algorithmus Der Alpha-Beta-Algorithmus Maria Hartmann 19. Mai 2017 1 Einführung Wir wollen für bestimmte Spiele algorithmisch die optimale Spielstrategie finden, also die Strategie, die für den betrachteten Spieler

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 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

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs 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

Mehr

Algorithmik 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.

Algorithmik 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

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

Mehr

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.05.2012 Nachtrag: Dynamische Bereichsabfragen Letzte Woche: kd-trees und Range-Trees

Mehr

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen: HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

Mehr

Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei

Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei 3.1. Flache Indexe Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei Mittel: Definition eines Index über ein (Zugriffs-) Attribut (Schlüssel

Mehr

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für balanciert: Balancierte Bäume Aufwand, ein Element zu finden, entspricht der Tiefe des gefundenen Knotens im worst case = Tiefe des Baumes liegt zwischen log N und N Definition für "balanciert": es gibt verschiedene

Mehr

Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:...

Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:... Praktikum 3 Algorithmik SS 2007 14052007 Aufgabe 9: Aufgabe 10: Das Skyline-Problem Union-Find-Strukturen weitere Aufgaben folgen Name: Matr-Nr: Datum: Unterschrift des Dozenten (wenn bestanden): Aufgabe

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen 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

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Algorithmische Anwendungen WS 2005/2006

Algorithmische Anwendungen WS 2005/2006 Algorithmische Anwendungen WS 2005/2006 Sequenzalignment Gruppe F_lila_Ala0506 Allal Kharaz Yassine ELassad Inhaltsverzeichnis 1 Problemstellungen...................................... 3 1.1 Rechtschreibkorrektur...............................

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr