Algorithmen II Vorlesung am

Größe: px
Ab Seite anzeigen:

Download "Algorithmen II Vorlesung am"

Transkript

1 Algorithmen II Vorlesung am Algorithmische Geometrie: Schnitte von Strecken Sweep-Line INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum II Wintersemester 2013/2014 in der Helmholtz-Gemeinschaft

2 Grundlagen

3 Strecken Definition: Konvexkombination (Definition 6.1) Für zwei Punkte p 1 und p 2 (in der Ebene) und α [0, 1] ist der Punkt p = αp 1 + (1 α)p 2 eine Konvexkombination von p 1 und p 2. α = 1 4 α = 1 2 p 1 p 2 Definition: Strecke (Definition 6.2) Die Menge aller Konvexkombinationen zweier Punkte p 1, p 2 ist die Strecke p 1 p 2 zwischen p 1 und p 2. Ist die Reihenfolge von p 1 und p 2 von Bedeutung, so sprechen wir von der gerichteten Strecke p 1 p 2. p 1 p 2 p 1 p 2 p 1 p 2 p 1 p 2

4 Strecken Definition: Konvexkombination (Definition 6.1) Für zwei Punkte p 1 und p 2 (in der Ebene) und α [0, 1] ist der Punkt p = αp 1 + (1 α)p 2 eine Konvexkombination von p 1 und p 2. α = 1 4 α = 1 2 p 1 p 2 Definition: Strecke (Definition 6.2) Die Menge aller Konvexkombinationen zweier Punkte p 1, p 2 ist die Strecke p 1 p 2 zwischen p 1 und p 2. Ist die Reihenfolge von p 1 und p 2 von Bedeutung, so sprechen wir von der gerichteten Strecke p 1 p 2. p 1 p 2 p 1 p 2 p 2 p 1 p 1 p 2 Grundlegende Fragestellungen: 1. Gegeben drei Punkte p 0, p 1, p 2 in der Ebene. Liegt p 0 p 1 rechts oder links von p 0, p 2? 2. Bilden die beiden Strecken p 0, p 1 und p 1, p 2 bei p 1 einen Rechts- oder einen Linksknick? 3. Schneiden sich zwei gegebene Strecken p 0 p 1 und p 2 p 3? p 2 links p 0 p 1 p 0 Linksknick p 3 p 2 p 1 rechts p 1 p 2 p 0 p 0 p 1 p 2 Rechtsknick

5 Rechts oder Links? Definition: Kreuzprodukt Für Strecken p 0 p 1 und p 0 p 2 mit p 0 = (0, 0), p 1 = (x 1, y 1 ) und p 2 = (x 2, y 2 ) ist das Kreuzprodukt p 1 p 2 definiert als ( ) x1 x p 1 p 2 = det 2 = x y 1 y 1 y 2 x 2 y 1 = (p 2 p 1 ) 2 Behauptung: Fläche eines Parallelprogramms (Siehe Lineare Algebra) p 1 p 2 ist die Fläche P des Parallelogramms mit Ecken (0, 0), p 1, p 2 und p 1 + p 2. p 1 + p 2 y 2 y 1 p 2 P p 1 p 0 x 2 x 1

6 Rechts oder Links? Definition: Kreuzprodukt Für Strecken p 0 p 1 und p 0 p 2 mit p 0 = (0, 0), p 1 = (x 1, y 1 ) und p 2 = (x 2, y 2 ) ist das Kreuzprodukt p 1 p 2 definiert als ( ) x1 x p 1 p 2 = det 2 = x y 1 y 1 y 2 x 2 y 1 = (p 2 p 1 ) 2 Behauptung: Fläche eines Parallelprogramms (Siehe Lineare Algebra) p 1 p 2 ist die Fläche P des Parallelogramms mit Ecken (0, 0), p 1, p 2 und p 1 + p 2. p 1 + p 2 p 1 + p 2 y 2 y 1 p 2 P p 1 y 2 y 1 p 2 p 1 y 2 y 1 p 2 y 2 y 1 R p 0 x 2 x 1 p 0 x 2 x 1 t p 0 x 2 x 1 x 2 t p 0 t x 1 Lemma Für p 0 = (0, 0), p 1 und p 2 liegt p 0 p 1 rechts von p 0 p 2 genau dann wenn p 1 p 2 > 0.

7 Rechts oder Links? Lemma Für p 0 = (0, 0), p 1 und p 2 liegt p 0 p 1 rechts von p 0 p 2 genau dann wenn p 1 p 2 > 0. Um nun zu entscheiden, ob p 0 p 1 für beliebiges p 0 rechts von p 0 p 2 liegt, muss getestet werden ob (p 1 p 0 ) (p 2 p 0 ) > 0 gilt. Die Strecken p 0 p 1 und p 1 p 2 bilden einen Rechtsknick genau dann wenn p 0 p 2 rechts von p 0 p 1 liegt.

8 Rechts oder Links? Lemma Für p 0 = (0, 0), p 1 und p 2 liegt p 0 p 1 rechts von p 0 p 2 genau dann wenn p 1 p 2 > 0. Um nun zu entscheiden, ob p 0 p 1 für beliebiges p 0 rechts von p 0 p 2 liegt, muss getestet werden ob (p 1 p 0 ) (p 2 p 0 ) > 0 gilt. Die Strecken p 0 p 1 und p 1 p 2 bilden einen Rechtsknick genau dann wenn p 0 p 2 rechts von p 0 p 1 liegt. Vorteile dieser Methode: Es müssen Additionen, Subtraktionen, Multiplikationen und Vergleiche durchgeführt werden (insbesondere keine Divisionen, Wurzeln, etc.) Bei Ganzzahligen Koordinaten ist das Ergebnis und alle Zwischenschritte Ganzzahlig. Keine Fehler durch Ungenauigkeiten bei Gleitkommaarithmetik.

