Algorithmen und Datenstrukturen Bereichsbäume



Ähnliche Dokumente
Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Suchbaum

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kollisionserkennung

Tutorium Algorithmen & Datenstrukturen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

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

Datenstrukturen & Algorithmen

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Kapitel 5: Dynamisches Programmieren Gliederung

Binäre Bäume Darstellung und Traversierung

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Grundlagen der Theoretischen Informatik, SoSe 2008

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Graphische Datenverarbeitung und Bildverarbeitung

Grundbegriffe der Informatik

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Nachtrag zu binären Suchbäumen

368 4 Algorithmen und Datenstrukturen

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

t 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 )

WS 2009/10. Diskrete Strukturen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

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

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Programmiertechnik II

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

1 topologisches Sortieren

Vorkurs Informatik WiSe 15/16

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Eine Bürokratiekostenfolgenabschätzung zum zweiten Gesetz für moderne Dienstleistungen am Arbeitsmarkt im Hinblick auf die Einführung einer Gleitzone

Algorithmen und Datenstrukturen

Algorithmische Kryptographie

Erfahrungen mit Hartz IV- Empfängern

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung

Kap. 4.2: Binäre Suchbäume

EndTermTest PROGALGO WS1516 A

Anforderungen an die HIS

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.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Algorithmische Mathematik

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Zeichen bei Zahlen entschlüsseln

Datenstrukturen und Algorithmen

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

Professionelle Seminare im Bereich MS-Office

Anleitung Typo3-Extension - Raumbuchungssystem

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19

Softwaretechnik (Allgemeine Informatik) Überblick

1 Mathematische Grundlagen

ChangePoint-Analysen - ein Überblick

Programmiersprachen und Übersetzer

Exploration und Klassifikation von BigData

Der Voxtron Konferenz-Server

Grundlagen der Programmierung 2. Bäume

Linienland, Flächenland und der Hyperraum Ein Ausflug durch die Dimensionen

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Kapitel 8: Physischer Datenbankentwurf

Leichte-Sprache-Bilder

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

SharePoint Demonstration

6.2 Scan-Konvertierung (Scan Conversion)

Kapitel 04 Strukturiertes Entity-Relationship-Modell. 4 Strukturiertes Entity-Relationship- Modell

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Markovketten. Bsp. Page Ranking für Suchmaschinen. Wahlfach Entscheidung unter Risiko und stat. Datenanalyse

Die Näherung durch die Sekante durch die Punkte A und C ist schlechter, da der Punkt C weiter von A entfernt liegt.

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Informatik Aufgaben. 1. Erstelle ein Programm zur Berechnung der Summe der Zahlen von 1 bis n, z.b. n = 100.

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

Begriffsbestimmung CRISP-DM-Modell Betriebswirtschaftliche Einsatzgebiete des Data Mining Web Mining und Text Mining

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Virtuelle Fotografie (CGI)

Wasserfall-Ansätze zur Bildsegmentierung

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Grundbegriffe der Informatik

Tipps und Tricks zu Netop Vision und Vision Pro

15 Optimales Kodieren

Die Bundes-Zentrale für politische Bildung stellt sich vor

Was meinen die Leute eigentlich mit: Grexit?

Konzepte der Informatik

Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

Algorithmen & Datenstrukturen 1. Klausur

Programmierkurs Java

IBIS Professional. z Dokumentation zur Dublettenprüfung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Allgemeines zu Datenbanken

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Das vorliegende Dokument beinhaltet vertrauliche Informationen und darf nicht an Dritte weitergereicht werden.

Echtzeitanomalieerkennung für Internetdienste (Abschlussvortrag)

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

Transkript:

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 Blattsuchbäume Knoten enthalten Hinweise zu Schlüsseln Schlüssel sind in Blättern gespeichert Innere Knoten enthalten keine Schlüssel. Wert eines Knotens beschreibt ein Kriterium für die Schlüssel in den Blättern. Bsp: Alle Blätter im linken Teilbaum enthalten Schlüssel, die kleiner als 8 sind. Schlüssel im rechten Teilbaum sind größer gleich 8. Schlüssel sind in Blättern gespeichert. 1D-Beispiel

Motivation verwalten mehrdimensionale Schlüssel in Datenbanken oder für geometrische Anwendungen R1-R19 beschreiben 2D-Bereiche, welche die Suche von 2D-Schlüsseln beschleunigen. R3-55 sind Teilbereiche von R1. R6-R7 sind Teilbereiche von R2. R8-R10 sind Teilbereiche von R3.... 2D-Schlüssel sind in Blättern beispielsweise unter R8-R19 gespeichert. 2D-Beispiel R1-R19 sind als (minx,miny,maxx,maxy) repräsentiert. www.wikipedia.de: R-Baum

Überblick Einführung k-d Baum BSP Baum R Baum

