1 / 59

Diskrete Mathematik

R. R. R. R. R. R. R. R. R. Diskrete Mathematik. (R/R + -Baum). Übersicht über das Semester. Die Vorlesung besteht aus 3 Blöcken räumliche Datenbanken Zugriffsstrukturen zur Unterstützung der Suche R/R+ - Baum Quadtree Softwaretechnologie (Dr. Gröger)

Download Presentation

Diskrete Mathematik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. R R R R R R R R R Diskrete Mathematik (R/R+-Baum)

  2. Übersicht über das Semester Die Vorlesung besteht aus 3 Blöcken • räumliche Datenbanken • Zugriffsstrukturen zur Unterstützung der Suche • R/R+ - Baum • Quadtree • Softwaretechnologie (Dr. Gröger) • (fortgeschrittene) Klassendiagramme • Dynamische UML-Diagramme • Software-Demo: CASE-Tool „Together“ • Korrektheit von Programme – Testen • Normen und Standards in GIS

  3. Übersicht über das Semester Die Vorlesung besteht aus 3 Blöcken • Internet: Protokolle, Dienste und Formate (Dr. Kolbe) • Offene Systeme, Rechnernetze und Internet • eXtensible Markup Language (XML) • XML Dokumenttyp-Definition, UML -> XML, Namespaces • XML-Schema • Geography Markup Language (GML 2) Form: Vorlesung mit Übungsanteilen

  4. 1 Übersicht • Einordnung • MBR – minimum bounding rectangle • Idee des R-Baums • Neues laufendes Beispiel • R-Baum als B-Baum • Exkurs: B-Baum • Eigenschaften • Einfügen in einen B-Baum • Löschen in einem B-Baum • Der R-Baum als solcher • Einfügen in einen R-Baum • Strategien zum Spalten eines Knotens • Suchen in einem R-Baum • Nachteil des R-Baums • Alternative: Der R+-Baum • R+-Baum • Suche im R+-Baum

  5. 2 R-Baum Einordnung • Bisher: • Zerlegung des Objekts (->Trapezkarte) • Konstruktion einer Zugriffstruktur für das Objekt (->Trapezkarte) • Alternatives Vorgehen: • Approximation der Maschen durch umschließende achsenparallele Rechtecke:Minimal Bounding Rectangle (MBR) • Verwaltung der Rechtecke • R-Baum • R+-Baum

  6. A 3 R-Baum MBR – minimum bounding rectangle y Außen x 4x

  7. A 4 R-Baum Idee • In welcher Masche M liegt der Punkt P? • Neue Frage: In welcher Bounding Box einer Masche M liegt der Punkt P? • Verwende effizientes Verfahren, um alle Rechtecke R1, ... Rn zu finden, die P enthalten • Jedem Rechteck Ri entspricht eine Masche Mi • Prüfe, ob P in einer der Maschen M1, ... Mn vorkommt • Verwende dazu das Standardverfahren • Problem: Zugriffsstruktur für Rechtecke • Rechtecke sind einfacher zu handhaben als Maschen im allgemeinen • Nur die Rechtecke interessieren uns hier, nicht die zugrundeliegenden Maschen 1x

  8. 15 16 R11 11 12 13 14 R15 R16 R13 01 02 03 04 06 09 05 07 08 10 R12 R14 4 4 R-Baum Beispiel 01 02 03 07 04 08 05 09 10 06

  9. 5 R-Baum R-Baum als B-Baum • Ein R-Baum ist ein B-Baum mit zusätzlichen Eigenschaften • Was ist denn ein B-Baum? • Ein B-Baum ist (wie der AVL-Baum) ausgeglichen • Aber: Jeder Knoten enthält mehr als einen Schlüssel B-Bäume werden oft in kommerziellen Datenbanken für den schnellen Zugriff auf Festplattenspeicher genutzt. Die inneren Knoten entsprechen dann den kleinsten ansprechbaren Einheiten („Kacheln“ von 1 Kbyte oder mehr) der Festplatte.

  10. B-Baum Exkurs B B B B B B B B B

  11. 52 63 62 66 71 78 90 75 38 50 16 31 51 41 55 59 91 95 80 13 20 14 82 29 15 30 86 6 B-Baum Beispiel derOrdnung 2 49

  12. 7 B-Baum Allgemeines Der B-Baum wurde nach seinem Entwickler R. Bayer benannt. Die Suche eines Elementes in einem B-Baum unterscheidet sich nur wenig von der Suche in anderen Such-Bäumen. Das Einfügen und Entfernen von Elementen ist jedoch an vielen Stellen anders als in Binär-Such-Bäumen.

  13. 8 B-Baum Eigenschaften I • Eigenschaften eines B-Baumes der Ordnung n: • Ein B-Baum ist nicht binär • Ein B-Baum ist ausgeglichen • Alle Blätter haben das gleicheNiveau • Jeder Knoten enthält höchstens 2n Elemente • Jeder Knoten außer der Wurzel enthält mindestens n Elemente • Jeder innere Knoten hat m+1 Nachfolgeknoten, wobei m die Anzahl der Schlüssel des inneren Knotens ist

  14. 8 B-Baum Eigenschaften II • Eigenschaften eines B-Baumes der Ordnung n: • Die m Elemente eines Knotens werden in aufsteigender Reihenfolge gespeichert: x1 < x2 < ... < xm • Für jeden i-ten Teilbaum Si eines Knotens gilt:Die Elemente seiner Knoten sind größer als xi und kleiner als xi+1 (ganz links und ganz rechts analog) • Bei einigen Varianten des B-Baums stehen alle Informationen in den Blättern

  15. 52 63 66 62 78 71 75 90 52 62 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 31x

  16. 63 52 62 66 71 78 75 90 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 61 Einfügen eines Elements mit dem Wert 61 61 > 49  rechter Ast 31x

  17. 52 63 66 62 78 71 90 75 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 61 61 61 > 49  rechter Ast 52 < 61 < 62  2. Ast von links 31x

  18. 63 52 62 66 71 78 90 75 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 61 61 > 49  rechter Ast 52 < 61 < 62  2. Ast von links 59 < 61  Einfügen 61 31x

  19. 63 52 62 66 78 71 90 75 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 61 61 > 49  rechter Ast 52 < 61 < 62  2. Ast von links 59 < 61  Einfügen 31x

  20. 63 52 62 66 78 71 90 75 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 61 61 > 49  rechter Ast 52 < 61 < 62  2. Ast von links 59 < 61  Einfügen 31x

  21. 63 52 66 62 78 71 75 90 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 64 Einfügen eines Elements mit dem Wert 64 64 > 49  rechter Ast 31x

  22. 63 52 62 66 78 71 90 75 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 64 64 > 49  rechter Ast 62 < 64 < 78  3. Ast von links 31x

  23. 52 63 62 66 78 71 75 90 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 64 > 49  rechter Ast 62 < 64 < 78  3. Ast von links 63 < 64 < 66  Einfügen 64 31x

  24. 52 62 78 90 61 50 51 55 59 63 64 66 71 75 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 64 > 49  rechter Ast 62 < 64 < 78  3. Ast von links 63 < 64 < 66  Einfügen 31x

  25. 52 62 78 90 61 50 51 55 59 63 64 66 71 75 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 64 > 49  rechter Ast 62 < 64 < 78  3. Ast von links 63 < 64 < 66  Einfügen 31x

  26. 52 62 78 90 61 50 51 55 59 63 64 66 71 75 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 Problem: Speicherüberlauf Lösung: Knoten sprengen 31x

  27. 52 62 78 90 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 Setze das mittlere Element um eine Position nach oben Bilde zwei neue Zweige 63 64 66 71 75 31x

  28. 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 63 64 71 75 31x

  29. 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 63 64 71 75 31x

  30. 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 Problem: Speicherüberlauf Lösung: Knoten sprengen 63 64 71 75 31x

  31. 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 Setze das mittlere Element um eine Position nach oben Bilde zwei neue Zweige 63 64 71 75 31x

  32. 61 50 51 55 59 91 95 80 82 86 A 9 B-Baum Einfügen 49 66 Einfügen eines Elements mit dem Wert 64 52 62 78 90 63 64 71 75 31x

  33. 10 B-Baum Löschen • Suche des Knotens, der das zu löschende Element enthält • Falls Knoten gefunden, unterscheiden wir folgende Fälle: • Löschen in einem Blatt: Entfernen des Elementsa) die Anzahl der Elemente des Blattes ist weiterhin >= nb) die Anzahl der Elemente des Blattes ist < n „Unterlauf“ bereinigen • Löschen in einem inneren Knoten: Eintrag durch das nächstgrößere oder nächstkleinere Element im Baum ersetzen (rechtester Eintrag im linken Unterbaum oder linkester im rechten (vgl. AVL-Bäume). • a) die Anzahl der Elemente des Blattes ist weiterhin >= n b) die Anzahl der Elemente des Blattes ist < n  „Unterlauf“ bereinigen

  34. 49 54 50 55 51 59 63 64 80 82 86 91 95 97 A 10 B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 78 90 Element suchen Element gefunden: Löschen 71 75 17x

  35. 49 54 50 55 51 59 80 82 86 91 95 97 A 10 B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 78 90 Speicherunterlauf Über Vater- und Nachbar- knoten (nächstgrößeres Element) ausgleichen 63 64 71 17x

  36. 49 54 50 55 51 59 80 82 86 91 95 97 A 10 B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 78 90 63 64 71 17x

  37. 49 54 50 55 51 59 91 95 97 A 10 B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 80 90 63 64 71 78 82 86 17x

  38. 49 54 55 50 51 59 91 95 97 A 10 B-Baum Löschen in einem inneren Knoten 14 49 66 Löschen des Elements mit dem Wert 90 52 62 80 90 Element suchen Element gefunden: Löschen 63 64 71 78 82 86 17x

  39. 49 54 55 50 51 59 91 95 97 A 10 B-Baum Löschen in einem inneren Knoten 14 49 66 Löschen des Elements mit dem Wert 90 52 62 80 Speicherunterlauf Ersetzen durch nächst- größeres Element 63 64 71 78 82 86 17x

  40. 49 54 50 55 51 59 A 10 B-Baum Löschen in einem inneren Knoten 14 49 66 Löschen des Elements mit dem Wert 90 52 62 80 91 63 64 71 78 82 86 95 97 17x

  41. Zurück zum R-Baum R R R R R R R R R

  42. 11 R-Baum ...als solcher • Ein Blattknoten ist ein Paar (R,O), R ist das kleinste umschließende Rechteck, welches das Objekt O umschließt • Jeder innere Knoten hat m Paare (R,T), R ist das kleinste umschließende Rechteck des Teilbaums T • Ordnung beim R-Baum: (m, M) - Jeder Knoten außer der Wurzel enthält zwischen m M/2 und M Einträgen • Die Wurzel hat mindestens zwei Einträge sofern sie kein Blattknoten ist • Beachte: • Rechtecke können sichüberlappen • Struktur des R-Baums hängt von Reihenfolge desEinfügens ab • Jedes Paar (R,O) kommt genaueinmalvor • R kannmehrereumschließenden Rechtecke schneiden

  43. 15 16 R11 11 12 13 14 R15 R16 R13 01 02 03 04 06 09 05 07 08 10 R12 R14 11 R-Baum ...als solcher 01 02 03 07 04 08 05 09 10 06

  44. 12 R-Baum Einfügen • Ausgangspunkt: Einfügen eines neuen Knotens in einen R-Baum • Problem hier: an welche Stelle wird (R,O) eingefügt? • Durchlaufe den R-Baum mit der Wurzel als Ausgangspunkt • Wähle an jedem inneren Knoten den Teilbaum, der durch Einfügen von R minimal vergrößert würde • Füge (R,O) schließlich als Blatt ein • Beim Überlauf verfahre wie beim B-Baum • Besonderheit gegenüber B-Baum: • Es gibt keine lineare Ordnung zwischen den Einträgen der Knoten • Verschiedene Strategien zum Spalten eines Knotens Animiertes Beispiel der Ordnung (2,3)

  45. 13 R-Baum Strategien zum Spalten eines Knotens Minimierung der Gesamtfläche Minimierung des Durchschnitts

  46. 14 R-Baum Punktsuche Welche (R,O) enthalten den Punkt P? • Beginne an der Wurzel • innere Knoten: Durchsuche jeden Sohnknoten der Paare (R,T), die P enthalten • Blattknoten: Suche alle (R,O), die P enthalten • Fertig! • Achtung: Ggf. muss in mehreren Teilbäumen gesucht werden! Animiertes Beispiel

  47. 15 R-Baum Bereichssuche Welche (R,O) schneiden das Rechteck Q? • Beginne an der Wurzel • innere Knoten: Durchsuche jeden Sohnknoten der Paare (R,T), die Q schneiden • Blattknoten: Suche alle (R,O), die Q schneiden • Fertig! Animiertes Beispiel

  48. 16 Nachteil des R-Baums • Um das richtige Blatt zu finden, sind meist mehrere Durchläufe erforderlich • Dies gilt insbesondere dann, wenn die Suche erfolglos ist • Abhilfe: R+-Baum

  49. 17 Alternative: Der R+-Baum • Alle inneren Rechtecke sind disjunkt • Ein Objekt / umschließendes Rechteck kann in mehrerenBlättern vorkommen • Jedes Blatt repräsentiert den Teil von (R,O), der von dem Vaterknoten umschlossen wird

  50. 6 2 1 B 4 7 C I 5 D 1 2 3 A 3 J F 9 G 4 5 6 7 8 9 A E E H 8 D B D E I H B C D E G F J A 18 R+-Baum Aufbau 34x

More Related