9 Schneiden sich zwei Strecken? Definition: Umschließendes Rechteck (bounding box) (Definition 6.4) Das Umschließende Rechteck (bounding box) eines geometrischen Objekts ist das kleinste achsenparallele Rechteck, das diese Objekt enthält. Notwendige Bedingung: Zwei Strecken können sich nur schneiden, wenn sich auch ihre umschließenden Rechtecke schneiden.

10 Schneiden sich zwei Strecken? Definition: Umschließendes Rechteck (bounding box) (Definition 6.4) Das Umschließende Rechteck (bounding box) eines geometrischen Objekts ist das kleinste achsenparallele Rechteck, das diese Objekt enthält. Notwendige Bedingung: Zwei Strecken können sich nur schneiden, wenn sich auch ihre umschließenden Rechtecke schneiden. Das umschließende Rechteck ( p 1, p 2 ) zu p 1 p 2 ist beschrieben durch den linken unteren Punkt p 1 = ( x 1, ŷ 1 ) und den rechten oberen Punkte p 2 = ( x 2, ŷ 2 ) mit: p 2 = (x 2, y 2 ) p 2 = ( x 2, ŷ 2 ) x 1 = min(x 1, x 2 ) ŷ 1 = min(y 1, y 2 ) x 2 = max(x 1, x 2 ) ŷ 2 = max(y 1, y 2 ) p 1 = ( x 1, ŷ 1 ) p 1 = (x 1, y 1 )

11 Schneiden sich zwei Strecken? Definition: Umschließendes Rechteck (bounding box) (Definition 6.4) Das Umschließende Rechteck (bounding box) eines geometrischen Objekts ist das kleinste achsenparallele Rechteck, das diese Objekt enthält. Notwendige Bedingung: Zwei Strecken können sich nur schneiden, wenn sich auch ihre umschließenden Rechtecke schneiden. Das umschließende Rechteck ( p 1, p 2 ) zu p 1 p 2 ist beschrieben durch den linken unteren Punkt p 1 = ( x 1, ŷ 1 ) und den rechten oberen Punkte p 2 = ( x 2, ŷ 2 ) mit: p 2 = (x 2, y 2 ) p 2 = ( x 2, ŷ 2 ) x 1 = min(x 1, x 2 ) ŷ 1 = min(y 1, y 2 ) x 2 = max(x 1, x 2 ) ŷ 2 = max(y 1, y 2 ) p 1 = ( x 1, ŷ 1 ) p 1 = (x 1, y 1 ) ŷ 2 ŷ 4 Zwei Rechtecke ( p 1, p 2 ) und ( p 3, p 4 ) schneiden sich genau dann, wenn x 2 x 3 x 4 x 1 ŷ 2 ŷ 3 ŷ 4 ŷ 1. ŷ 1 ŷ 3 x 1 x 3 x 2 x 4

12 Schneiden sich zwei Strecken? Definition (Definition 6.5) p 1 p 2 berührt die Gerade durch p 3 p 4 falls p 1 und p 2 auf unterschiedlichen Seiten von p 3 p 4 liegen oder einer von ihnen auf der Gerade liegt. Ob eine Strecke die Gerade durch zwei Punkte berührt kann wieder mithilfe des Kreuzprodukts getestet werden.

13 Schneiden sich zwei Strecken? Definition (Definition 6.5) p 1 p 2 berührt die Gerade durch p 3 p 4 falls p 1 und p 2 auf unterschiedlichen Seiten von p 3 p 4 liegen oder einer von ihnen auf der Gerade liegt. Ob eine Strecke die Gerade durch zwei Punkte berührt kann wieder mithilfe des Kreuzprodukts getestet werden. Lemma Zwei Strecken schneiden sich genau dann, wenn ihre umschließenden Rechtecke sich schneiden und jede der beiden Strecken die Gerade durch die jeweils andere Strecke berührt. Vorteile dieser Methode: Wie zuvor müssen Additionen, Subtraktionen, Multiplikationen und Vergleiche durchgeführt werden (insbesondere keine Divisionen, Wurzeln, etc.) Bei Ganzzahligen Koordinaten ist das Ergebnis und alle Zwischenschritte Ganzzahlig. Keine Fehler durch Ungenauigkeiten bei Gleitkommaarithmetik.

14 Schnitte von Strecken Sweep-Line

15 Schnitte von Strecken Problem: Schnitte von Strecken Gegeben seien n Strecken. Schneiden sich zwei dieser Strecken? Einfache Lösung: Teste für jedes Streckenpaar ob sie sich schneiden. ( n 2) O(n 2 ) Paare.

16 Schnitte von Strecken Problem: Schnitte von Strecken Gegeben seien n Strecken. Schneiden sich zwei dieser Strecken? Einfache Lösung: Teste für jedes Streckenpaar ob sie sich schneiden. ( n 2) O(n 2 ) Paare. Heute: Sweep-Line-Algorithmus mit Laufzeit O(n log n). Definition: Sweep-Line (Definition 6.6) Eine Sweep-Line ist eine imaginäre vertikale Linie, die eine Menge geometrischer Objekte von links nach rechts passiert. Eine Sweep-Line ist durch ihre x-koordinate eindeutig bestimmt.

17 Vergleichbare Strecken Wir machen folgende Annahmen: Keine der Strecken ist vertikal. In jedem Punkt schneiden sich höchstens zwei Strecken.

18 Vergleichbare Strecken Wir machen folgende Annahmen: Keine der Strecken ist vertikal. In jedem Punkt schneiden sich höchstens zwei Strecken. Definition: Vergleichbare Strecken Zwei Strecken s 1 und s 2 sind bezüglich Sweep-Line x vergleichbar, falls beide x schneiden und sich nicht gegenseitig an der Stelle x schneiden. Es gilt dann: s 1 < x s 2 (s 2 < x s 1 ) falls s 1 in x unterhalb (oberhalb) von s 2 liegt. a b d c < x1 b < x1 a c b < x2 d < x2 c x 1 x 2 Für jedes x ist < x eine totale Ordnung auf den Strecken, die x schneiden und sich nicht bei x gegenseitig schneiden.