Einführung Blattsuchbaum Knoten beschreiben Eigenschaften von Schlüsseln, die in Blättern gespeichert sind Knoten enthalten keine Schlüssel. Alle Schlüssel sind in Blättern gespeichert. Schlüssel von beliebiger Dimensionalität s.key[0], s.key[1],., s.key[k-1] effiziente Bereichsanfrage suche alle Schlüssel s mit min 0 s.key [0] max 0 min 1 s.key [1] max 1... min k-1 s.key [k-1] max k-1

k-d Baum (2D) y x 2 x 3 x 1 > y 1 x 4 x 5 x 1 x y 1 y 2 y 2 > > x 4 x 2 x 5 x 3 > > > >

Bereichsabfrage Bereichsintervalle bestimmen zu traversierende Knoten Elemente in Blättern ( ) werden gegen Bereich getestet x 2 x 3 y x 1 > y 1 x 4 x 1 x 5 x y 1 y 2 y 2 > > x 4 x 2 x 5 x 3 > > > >

k Dimensionen Schlüssel mit k Elementen s.key[0], s.key[1],., s.key[k-1] Menge M Aufbau des Baums Wahl eines Wertes d 0, sodass M in zwei ungefähr gleich große Teilmengen M 00, M 01 geteilt wird mit M 00 = { s M : s.key[0] d 0 } und M 01 = { s M : s.key[0] > d 0 } Wahl eines Wertes d 10, sodass M 00 unterteilt wird: M 10 = { s M 00 : s.key[1] d 10 } und M 11 = { s M 00 : s.key[1] > d 10 } Wahl eines Wertes d 11, sodass M 01 unterteilt wird: M 12 = { s M 01 : s.key[1] d 11 } und M 13 = { s M 01 : s.key[1] > d 11 } Wahl weiterer Werte d, sodass die resultierenden Teilmengen weiter unterteilt werden bezüglich key[2],..., key[k-1], key[0],... bis jede resultierende Teilmenge nur wenige Elemente enthält

k Dimensionen Jeder Knoten unterteilt eine Teilmenge der ursprünglichen Menge in zwei ungefähr gleichgroße Teilmengen bezüglich eines Schlüssels key [ i ] d20 unterteilt M10 in M20 und M21 mit M20 = {s M10: s.key[2] d20} und M21 = {s M10: s.key[2] > d20} und Blätter enthalten wenige Elemente, z. B. { s : s.key[0] d0 s.key[1] d10 s.key[2] > d20 s.key[3] > d31 }

Anwendung Suche von k-dimensionalen Punkten in einem vorgegebenen, durch k Intervalle beschriebenen Bereich Bereichsanfragen in Datenbanken Datensatz { Name, Postleitzahl, Alter, Einkommen } Suche alle Datensätze, die einem vorgegebenen Postleitzahl-, Alters- und Einkommensbereich entsprechen

Quadtrees (2D) / Octrees (3D) Blattsuchbaum Knoten beschreiben Bereiche. Blätter enthalten Schlüssel. Wurzelknoten beschreibt Bereich aller Schlüssel. Jeder weitere Knoten beschreibt einen Teilbereich. Alle Schlüssel unter diesem Knoten liegen in dem Teilbereich.

k-d Baum / Quadtree / Octree adaptiv in Bezug auf die Verteilung der Schlüssel große Zellen in Bereichen mit wenig Schlüsseln kleine Zellen in Bereichen mit vielen Schlüsseln Einfüge-Operation Zellen mit vielen Schlüsseln können weiter unterteilt werden.

Überblick Einführung k-d Baum BSP Baum R Baum

Binary Space Partitioning Tree BSP Blattsuchbaum Raum wird durch beliebig orientierte Hyperebenen unterteilt (Generalisierung eines k-d Baums) Ebenen werden in Knoten gespeichert Blätter enthalten Schlüssel Knoten unterteilen Raum in konvexe Zellen, in welchen die in den Blättern gespeicherten Schlüssel liegen. 1+ 1-4- 4+ 5-5+ 3-3+ 2+ 2-2D-Beispiel: Gerade 1 unterteilt die Ebene in zwei Teile. Gerade 2 unterteilt den Bereich 1- weiter in 2+ und 2-. 3 unterteilt 2- weiter usw.

Anwendung Test, ob ein Punkt innerhalb oder außerhalb eines geschlossenen Polygons liegt + + 1-1 2 1 + 2 3b 3a + - + - 4 3 + 3b 4 3a + out 4 out 2 + - + - out in out in Szene Raumunterteilung BSP Baum

Anwendung Anfragepunkt liegt im Polygon 4 3b 1 3a 2 + 3b 1 3a + - + - out 4 out 2 + - + - out in out in - Anfragepunkt liegt außerhalb des Polygons 4 3b 1 3a 2 + 3b 1 3a + - + - out 4 out 2 + - + - out in out in -

Aufbau des BSP Baums möglichst geringe Zahl von Knoten möglichst geringe Baumhöhe schlechtester Fall konvexe Polygone (bezüglich einer Kante liegen alle anderen Kanten immer in der gleichen Halbebene) Generierung von Hilfskanten zur Balancierung des Baums möglich