19 Sich schneidende Strecken Beobachtung: Sich schneidende Strecken Für zwei Strecken s 1, s 2 die sich schneiden gibt es Sweep-Lines x 1 und x 2, sodass s 1 < x1 s 2 und s 2 < x2 s 1. x 1 und x 2 können sogar so gewählt werden, dass s 1 und s 2 bezgl. < x1 und < x2 direkt aufeinanderfolgen. a b d c < x1 b < x1 a c b < x2 c < x2 a x 1 x 2 Folgerung Es ist ausreichend, alle Streckenpaare auf Schnitt zu prüfen, die bezüglich < x irgendeiner Sweep-Line x direkt aufeinanderfolgen.

20 Sweep-Line Algorithmus Sweep-Line Algorithmen verwenden typischerweise zwei Datenmengen: 1. Sweep-Line Zustand: Objekte (und ggf. Beziehungen zwischen ihnen), die von der aktuellen Sweep-Line geschnitten werden. 2. Event-Point Schedule: Folge sortierter x-koordinaten; die Haltepunkte (Event-Points) der Sweep-Line. Der Sweep-Line Zustand ändert sich nur an solchen Event-Points.

21 Sweep-Line Algorithmus Sweep-Line Algorithmen verwenden typischerweise zwei Datenmengen: 1. Sweep-Line Zustand: Objekte (und ggf. Beziehungen zwischen ihnen), die von der aktuellen Sweep-Line geschnitten werden. 2. Event-Point Schedule: Folge sortierter x-koordinaten; die Haltepunkte (Event-Points) der Sweep-Line. Der Sweep-Line Zustand ändert sich nur an solchen Event-Points. Für unser Problem: 1. Sweep-Line Zustand: Alle Strecken, die die aktuelle Sweep-Line schneiden, von unten nach oben sortiert. 2. Event-Point Schedule: Die Endpunkte aller Strecken, von links nach rechts sortiert. Events: An jedem Event-Point taucht eine neue Strecke auf oder eine schon vorhandene verschwindet. Folgendes muss getan werden: Neue Strecke in den Sweep-Line Zustand einfügen bzw. alte herauslöschen. Überprüfen ob sich neuerdings benachbarte Streckenpaare schneiden.

22 Sweep-Line Algorithmus INTERSECT(S) T Sortiere Endpunkte der Strecken von links nach rechts if zwei Endpunkte sind gleich then gib TRUE zurück foreach Endpunkt p in der sortierten Liste do if p linker Endpunkt von Strecke s then INSERT(T, s) if s schneidet ABOVE(T, s) then gib TRUE zurück if s schneidet BELOW(T, s) then gib TRUE zurück Event-Point Schedule if p rechter Endpunkt von Strecke s then if ABOVE(T, s) schneidet BELOW(T, s) then gib TRUE zurück DELETE(T, s) gib FALSE zurück Sweep-Line Zustand (ABOVE(T, s) (BELOW(T, s)) ist die Strecke unmittelbar über (unter) s in T )

23 Sweep-Line Algorithmus INTERSECT(S) T Sortiere Endpunkte der Strecken von links nach rechts if zwei Endpunkte sind gleich then gib TRUE zurück foreach Endpunkt p in der sortierten Liste do if p linker Endpunkt von Strecke s then INSERT(T, s) if s schneidet ABOVE(T, s) then gib TRUE zurück if s schneidet BELOW(T, s) then gib TRUE zurück Event-Point Schedule if p rechter Endpunkt von Strecke s then if ABOVE(T, s) schneidet BELOW(T, s) then gib TRUE zurück DELETE(T, s) gib FALSE zurück Sweep-Line Zustand O(1) O(n log n) O(n) (ABOVE(T, s) (BELOW(T, s)) ist die Strecke unmittelbar über (unter) s in T )

24 Sweep-Line Algorithmus INTERSECT(S) T Sortiere Endpunkte der Strecken von links nach rechts if zwei Endpunkte sind gleich then gib TRUE zurück foreach Endpunkt p in der sortierten Liste do if p linker Endpunkt von Strecke s then INSERT(T, s) if s schneidet ABOVE(T, s) then gib TRUE zurück if s schneidet BELOW(T, s) then gib TRUE zurück Event-Point Schedule if p rechter Endpunkt von Strecke s then if ABOVE(T, s) schneidet BELOW(T, s) then gib TRUE zurück DELETE(T, s) gib FALSE zurück Sweep-Line Zustand O(1) O(n log n) O(n) (ABOVE(T, s) (BELOW(T, s)) ist die Strecke unmittelbar über (unter) s in T ) Benutze für T einen AVL-Baum (oder ähnliches): Operationen INSERT(T, s), DELETE(T, s), ABOVE(T, s) und BELOW(T, s) benötigen O(log n) Zeit.

25 Sweep-Line Algorithmus INTERSECT(S) T Sortiere Endpunkte der Strecken von links nach rechts if zwei Endpunkte sind gleich then gib TRUE zurück foreach Endpunkt p in der sortierten Liste do if p linker Endpunkt von Strecke s then INSERT(T, s) if s schneidet ABOVE(T, s) then gib TRUE zurück if s schneidet BELOW(T, s) then gib TRUE zurück Event-Point Schedule if p rechter Endpunkt von Strecke s then if ABOVE(T, s) schneidet BELOW(T, s) then gib TRUE zurück DELETE(T, s) gib FALSE zurück Sweep-Line Zustand Benutze für T einen AVL-Baum (oder ähnliches): Operationen INSERT(T, s), DELETE(T, s), ABOVE(T, s) und BELOW(T, s) benötigen O(log n) Zeit. O(1) O(n log n) O(n) O(log n) O(log n) (ABOVE(T, s) (BELOW(T, s)) ist die Strecke unmittelbar über (unter) s in T )

26 Sweep-Line Algorithmus INTERSECT(S) T Sortiere Endpunkte der Strecken von links nach rechts if zwei Endpunkte sind gleich then gib TRUE zurück foreach Endpunkt p in der sortierten Liste do if p linker Endpunkt von Strecke s then INSERT(T, s) if s schneidet ABOVE(T, s) then gib TRUE zurück if s schneidet BELOW(T, s) then gib TRUE zurück Event-Point Schedule if p rechter Endpunkt von Strecke s then if ABOVE(T, s) schneidet BELOW(T, s) then gib TRUE zurück DELETE(T, s) gib FALSE zurück Sweep-Line Zustand Benutze für T einen AVL-Baum (oder ähnliches): Operationen INSERT(T, s), DELETE(T, s), ABOVE(T, s) und BELOW(T, s) benötigen O(log n) Zeit. O(1) O(n log n) O(n) O(n log n) O(log n) O(log n) O(1) (ABOVE(T, s) (BELOW(T, s)) ist die Strecke unmittelbar über (unter) s in T )

27 Sweep-Line Algorithmus INTERSECT(S) T Sortiere Endpunkte der Strecken von links nach rechts if zwei Endpunkte sind gleich then gib TRUE zurück foreach Endpunkt p in der sortierten Liste do if p linker Endpunkt von Strecke s then INSERT(T, s) Sweep-Line Zustand Event-Point Schedule O(n log n) O(1) O(n log n) O(n) O(n log n) O(log n) if s schneidet ABOVE(T, s) then gib TRUE zurück if s schneidet BELOW(T, s) then gib TRUE zurück if p rechter Endpunkt von Strecke s then if ABOVE(T, s) schneidet BELOW(T, s) then gib TRUE zurück O(log n) DELETE(T, s) gib FALSE zurück O(1) Benutze für T einen AVL-Baum (oder ähnliches): Operationen INSERT(T, s), DELETE(T, s), ABOVE(T, s) und BELOW(T, s) benötigen O(log n) Zeit. Gesamtlaufzeit von O(n log n) (ABOVE(T, s) (BELOW(T, s)) ist die Strecke unmittelbar über (unter) s in T )

28 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c g b d e f a Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1

29 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c c g b d e f a Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1

30 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c c g b d e f a a Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 a schneidet c nicht

31 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c c g b b d e f a a Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 b schneidet weder a noch c

32 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c c g b b d e f a a Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 a schneidet c nicht

33 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c d b c d e f g a a Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 d schneidet weder a noch c

34 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c d e a b c d a e f g Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 e schneidet weder d noch a

35 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c d f e a b c d a e f g Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 f schneidet weder d noch e

36 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c d f e a b c d a e f g Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 f schneidet c nicht

37 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c g c g f e a b d a e f Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 g schneidet weder f noch c

38 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand c g c g f e a b d a e f Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1

39 Sweep-Line Algorithmus Beispiel Sweep-Line Zustand g c g f e a b d a e f Event-Point Schedule c 1 a 1 b 2 d 1 e 1 f1 d2 g 1 c 2 e 2 g 2 f2 a 2 b 1 f schneidet a! gib TRUE zurück

40 Anmerkungen Der vorgestellte Algorithmus prüft nur, ob es mindestens eine Kreuzungen gibt und kann die erste gefundene Kreuzung ausgeben. Man kann den Algorithmus leicht anpassen um alle Kreuzungen zu finden. Man benötigt dann O(n log n + k log n) Zeit, wobei k die Anzahl an Kreuzungen ist. Beachte: k O(n 2 ). Es gibt auch einen Algorithmus mit Laufzeit O(n log n + k), der alle Kreuzungen findet.

41 Eine geometrische Datenstruktur Quadtree

42 Motivation Szenario: großer Straßengraph zeige nur einen kleinen Ausschnitt Problem: Bereichsanfrage Gegeben eine Punktmenge P (z.b. die Knoten in einem Straßengraph) sowie ein Rechteck R, finde alle Punkte aus P, die in R liegen.

43 Motivation Szenario: großer Straßengraph zeige nur einen kleinen Ausschnitt Problem: Bereichsanfrage Gegeben eine Punktmenge P (z.b. die Knoten in einem Straßengraph) sowie ein Rechteck R, finde alle Punkte aus P, die in R liegen. Einfache Lösung: Teste für jeden Punkt p P, ob p in R liegt. Laufzeit O( P ), dabei werden ggf. sehr viel weniger Punkte angezeigt. Ziel im Folgenden: Nutze aus, dass nur ein sehr kleiner Anteil der P Punkte angezeigt werden muss.

44 Hierarchische Unterteilung: Quadtree Betrachte Punktmenge P in einem Quadrat Q. Q

45 Hierarchische Unterteilung: Quadtree Betrachte Punktmenge P in einem Quadrat Q. Q Q NW Q NO P NW P NO P SW P SO Q SW Q SO Wenn P > 1: Unterteile Q in vier Quadrate Q NW, Q NO, Q SW, Q SO. Zerlege P entsprechend in P NW, P NO, P SW, P SO, sodass P i komplett in Q i liegt (für i {NW, NO, SW, SO}). Fahre rekursiv mit P i und Q i fort (für i {NW, NO, SW, SO}).

46 Hierarchische Unterteilung: Quadtree Betrachte Punktmenge P in einem Quadrat Q. Interpretiere die Quadrate als Knoten eines Q Baums: Q NW Q NO Q P NW P NO Q NW Q NO Q SW Q SO P SW P SO Q SW Q SO Wenn P > 1: Unterteile Q in vier Quadrate Q NW, Q NO, Q SW, Q SO. Zerlege P entsprechend in P NW, P NO, P SW, P SO, sodass P i komplett in Q i liegt (für i {NW, NO, SW, SO}). Fahre rekursiv mit P i und Q i fort (für i {NW, NO, SW, SO}).

47 Hierarchische Unterteilung: Quadtree Betrachte Punktmenge P in einem Quadrat Q. Interpretiere die Quadrate als Knoten eines Q Baums: Q NW Q NO Q P NW P NO Q NW Q NO Q SW Q SO P SW P SO Q SW Q SO Wenn P > 1: Unterteile Q in vier Quadrate Q NW, Q NO, Q SW, Q SO. Zerlege P entsprechend in P NW, P NO, P SW, P SO, sodass P i komplett in Q i liegt (für i {NW, NO, SW, SO}). Fahre rekursiv mit P i und Q i fort (für i {NW, NO, SW, SO}).