Anwendung Lösen des Verdeckungsproblems in 2D 3 2 3 2b 2a + + 1-1 + + 1 3 4 + - + - 4 4 + 2b 2a Szene Raumunterteilung BSP Baum

Anwendung Betrachterposition ist gegeben zeichne entfernten Teilbaum zeichen Wurzel zeichne Teilbaum des Betrachters Regel wird rekursiv angewendet ermöglicht back-to-front rendering Beispiel: Betrachter ist in 1- zeichne 1+, 1, 1- rekursive Anwendung auf 1+ and 1- Betrachter ist in 3+ zeichne 3, 2b Betrachter ist in 4- zeichne 2a, 4 + 3 + 1 Betrachter 2b 2b 4 + 2a 1 + 3 4 + - + - - 2a + BSP Baum

Zusammenhang k-d Baum, Quadtree, BSP Baum uniformes Gitter Quadtree/Octree k-d Baum BSP Baum mehrdimensionaler Raum wird in Bereiche unterteilt Knoten beschreiben Bereiche, Blätter enthalten Schlüssel unterschiedliche Zahl von Freiheitsgraden Bereichsunterteilung ist der Schlüsselverteilung angepasst

Überblick Einführung k-d Baum BSP Baum R Baum

Anwendung Simulationsumgebungen, z. B. Robotik Objektoberflächen werden durch Polygone (Dreiecke) repräsentiert Verfahren zur Kollisionsdetektion stellen fest, ob Objekte sich durchdringen (kollidieren) Latombe, Stanford

Motivation Kollisionsdetektionsaufwand für n Polygone ist in Bereichsbäume können den Test beschleunigen O(n 2 ) wenn zwei Bereiche nicht überlappen, können die darin enthaltenen Objekte nicht kollidieren Bereiche überlappen nicht keine Kollision Bereiche überlappen Kollision möglich

Bereichsbeschreibung (Typen von Begrenzungsvolumina) Kugel an Hauptachsen ausgerichtete Box an Objekt ausgerichtete Box k-dop konvexe Hülle Auswahlkriterien effizienter Überlappungstest eng anliegend am Objekt effiziente Generierung und Aktualisierung bei Objekttransformation speichereffizient

Kugel Kugel sind repräsentiert durch Mittelpunkt Radius r c c 1 c 2 r 2 zwei Kugel überlappen nicht, wenn r 1 (c 1 c 2 )(c 1 c 2 )>(r 1 +r 2 ) 2

Ausgerichtete Quader AABB AABB-Repräsentation Mittelpunkt Radien, c r x r y y c 1 zwei AABBs in 2D überlappen nicht, wenn 1 (c 1 c 2 ) 0 0 (c 1 c 2 ) 1 >r x 1+r x 2 >r y 1 +ry 2 c 2 r y 2 r x 2 x

Optimales Begrenzungsvolumen schwer zu bestimmen Approximationsqualität Effizienz des Überlappungs-Tests Kugel an Hauptachsen ausgerichtete Box an Objekt ausgerichtete Box k-dop konvexe Hülle

Bereichsbaum Hierarchie von Begrenzungsvolumina

Datenstruktur Knoten enthalten Bereiche / Begrenzungsvolumina Blätter enthalten Objektprimitive (Polygone, Dreiecke) BV für Teile des Objekts BV für das ganze Objekt BV BV BV BV BV BV für wenige Objektprimitive Polygone Polygone Polygone

Überlappungs-Test wenn zwei Bereiche überlappen, werden die Kinder rekursiv getestet an Blättern werden Polygone gegen Polygone oder BVs getestet effizientes Aussondern von Bereichen, die nicht kollidieren können

Zusammenfassung (1) Begrenzungsvolumen (2) Bereichsbaum Kugel AABB OBB k-dop (3) Kollisionstest

Implementierung des Bereichsbaums zur Kollisionsdetektion Ziele balancierter Baum eng anliegende Bereiche / Begrenzungsvolumina minimale Überlappung von Bereichen in einer Ebene des Baums (R* - Baum) Parameter Typ des Bereichs / Begrenzungsvolumens top-down / bottom-up was wird unterteilt / zusammengeführt: Polygone oder Bereiche wieviel Polygone pro Blatt

Implementierung des Begrenzungsvolumens ausgerichtete Quader (AABB) sind einfach über die Bereichsgrenzen der Polygone bestimmt (xmin, xmax, ymin, ymax) aber: AABBs müssen bei Rotation der Polygone neu berechnet werden Kugeln sind in der Generierung aufwendiger, können aber bei Rotationen und Translationen des Objekts beibehalten werden.

Zusammenfassung Blattsuchbäume k-d Baum Octree, Quadtree BSP Baum R Baum Schlüssel sind in Blättern gespeichert erlauben Bereichsanfragen in mehreren Dimensionen Anwendungen Datenbanken Rendering Kollisionsdetektion

Nächstes Thema Algorithmen / Datenstrukturen Zusammenfassung