48 Hierarchische Unterteilung: Quadtree Betrachte Punktmenge P in einem Quadrat Q. Interpretiere die Quadrate als Knoten eines Q Baums: Q NW Q NO Q P NW P NO Q NW Q NO Q SW Q SO P SW P SO Q SW Q SO Wenn P > 1: Unterteile Q in vier Quadrate Q NW, Q NO, Q SW, Q SO. Zerlege P entsprechend in P NW, P NO, P SW, P SO, sodass P i komplett in Q i liegt (für i {NW, NO, SW, SO}). Fahre rekursiv mit P i und Q i fort (für i {NW, NO, SW, SO}).

49 Hierarchische Unterteilung: Quadtree Betrachte Punktmenge P in einem Quadrat Q. Interpretiere die Quadrate als Knoten eines Q Baums: Q NW Q NO Q P NW P NO Q NW Q NO Q SW Q SO P SW P SO Q SW Q SO Quadtree T (P) bezüglich Quadrat Q Speichere zusätzlich für jedes Blatt in T (P) den eventuell enthaltenen Knoten.

50 Aufbau des Quadtrees QUADTREE(P, Q) (Rückgabe: Wurzel von T (P) bezüglich Q) v Q neuer Knoten, der Q repräsentiert if P > 1 then foreach Q i mit i {NW, NO, SW, SO} do P i Punkte aus P, die in Q i liegen v Qi QUADTREE(P i, Q i ) Füge v Qi else points(v Q ) P return v Q als Kind von v Q ein

51 Aufbau des Quadtrees QUADTREE(P, Q) (Rückgabe: Wurzel von T (P) bezüglich Q) v Q neuer Knoten, der Q repräsentiert if P > 1 then foreach Q i mit i {NW, NO, SW, SO} do P i Punkte aus P, die in Q i liegen v Qi QUADTREE(P i, Q i ) Füge v Qi else points(v Q ) P als Kind von v Q ein O(1) O( P ) Rekursion O(1) O(1) return v Q

52 Aufbau des Quadtrees QUADTREE(P, Q) (Rückgabe: Wurzel von T (P) bezüglich Q) v Q neuer Knoten, der Q repräsentiert if P > 1 then foreach Q i mit i {NW, NO, SW, SO} do P i Punkte aus P, die in Q i liegen v Qi QUADTREE(P i, Q i ) Füge v Qi else points(v Q ) P als Kind von v Q ein O(1) O( P ) Rekursion O(1) O(1) return v Q sei d die Tiefe des Quadtrees T (P) d + 1 Lagen Satz: Berechnung des Quadtrees Der Quadtree T (P) einer Punktmenge P enthält O((d + 1) P ) Knoten und kann in O((d + 1) P ) Zeit berechnet werden. Beweis: nächste Folie

53 Aufbau des Quadtrees d + 1 Lagen sei d die Tiefe des Quadtrees T (P) Satz: Berechnung des Quadtrees Der Quadtree T (P) einer Punktmenge P enthält O((d + 1) P ) Knoten und kann in O((d + 1) P ) Zeit berechnet werden. Beweis: zeige die folgenden Aussagen: Jede Lage enthält nur O( P ) Knoten. Für alle Knoten v Qi in einer Lage benötigt der Aufruf QUADTREE(P i, Q i ) insgesamt nur O( P ) Zeit.

54 Aufbau des Quadtrees d + 1 Lagen sei d die Tiefe des Quadtrees T (P) Satz: Berechnung des Quadtrees Der Quadtree T (P) einer Punktmenge P enthält O((d + 1) P ) Knoten und kann in O((d + 1) P ) Zeit berechnet werden. Beweis: zeige die folgenden Aussagen: Jede Lage enthält nur O( P ) Knoten. Immer vier Knoten in einer Lage haben einen gemeinsamen Vorgänger. Das Quadrat von mind. einem der vier Knoten enthält einen Punkt aus P. Jeder Punkt aus P ist pro Lage in nur einem Quadrat enthalten. Für alle Knoten v Qi in einer Lage benötigt der Aufruf QUADTREE(P i, Q i ) insgesamt nur O( P ) Zeit.

55 Aufbau des Quadtrees d + 1 Lagen sei d die Tiefe des Quadtrees T (P) Satz: Berechnung des Quadtrees Der Quadtree T (P) einer Punktmenge P enthält O((d + 1) P ) Knoten und kann in O((d + 1) P ) Zeit berechnet werden. Beweis: zeige die folgenden Aussagen: Jede Lage enthält nur O( P ) Knoten. Immer vier Knoten in einer Lage haben einen gemeinsamen Vorgänger. Das Quadrat von mind. einem der vier Knoten enthält einen Punkt aus P. Jeder Punkt aus P ist pro Lage in nur einem Quadrat enthalten. Für alle Knoten v Qi in einer Lage benötigt der Aufruf QUADTREE(P i, Q i ) insgesamt nur O( P ) Zeit. Betrachte Knoten v Qi für den Q i keinen Punkt aus P enthält (also P i = ): O(1) Zeit pro Knoten insgesamt O( P ). Andernfalls: O( P i ) Zeit für Knoten v Qi insgesamt O( P ), da P i P

56 Aufbau des Quadtrees d + 1 Lagen Beweis: zeige die folgenden Aussagen: sei d die Tiefe des Quadtrees T (P) Satz: Berechnung des Quadtrees Der Quadtree T (P) einer Punktmenge P enthält O((d + 1) P ) Knoten und kann in O((d + 1) P ) Zeit berechnet werden. (Hinweis: (d + 1), da d = 0 gelten könnte) Jede Lage enthält nur O( P ) Knoten. Immer vier Knoten in einer Lage haben einen gemeinsamen Vorgänger. Das Quadrat von mind. einem der vier Knoten enthält einen Punkt aus P. Jeder Punkt aus P ist pro Lage in nur einem Quadrat enthalten. Für alle Knoten v Qi in einer Lage benötigt der Aufruf QUADTREE(P i, Q i ) insgesamt nur O( P ) Zeit. Betrachte Knoten v Qi für den Q i keinen Punkt aus P enthält (also P i = ): O(1) Zeit pro Knoten insgesamt O( P ). Andernfalls: O( P i ) Zeit für Knoten v Qi insgesamt O( P ), da P i P

57 Tiefe des Quadtrees sei d die Tiefe des Quadtrees T (P) d + 1 Lagen Satz: Berechnung des Quadtrees Der Quadtree T (P) einer Punktmenge P enthält O((d + 1) P ) Knoten und kann in O((d + 1) P ) Zeit berechnet werden. Satz: Tiefe des Quadtrees Die Tiefe d von T (P) ist höchstens log 2 ( s c ) Beweis: Übungsaufgabe Seitenlänge s P NW P SW P NO P SO minimaler Abstand zwischen zwei Punkten c Für gleichmäßig verteilte Punkte ist die Tiefe d von T (P) klein. Beispiel: Liegen die Punkte auf einem polynomiell großen Gitter (z.b.: P 2 P 3 ), so gilt d O(log P ).

58 Bereichsanfrage Szenario: großer Straßengraph zeige nur einen kleinen Ausschnitt Problem: Bereichsanfrage Gegeben eine Punktmenge P (die Knoten in dem Straßengraph) sowie ein Rechteck R, finde alle Punkte aus P die in R liegen. Einfache Lösung: Teste für jeden Punkt p P, ob p in R liegt. Laufzeit O( P ), dabei werden ggf. sehr viel weniger Punkte angezeigt. Ziel im Folgenden: Nutze aus, dass nur ein sehr kleiner Anteil der P Punkte angezeigt werden muss.

59 Bereichsanfrage BEREICHSANFRAGE(v Q, R) (v Q ist ein Knoten von T (P) (zu Beginn die Wurzel)) if Q R then gib alle Punkte in Q aus else if v Q ist ein Blatt then if Q R enthält einen Punkt p P then gibt p aus else foreach Kind v Qi von v Q mit i {NW, NO, SW, SO} do if Q i R then BEREICHSANFRAGE(v Qi, R)

60 Bereichsanfrage BEREICHSANFRAGE(v Q, R) (v Q ist ein Knoten von T (P) (zu Beginn die Wurzel)) if Q R then gib alle Punkte in Q aus else if v Q ist ein Blatt then if Q R enthält einen Punkt p P then gibt p aus else foreach Kind v Qi von v Q mit i {NW, NO, SW, SO} do if Q i R then BEREICHSANFRAGE(v Qi, R) vorzeitiges Rekursionsende Es kann passieren, dass der gesamte Baum T (P) traversiert wird, aber: Rekursionsende Rekursionsaufruf Ein Quadrat außerhalb von R wird im Rekursionsaufruf nicht weiter verfolgt. Die Traversierung wird vorzeitig abgebrochen, wenn ein Quadrat komplett in R liegt. (Es werden nur noch die enthaltenen Knoten ausgegeben. Übung: Wie geht das schnell?)

61 Bereichsanfrage Beispiel P NW P NO P SW P SO R

62 Bereichsanfrage Beispiel P NW P NO P SW P SO R Starte mit der Wurzel

63 Bereichsanfrage Beispiel P NW P NO P SW P SO R Starte mit der Wurzel Rekursionsaufruf für nur eins der Kinder

64 Bereichsanfrage Beispiel P NW P NO P SW P SO R Starte mit der Wurzel Rekursionsaufruf für nur eins der Kinder Rekursionsaufruf für nur eins der Kinder

65 Bereichsanfrage Beispiel P NW P NO P SW P SO R Starte mit der Wurzel Rekursionsaufruf für nur eins der Kinder Rekursionsaufruf für nur eins der Kinder Rekursionsaufruf für alle vier Kinder

66 Bereichsanfrage Beispiel P NW P NO P SW P SO R Starte mit der Wurzel Rekursionsaufruf für nur eins der Kinder Rekursionsaufruf für nur eins der Kinder Rekursionsaufruf für alle vier Kinder Rekursionsende (Blätter erreicht): gib resultierende Knoten aus

67 Bereichsanfrage Beispiel P NW P NO P SW P SO R

68 Bereichsanfrage Beispiel P NW P NO P SW P SO Starte mit der Wurzel R

69 Bereichsanfrage Beispiel P NW P NO P SW P SO Starte mit der Wurzel Rekursionsaufruf für alle vier Kinder R

70 Bereichsanfrage Beispiel P NW P NO P SW P SO Starte mit der Wurzel Rekursionsaufruf für alle vier Kinder Süd-Ost-Knoten: vorzeitiger Abbruch und Ausgabe der enthaltenen Punkte R

71 Bereichsanfrage Beispiel P NW P NO P SW P SO Starte mit der Wurzel Rekursionsaufruf für alle vier Kinder Süd-Ost-Knoten: vorzeitiger Abbruch und Ausgabe der enthaltenen Punkte Süd-West-Knoten: Rekursionsaufruf für zwei Kinder Nord-West-Knoten: Rekursionsaufruf für ein Kind R

72 Bereichsanfrage Beispiel P NW P NO P SW P SO Starte mit der Wurzel Rekursionsaufruf für alle vier Kinder Süd-Ost-Knoten: vorzeitiger Abbruch und Ausgabe der enthaltenen Punkte Süd-West-Knoten: Rekursionsaufruf für zwei Kinder Nord-West-Knoten: Rekursionsaufruf für ein Kind Rekursionsende (Blätter erreicht): gib resultierende Knoten aus R

Algorithmische Geometrie Übung am

Algorithmische Geometrie Übung am Algorithmische Geometrie Übung am 16.04.2014 INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmische nationales Forschungszentrum

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung m 29.11.2012 Algorithmishe Geometrie: Shnitte von Streken Sweep-Line INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Lndes Bden-Württemberg und

Mehr

Quad-trees. Benjamin Niedermann Übung Algorithmische Geometrie

Quad-trees. Benjamin Niedermann Übung Algorithmische Geometrie Übung Algorithmische Geometrie Quad-trees LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 02.07.2014 Übersicht Übungsblatt 11 - Quadtrees Motivation:

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 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.04.2014 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

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

Voronoi-Diagramme. 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 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

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

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 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 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 07..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 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 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

Dualität + Quad-trees

Dualität + Quad-trees Übung Algorithmische Geometrie Dualität + Quad-trees LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 30.06.2011 Übersicht Übungsblatt 10 - Dualität

Mehr

Algorithmische Techniken für Geometrische Probleme

Algorithmische Techniken für Geometrische Probleme Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger

Mehr

Quadtrees und Meshing

Quadtrees und Meshing Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.06.2012 Motivation: Meshing von Platinenlayouts Zur Simulation der Hitzeentwicklung

Mehr

Quadtrees und Meshing

Quadtrees und Meshing Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.06.2012 Motivation: Meshing von Platinenlayouts Zur Simulation der Hitzeentwicklung

Mehr

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/36 Datenstrukturen und Algorithmen Vorlesung 20: (K33) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/

Mehr

Quadtrees und Meshing

Quadtrees und Meshing Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 21.06.2011 Motivation: Meshing von Platinenlayouts Zur Simulation

Mehr

Quadtrees und Meshing

Quadtrees und Meshing Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.06.2014 Motivation: Meshing von Platinenlayouts Zur Simulation der Hitzeentwicklung

Mehr

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer Uberblick 1. Anwendung 2. Anforderungen an Netze 3. Quadrantenbaume Quadrantenbaume fur Punktemengen Bestimmung

Mehr

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

Bereichsabfragen II. 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 20.05.2014 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher betrachteter Fall Eingabe:

Mehr

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.07.2012 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Map Labeling INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.07.2012 Objekttypen in Bereichsabfragen y0 y x x0 Bisher

Mehr

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y GRUNDZÜGE DER ALGORITHMISCHEN GEOMETRIE Klausur 18. Juli 2008, 10:15-12:15 Uhr Name:................................... Matrikelnummer:................................... Anzahl beschriebener Blätter (ohne

Mehr

2.2. Schnitte von Liniensegmenten

2.2. Schnitte von Liniensegmenten Wir wenden uns nun dem Problem (2) aus 1 zu. F15 Aus zwei Mengen S1, S2 von Liniensegmenten möchten wir alle Schnittpunkte der Segmente aus S1 mit denen aus S2 ermitteln. Wir legen fest, dass sich zwei

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente! Lage zweier Segmente! Prüfung auf Schnittfreiheit! Formeln zum Geradenschnitt! Feststellen

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

Polygontriangulierung

Polygontriangulierung Übung Algorithmische Geometrie Polygontriangulierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 07.05.204 Ablauf Vergabe der Projekte Übungsblatt

Mehr

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Algorithmische Geometrie 3. Schnitte von Liniensegmenten Algorithmische Geometrie 3. Schnitte von Liniensegmenten JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4.

Mehr

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.05.2011 Geometrie in Datenbanken In einer Personaldatenbank

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.05.2011 Motivation Gegeben eine Position p = (p x, p y )

Mehr

Graphalgorithmen Minimale Spannbäume. Kruskal: Minimaler Spannbaum

Graphalgorithmen Minimale Spannbäume. Kruskal: Minimaler Spannbaum Kruskal: Minimaler Spannbaum (Folie 414, Seite 78 im Skript) 4 6 2 3 1 2 5 3 7 1 4 Kruskals Algorithmus Implementierung (Folie 415, Seite 78 im Skript) Algorithmus function Kruskal(G, w) : A := ; for each

Mehr

Geometrische Algorithmen Segmentschnitt. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Segmentschnitt

Geometrische Algorithmen Segmentschnitt. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Segmentschnitt Folie 1 von 37 Geometrische Algorithmen Segmentschnitt Folie 2 von 37 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

Effizienter Planaritätstest Vorlesung am

Effizienter Planaritätstest Vorlesung am Effizienter Planaritätstest Vorlesung am 23.04.2014 INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER Satz Gegebenen einen Graphen G = (V, E) mit n Kanten und m Knoten, kann in O(n + m) Zeit

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich für Algorithmen und Datenstrukturen Institut für Computergraphik und Algorithmen Technische Universität Wien Einführung

Mehr

Kapitel 6: Algorithmen der Computer-Geometrie

Kapitel 6: Algorithmen der Computer-Geometrie LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Kapitel 6: Algorithmen der Computer-Geometrie Skript zur Vorlesung Geo-Informationssysteme Wintersemester 2015/16 Ludwig-Maximilians-Universität

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.06.2014 1 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.04.2011 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu

Mehr

Polygontriangulierung

Polygontriangulierung Vorlesung Algorithmische Geometrie Polygone triangulieren LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 26.04.2011 Das Kunstgalerie-Problem

Mehr

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.04.2012 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben

Mehr

Geometrische Datenstrukturen

Geometrische Datenstrukturen Geometrische Datenstrukturen 1. Rechteckschnitt 2. Segment Bäume 3. Intervall Bäume 4. Prioritätssuchbäume 1. Rechteckschnitt - Schwenke horizontale Scan-Line von oben nach unten. - Speichere die Schnitte

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Teil 7: Geometrische Algorithmen Martin Hofmann LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 16. April 2016 Martin Hofmann

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

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27 Hallo Welt! für Fortgeschrittene Geometrie I Philipp Erhardt 19. Juli 2011 Philipp Erhardt Geometrie I 19. Juli 2011 1 / 27 Gliederung 1 Grundlagen 2 CCW 3 Punkt-in-Polygon 4 Pick s Theorem 5 Konvexe Hülle

Mehr

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30 Geometrie 2 Julian Fischer 6.7.2009 Julian Fischer Geometrie 2 6.7.2009 1 / 30 Themen 1 Bereichssuche und kd-bäume 1 Bereichssuche 2 kd-bäume 2 Divide and Conquer 1 Closest pair 2 Beispiel: Points (IOI

Mehr

Algorithmen I - Tutorium 28 Nr. 3

Algorithmen I - Tutorium 28 Nr. 3 Algorithmen I - Tutorium 28 Nr. 3 18.05.2016: Spaß mit Listen, Arrays und amortisierter Analyse Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN

Mehr

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Nico Düvelmeyer WS 2009/2010, 12.1.2010 Überblick 1 Definition und grundlegende Eigenschaften (Wied.) 2 Bestimmung des Voronoi Diagramms Gleitebenenverfahren

Mehr

Anwendungen der WSPD & Sichtbarkeitsgraphen

Anwendungen der WSPD & Sichtbarkeitsgraphen Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 08.07.2014 1 Wdh.: Well-Separated Pair Decomposition Def.: Ein Paar disjunkter Punktmengen

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Geometrie II Tiago Joao Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Koordinatenkompression Beispiel: SafeJourney Typische compress-funktion Bereichssuche

Mehr

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009 December 1, 2009 Das Voronoi Diagramm Problemstellung Gegeben: Menge der Zentren P = {p 1,..., p n } R 2 Das Voronoi Diagramm Problemstellung Gegeben: Menge der Zentren P = {p 1,..., p n } R 2 Gesucht:

Mehr

Geometrie. Hallo Welt! für Fortgeschrittene Simon Kuhnle. 11. Juli

Geometrie. Hallo Welt! für Fortgeschrittene Simon Kuhnle. 11. Juli Geometrie Hallo Welt! für Fortgeschrittene 2008 Simon Kuhnle sisikuhn@stud.informatik.uni-erlangen.de 11. Juli 2008 Simon Kuhnle Geometrie 11.07.2008 1 / 33 Übersicht Übersicht 1 Grundlagen 2 ccw 3 Konvexe

Mehr

Proportional Symbol Maps

Proportional Symbol Maps Proportional Symbol Maps Florian Simon 8. Dezember, 2009 Proportional Symbol Maps Gegeben: Punkte p 1,..., p n R 2 mit zugeordneten Werten w 1,..., w n R Proportional Symbol Maps Gegeben: Punkte p 1,...,

Mehr

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität

Mehr

Übungsblatt 7 - Voronoi Diagramme

Übungsblatt 7 - Voronoi Diagramme Karlsruher Institut für Technologie Algorithmische Geometrie Fakultät für Informatik Sommersemester 2012 ITI Wagner Martin Nöllenburg/Andreas Gemsa Übungsblatt 7 - Voronoi Diagramme 1 Voronoi-Zellen Sei

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 16 Programm: Einführung

Mehr

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen 4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

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

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1 Vorlesung Geometrische Algorithmen Sichtbarkeitsgraphen und kurzeste Wege Sven Schuierer Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale

Mehr

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013 Technische Universität Braunschweig Sommersemester 2013 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und Datenstrukturen

Mehr

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK 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 Peter Widmayer

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Dr. Joachim Spoerhase und Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Algorithmische Graphentheorie Sommersemester 2014 10. Vorlesung Planaritätstest Planaritätstest Satz. [Hopcroft & Tarjan,

Mehr

Polygontriangulierung

Polygontriangulierung Übung Algorithmische Geometrie Polygontriangulierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 05.05.2011 Ablauf Besprechung ÜB3 Korrektheitsbeweis

Mehr

Maximale s t-flüsse in Planaren Graphen

Maximale s t-flüsse in Planaren Graphen Maximale s t-flüsse in Planaren Graphen Vorlesung Algorithmen für planare Graphen 6. Juni 2017 Guido Brückner INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017 2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel

Mehr

Anwendungen der WSPD & Sichtbarkeitsgraphen

Anwendungen der WSPD & Sichtbarkeitsgraphen Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 10.07.2012 Wdh.: Well-Separated Pair Decomposition Def.: Ein Paar disjunkter Punktmengen

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Die Forschungsuniversität Meyerhenke, in der Institut für Theoretische Informatik

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

Punktlokalisation 1. Trapez-Zerlegungen. 2. Eine Suchstruktur. 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung

Punktlokalisation 1. Trapez-Zerlegungen. 2. Eine Suchstruktur. 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung Punktlokalisation 1. Trapez-Zerlegungen 2. Eine Suchstruktur 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung 4. Analyse Punktlokalisation Einteilung in Streifen Anfragezeit:

Mehr

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA)

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA) Liniensegmentschnitt Motivation, Überlagerung von Karten, Problemformulierung Ein einfaches Problem und dessen Lösung mit Hilfe des Sweep-Line Prinzips Output-sensitiver Liniensegmentschnittalgorithmus

Mehr

9. Übung Algorithmen I

9. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Musterlösung

Mehr

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Nico Düvelmeyer WS 2009/2010, 8.12.2009 Überblick 1 1-dimensionale Bereichsabfragen 2 Kd-Baum Struktur Aufbau Abfrage mit dem Kd-Baum 3 Range-Baum

Mehr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

Mehr

Übung 13 Algorithmen II

Übung 13 Algorithmen II Michael Axtmann michael.axtmann@kit.edu http://algo2.iti.kit.edu/algorithmenii_ws16.php - 0 Axtmann: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.04.2012 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Ausleuchtung/Überwachung von polygonalen Flächen

Ausleuchtung/Überwachung von polygonalen Flächen 1 Ausleuchtung/Überwachung von polygonalen Flächen 2 1. Beschreibung der Aufgabenstellung 3 Gegeben ist der Grundriss eines Raumes. 4 In den Ecken des Raumes sollen Geräte platziert werden, die zusammen

Mehr

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2017/2018 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Christian Rieck Arne Schmidt Klausur Algorithmen

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr