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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen, bestimme deren Schnitt. + = Flächennutzung Niederschlag Kombination beider Themen

3 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen, bestimme deren Schnitt. + = Regionen sind Polygone Polygone sind Streckenmengen berechne alle Streckenschnittpunkte berechne induzierte Regionen Flächennutzung Niederschlag Kombination beider Themen

4 Problemstellung Geg: Ges: Menge S = {s 1,..., s n } von Strecken in der Ebene alle Schnittpunkte von zwei oder mehr Strecken für jeden Schnittpunkt die beteiligten Strecken

5 Problemstellung Geg: Ges: Def: Menge S = {s 1,..., s n } von Strecken in der Ebene alle Schnittpunkte von zwei oder mehr Strecken für jeden Schnittpunkt die beteiligten Strecken Strecken sind abgeschlossene Mengen

6 Problemstellung Geg: Ges: Def: Menge S = {s 1,..., s n } von Strecken in der Ebene alle Schnittpunkte von zwei oder mehr Strecken für jeden Schnittpunkt die beteiligten Strecken Strecken sind abgeschlossene Mengen Diskussion: Wie kann man das Problem naiv lösen? Ist das evtl. schon optimal? Sehen Sie Verbesserungsansätze?

7 Das Sweep-Line Verfahren: Beispiel

8 Das Sweep-Line Verfahren: Beispiel Events

9 Das Sweep-Line Verfahren: Beispiel

10 Das Sweep-Line Verfahren: Beispiel sweep line

11 Das Sweep-Line Verfahren: Beispiel

12 Das Sweep-Line Verfahren: Beispiel

13 Das Sweep-Line Verfahren: Beispiel

14 Das Sweep-Line Verfahren: Beispiel

15 Das Sweep-Line Verfahren: Beispiel

16 Das Sweep-Line Verfahren: Beispiel

17 Das Sweep-Line Verfahren: Beispiel

18 Das Sweep-Line Verfahren: Beispiel

19 Das Sweep-Line Verfahren: Beispiel

20 Das Sweep-Line Verfahren: Beispiel

21 Das Sweep-Line Verfahren: Beispiel

22 Das Sweep-Line Verfahren: Beispiel

23 Das Sweep-Line Verfahren: Beispiel

24 Das Sweep-Line Verfahren: Beispiel

25 Das Sweep-Line Verfahren: Beispiel

26 Das Sweep-Line Verfahren: Beispiel

27 Das Sweep-Line Verfahren: Beispiel

28 Das Sweep-Line Verfahren: Beispiel

29 Datenstrukturen 1.) Event Queue Q definiere p q def. y p > y q (y p = y q x p < x q ) l p q

30 Datenstrukturen 1.) Event Queue Q definiere p q def. y p > y q (y p = y q x p < x q ) l speichere Events sortiert nach in balanciertem binärem Suchbaum AVL-Baum, Rot-Schwarz-Baum,... p q

31 Datenstrukturen 1.) Event Queue Q definiere p q def. y p > y q (y p = y q x p < x q ) l speichere Events sortiert nach in balanciertem binärem Suchbaum AVL-Baum, Rot-Schwarz-Baum,... Operationen insert, delete und nextevent in O(log Q ) Zeit p q

32 Datenstrukturen 1.) Event Queue Q definiere p q def. y p > y q (y p = y q x p < x q ) l speichere Events sortiert nach in balanciertem binärem Suchbaum AVL-Baum, Rot-Schwarz-Baum,... Operationen insert, delete und nextevent in O(log Q ) Zeit p q 2.) Sweep-Line Status T l speichere von l geschnittene Strecken geordnet von links nach rechts

33 Datenstrukturen 1.) Event Queue Q definiere p q def. y p > y q (y p = y q x p < x q ) l speichere Events sortiert nach in balanciertem binärem Suchbaum AVL-Baum, Rot-Schwarz-Baum,... Operationen insert, delete und nextevent in O(log Q ) Zeit p q 2.) Sweep-Line Status T l speichere von l geschnittene Strecken geordnet von links nach rechts benötigte Operationen insert, delete, findneighbor

34 Datenstrukturen 1.) Event Queue Q definiere p q def. y p > y q (y p = y q x p < x q ) l speichere Events sortiert nach in balanciertem binärem Suchbaum AVL-Baum, Rot-Schwarz-Baum,... Operationen insert, delete und nextevent in O(log Q ) Zeit p q 2.) Sweep-Line Status T l speichere von l geschnittene Strecken geordnet von links nach rechts benötigte Operationen insert, delete, findneighbor ebenfalls balancierter binärer Suchbaum mit Strecken in den Blättern!

35 Algorithmus FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T foreach s S do Q.insert(upperEndPoint(s)) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p)

36 Algorithmus FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T foreach s S do Q.insert(upperEndPoint(s)) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p) Was passiert mit Duplikaten?

37 Algorithmus FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T foreach s S do Q.insert(upperEndPoint(s)) Q.insert(lowerEndPoint(s)) Was passiert mit Duplikaten? while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p) Hier versteckt sich der Kern des Algorithmus!

38 Algorithmus handleevent(p) U(p) Strecken mit p oberer Endpunkt L(p) Strecken mit p unterer Endpunkt C(p) Strecken mit p innerer Punkt if U(p) L(p) C(p) 2 then gebe p und U(p) L(p) C(p) aus entferne L(p) C(p) aus T füge U(p) C(p) in T ein if U(p) C(p) = then //s l und s r Nachbarn von p in T Q prüfe s l und s r auf Schnitt unterhalb p else //s und s linkeste und rechteste Strecke in U(p) C(p) Q prüfe s l und s auf Schnitt unterhalb p Q prüfe s r und s auf Schnitt unterhalb p

39 Algorithmus handleevent(p) U(p) Strecken mit p oberer Endpunkt L(p) Strecken mit p unterer Endpunkt C(p) Strecken mit p innerer Punkt if U(p) L(p) C(p) 2 then gebe p und U(p) L(p) C(p) aus mit p in Q gespeichert entferne L(p) C(p) aus T füge U(p) C(p) in T ein if U(p) C(p) = then //s l und s r Nachbarn von p in T Q prüfe s l und s r auf Schnitt unterhalb p else //s und s linkeste und rechteste Strecke in U(p) C(p) Q prüfe s l und s auf Schnitt unterhalb p Q prüfe s r und s auf Schnitt unterhalb p

40 Algorithmus handleevent(p) U(p) Strecken mit p oberer Endpunkt L(p) Strecken mit p unterer Endpunkt C(p) Strecken mit p innerer Punkt if U(p) L(p) C(p) 2 then gebe p und U(p) L(p) C(p) aus mit p in Q gespeichert Nachbarn in T entferne L(p) C(p) aus T füge U(p) C(p) in T ein if U(p) C(p) = then //s l und s r Nachbarn von p in T Q prüfe s l und s r auf Schnitt unterhalb p else //s und s linkeste und rechteste Strecke in U(p) C(p) Q prüfe s l und s auf Schnitt unterhalb p Q prüfe s r und s auf Schnitt unterhalb p

41 Algorithmus handleevent(p) U(p) Strecken mit p oberer Endpunkt L(p) Strecken mit p unterer Endpunkt C(p) Strecken mit p innerer Punkt if U(p) L(p) C(p) 2 then gebe p und U(p) L(p) C(p) aus entferne L(p) C(p) aus T füge U(p) C(p) in T ein if U(p) C(p) = then mit p in Q gespeichert Nachbarn in T Entfernen und Einfügen dreht C(p) um //s l und s r Nachbarn von p in T Q prüfe s l und s r auf Schnitt unterhalb p else //s und s linkeste und rechteste Strecke in U(p) C(p) Q prüfe s l und s auf Schnitt unterhalb p Q prüfe s r und s auf Schnitt unterhalb p

42 Was passiert genau? S s 6 s 4 s 5 s 1 p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2

43 Was passiert genau? S s 6 s 4 s 5 s 1 p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2 U(p) = {s 2 } L(p) = C(p) =

44 Was passiert genau? S s 6 s 4 s 5 s 1 p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2 U(p) = {s 2 } L(p) = C(p) =

45 Was passiert genau? S s 6 s 4 s 5 s 1 p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2 U(p) = {s 2 } L(p) = {s 4, s 5 } C(p) = {s 1, s 3 }

46 Was passiert genau? S s 6 s 4 s 5 s 1 p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2 U(p) = {s 2 } L(p) = {s 4, s 5 } C(p) = {s 1, s 3 } Gib (p, {s 1, s 2, s 3, s 4, s 5 }) aus

47 Was passiert genau? S s 6 s 4 s 5 s 1 p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2 s 2 U(p) = {s 2 } L(p) = {s 4, s 5 } C(p) = {s 1, s 3 } s 6 s 6 s 3 s 3 s 2 s 1 s 1 s 7 Lösche L(p) C(p); füge U(p) C(p) ein

48 Was passiert genau? S s 6 s 4 s 5 s 1 p p s 3 T s 1 s 5 s 3 s 6 s 4 s 3 s 7 s 7 s 6 s 5 s 4 s 1 s 2 s 2 U(p) = {s 2 } L(p) = {s 4, s 5 } C(p) = {s 1, s 3 } Füge Event p = s 1 s 7 in Q ein s 6 s l s 3 s 6 s 3 s 2 s 1 s 1 s 7 s s s r

49 Korrektheit Lemma 1: Algorithmus FindIntersections findet alle Schnittpunkte und die beteiligten Strecken.

50 Korrektheit Lemma 1: Algorithmus FindIntersections findet alle Schnittpunkte und die beteiligten Strecken. Beweis: Induktion über die Reihenfolge der Events. Sei p ein Schnittpunkt und alle Schnittpunkte q p seien bereits korrekt berechnet. Fall 1: p ist Streckenendpunkt p wurde am Anfang in Q eingefügt U(p) an p gespeichert L(p) und C(p) in T vorhanden

51 Korrektheit Lemma 1: Algorithmus FindIntersections findet alle Schnittpunkte und die beteiligten Strecken. Beweis: Induktion über die Reihenfolge der Events. Sei p ein Schnittpunkt und alle Schnittpunkte q p seien bereits korrekt berechnet. Fall 1: p ist Streckenendpunkt p wurde am Anfang in Q eingefügt U(p) an p gespeichert L(p) und C(p) in T vorhanden Fall 2: p ist kein Streckenendpunkt Überlegen Sie warum p in Q sein muss!

52 Laufzeitanalyse FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T foreach s S do Q.insert(upperEndPoint(s)) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p)

53 Laufzeitanalyse FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T O(1) foreach s S do Q.insert(upperEndPoint(s)) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p)

54 Laufzeitanalyse FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T O(1) foreach s S do Q.insert(upperEndPoint(s)) O(n log n) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p)

55 Laufzeitanalyse FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T O(1) foreach s S do Q.insert(upperEndPoint(s)) O(n log n) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p) O(log Q )

56 Laufzeitanalyse FindIntersections(S) Input: Menge S von Strecken Output: Menge aller Schnittpunkte mit zugeh. Strecken Q ; T O(1) foreach s S do Q.insert(upperEndPoint(s)) O(n log n) Q.insert(lowerEndPoint(s)) while Q do p Q.nextEvent() Q.deleteEvent(p) handleevent(p) O(log Q )?

57 Laufzeitanalyse handleevent(p) U(p) Strecken mit p oberer Endpunkt L(p) Strecken mit p unterer Endpunkt C(p) Strecken mit p innerer Punkt if U(p) L(p) C(p) 2 then gebe p und U(p) L(p) C(p) aus entferne L(p) C(p) aus T füge U(p) C(p) in T ein if U(p) C(p) = then //s l und s r Nachbarn von p in T Q prüfe s l und s r auf Schnitt unterhalb p else //s und s linkeste und rechteste Strecke in U(p) C(p) Q prüfe s l und s auf Schnitt unterhalb p Q prüfe s r und s auf Schnitt unterhalb p Lemma 2:Algorithmus FindIntersections hat eine Laufzeit von O(n log n + I log n), wobei I die Anzahl der Schnittpunkte ist.

58 Zusammenfassung Satz 1: Sei S eine Menge von n Strecken in der Ebene. Dann können alle Schnittpunkte in S zusammen mit den beteiligten Strecken in O((n + I) log n) Zeit und O(?) Platz ausgegeben werden.

59 Zusammenfassung Satz 1: Sei S eine Menge von n Strecken in der Ebene. Dann können alle Schnittpunkte in S zusammen mit den beteiligten Strecken in O((n + I) log n) Zeit und O(?) Platz ausgegeben werden. Beweis: Korrektheit Laufzeit Speicherplatz

60 Zusammenfassung Satz 1: Sei S eine Menge von n Strecken in der Ebene. Dann können alle Schnittpunkte in S zusammen mit den beteiligten Strecken in O((n + I) log n) Zeit und O(?) Platz ausgegeben werden. Beweis: Korrektheit Laufzeit Speicherplatz Überlegen Sie wie viel Platz die Datenstrukturen benötigen!

61 Zusammenfassung Satz 1: Sei S eine Menge von n Strecken in der Ebene. Dann können alle Schnittpunkte in S zusammen mit den beteiligten Strecken in O((n + I) log n) Zeit und O(n) Platz ausgegeben werden. Beweis: Korrektheit Laufzeit Speicherplatz Überlegen Sie wie viel Platz die Datenstrukturen benötigen! T maximal n Elemente Q maximal O(n + I) Elemente Reduktion von Q auf O(n) Platz: s. Übung

62 Diskussion Ist der Sweep-Line Algorithmus immer besser als der naive?

63 Diskussion Ist der Sweep-Line Algorithmus immer besser als der naive? Nein, denn falls I Ω(n 2 ) hat der Algorithmus eine Laufzeit von O(n 2 log n).

64 Diskussion Ist der Sweep-Line Algorithmus immer besser als der naive? Nein, denn falls I Ω(n 2 ) hat der Algorithmus eine Laufzeit von O(n 2 log n). Geht es noch besser?

65 Diskussion Ist der Sweep-Line Algorithmus immer besser als der naive? Nein, denn falls I Ω(n 2 ) hat der Algorithmus eine Laufzeit von O(n 2 log n). Geht es noch besser? Ja, in Θ(n log n + I) Zeit und Θ(n) Platz [Balaban, 1995].

66 Diskussion Ist der Sweep-Line Algorithmus immer besser als der naive? Nein, denn falls I Ω(n 2 ) hat der Algorithmus eine Laufzeit von O(n 2 log n). Geht es noch besser? Ja, in Θ(n log n + I) Zeit und Θ(n) Platz [Balaban, 1995]. Wie löst man damit das Kartenüberlagerungs-Problem?

67 Diskussion Ist der Sweep-Line Algorithmus immer besser als der naive? Nein, denn falls I Ω(n 2 ) hat der Algorithmus eine Laufzeit von O(n 2 log n). Geht es noch besser? Ja, in Θ(n log n + I) Zeit und Θ(n) Platz [Balaban, 1995]. Wie löst man damit das Kartenüberlagerungs-Problem? Unter Verwendung einer geeigneten Datenstruktur (doppelt-verkettete Kantenliste) für planare Graphen lässt sich in ebenfalls O((n + I) log n) Zeit die überlagerte Unterteilung der Karte berechnen. (Details s. Kap. 2.3 im Buch)

68 Datenstruktur für Landkarten (politische) Landkarte entspricht Unterteilung der Ebene in Polygone

69 Datenstruktur für Landkarten (politische) Landkarte entspricht Unterteilung der Ebene in Polygone Unterteilung entspricht Einbettung eines planaren Graphen mit Knoten Kanten Facetten

70 Datenstruktur für Landkarten (politische) Landkarte entspricht Unterteilung der Ebene in Polygone Unterteilung entspricht Einbettung eines planaren Graphen mit Knoten Kanten Facetten

71 Datenstruktur für Landkarten (politische) Landkarte entspricht Unterteilung der Ebene in Polygone Unterteilung entspricht Einbettung eines planaren Graphen mit Knoten Kanten Facetten Welche Operationen sollte eine Datenstruktur für Unterteilungen der Ebene unterstützen?

72 Datenstruktur für Landkarten (politische) Landkarte entspricht Unterteilung der Ebene in Polygone Unterteilung entspricht Einbettung eines planaren Graphen mit Knoten Kanten Facetten Welche Operationen sollte eine Datenstruktur für Unterteilungen der Ebene unterstützen? Kanten einer Facette ablaufen via Kante von Facette zu Facette wechseln Nachbarknoten in zyklischer Reihenfolge besuchen

73 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten Kanten Facetten

74 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten twin(e) e Kanten = zwei Halbkanten next(e) prev(e) face(e) Facetten Knoten origin(e) Gegenkante twin(e) Vorgänger prev(e) & Nachfolger next(e) inzidente Facette face(e)

75 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten twin(e) e Kanten = zwei Halbkanten next(e) prev(e) face(e) Facetten Was ist mit destination(e)? Knoten origin(e) Gegenkante twin(e) Vorgänger prev(e) & Nachfolger next(e) inzidente Facette face(e)

76 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten Koordinaten (x(v), y(v)) (erste) ausgehende Kante edge(v) twin(e) e Kanten = zwei Halbkanten next(e) prev(e) face(e) Facetten Knoten origin(e) Gegenkante twin(e) Vorgänger prev(e) & Nachfolger next(e) inzidente Facette face(e)

77 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten Koordinaten (x(v), y(v)) (erste) ausgehende Kante edge(v) twin(e) e Kanten = zwei Halbkanten next(e) prev(e) face(e) Knoten origin(e) Gegenkante twin(e) Vorgänger prev(e) & Nachfolger next(e) inzidente Facette face(e) Facetten Randkante edge(f)

78 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten Koordinaten (x(v), y(v)) (erste) ausgehende Kante edge(v) twin(e) e Kanten = zwei Halbkanten next(e) prev(e) face(e) Knoten origin(e) Gegenkante twin(e) Vorgänger prev(e) & Nachfolger next(e) inzidente Facette face(e) Facetten Randkante edge(f) Problem dabei?

79 Doppelt verkettete Kantenliste (DCEL) Zutaten: Knoten Koordinaten (x(v), y(v)) (erste) ausgehende Kante edge(v) twin(e) e Kanten = zwei Halbkanten next(e) prev(e) face(e) Knoten origin(e) Gegenkante twin(e) Vorgänger prev(e) & Nachfolger next(e) inzidente Facette face(e) Facetten Randkante edge(f) outer(f) Kantenliste inner(f) für evtl. Löcher

80 Aufgaben Welche Gleichheiten stimmen immer? 1. twin(twin(e)) = e 2. next(prev(e)) = e 3. twin(prev(twin(e))) = next(e) 4. face(e) = face(next(e))

81 Aufgaben Welche Gleichheiten stimmen immer? 1. twin(twin(e)) = e 2. next(prev(e)) = e 3. twin(prev(twin(e))) = next(e) 4. face(e) = face(next(e)) Geben Sie einen Algorithmus an zum 1. Aufzählen aller Nachbarknoten eines Knotens v. 2. Aufzählen aller Nachbarfacetten einer Facette f. 3. Aufzählen aller Facetten mit Knoten auf der äußeren Umrandung.

82 Ankündigung Nächste Woche Dienstag (1. Mai) keine Vorlesung. Nächste Vorlesung Donnerstag 3. Mai um 9:45 Uhr in SR131.

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

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

Lineare Programmierung

Lineare Programmierung Übung Algorithmische Geometrie Lineare Programmierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 14.05.2014 Übersicht Übungsblatt 4 Lineares

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

Algorithmische Geometrie: Schnittpunkte von Strecken

Algorithmische Geometrie: Schnittpunkte von Strecken Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010, 3.11.2009 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben

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

2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme

2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme 2.7 Geometrische Algorithmen 2.7.1 Inside-Test 2.7.2 Konvexe Hülle 2.7.3 Nachbarschaften 2.7.4 Schnittprobleme 1 2.7 Geometrische Algorithmen 2.7.1 Inside-Test 2.7.2 Konvexe Hülle 2.7.3 Nachbarschaften

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

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

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

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

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

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

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

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

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

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

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 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3

Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3 Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3 INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 15.07.2014 1 Wdh: Konvexe Hülle in R 2 (VL1) Def: Eine Menge S R 2

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

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

Ü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

Voronoi-Diagramme und Delaunay-Triangulierungen

Voronoi-Diagramme und Delaunay-Triangulierungen Vorlesung Algorithmische Geometrie Voronoi-Diagramme & Delaunay-Triangulierungen LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 07.06.2011 Erinnerung:

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 03.12.2013 Algorithmische Geometrie: Schnitte von Strecken Sweep-Line INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

Proportional Symbol Maps

Proportional Symbol Maps Vorlesung Algorithmische Kartografie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann Martin Nöllenburg 25.06.2015 1 Statistische Visualisierung

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

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

Sichtbarkeitsgraph. Andreas Gemsa Übung Algorithmische Geometrie

Sichtbarkeitsgraph. Andreas Gemsa Übung Algorithmische Geometrie Übung Algorithmische Geometrie Sichtbarkeitsgraph LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 19.07.2012 Ablauf Nachtrag Sichtbarkeitsgraph WSPD

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

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

Sichtbarkeitsgraphen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Sichtbarkeitsgraphen. 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 12.07.2011 Bewegungslanung für Roboter Ideen?? Problem: Gegeben

Mehr

Polygontriangulierung

Polygontriangulierung Vorlesung Algorithmische Geometrie Polygone triangulieren INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2012 Das Kunstgalerie-Problem Aufgabe: Installiere ein Kamerasystem

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

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

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

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

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

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

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

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

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

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

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005 Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005 Antonia Wittmers Igor Savchenko Konvexe Hüllen Inkrementeller Algorithmus für die konvexe Hülle Dabei heißt inkrementeller Algorithmus,

Mehr

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3 Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3 LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 26.06.2012 Prüfung! Termine: 20. Juli 27.

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

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

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 14.04.2014 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu Raum 319 Sprechzeiten:

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 11 (1.6.2016) Binäre Suchbäume III Algorithmen und Komplexität Tiefe eines binären Suchbaums Worst-Case Laufzeit der Operationen in binären

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

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 14.04.2014 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu Raum 319 Sprechzeiten:

Mehr

Punkt-in-Polygon-Suche Übersicht

Punkt-in-Polygon-Suche Übersicht Folie 1 von 43 Punkt-in-Polygon-Suche Übersicht! Praxisbeispiel/Problemstellung! Zählen von Schnittpunkten " Schnitt einer Halbgerade mit der Masche " Aufwandsbetrachtung! Streifenkarte " Vorgehen und

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

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 und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

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

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

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

Visualisierung von Graphen

Visualisierung von Graphen 1 Visualisierung von Graphen Teile-und-Herrsche-Algorithmen: Bäume und serienparallele Graphen 3. Vorlesung Sommersemester 2013 (basierend auf Folien von Martin Nöllenburg und Robert Görke, KIT) 2 Ankündigung

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Grundlagen Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann heitmann@informatik.uni-hamburg.de 25. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche Folie 1 von 51 Geometrische Algorithmen Punkt-in-Polygon-Suche Folie 2 von 51 Punkt-in-Polygon-Suche Übersicht Praxisbeispiel/Problemstellung Zählen von Schnittpunkten Schnitt einer Halbgerade mit der

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 4.1 Grundoperationen Aufgabenstellung: 3 4.1 Grundoperationen Aufgabenstellung: Verwalten

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

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

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

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

Schematisierung von Karten

Schematisierung von Karten Vorlesung Algorithmische Kartografie Schematisierung von (Straßen-)Karten LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 30.04.2013 Schematische

Mehr

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009 Kap. 4.7 Skiplisten Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 14./15. VO DAP2 SS 2008 9./16. Juni 2009 1 2. Übungstest Termin: Di 16. Juni 2009 im AudiMax,

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

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

Christian Rieck, Arne Schmidt

Christian Rieck, Arne Schmidt Institute of Operating Systems and Computer Networks Algorithms Group Algorithmen und Datenstrukturen Wintersemester 207/208 Übung#5, 2.2.207 Christian Rieck, Arne Schmidt Bäume Satz Jeder gerichtete Baum

Mehr

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

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

Konvexe Hülle im R 3 + WSPD

Konvexe Hülle im R 3 + WSPD Übung Algorithmische Geometrie Konvexe Hülle im R 3 + WSPD LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 12.07.2012 Ablauf Konvexe Hülle im R 3

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen

Mehr

elementare Datenstrukturen

elementare Datenstrukturen elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste

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

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1 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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

Algorithmische Geometrie: Arrangements und

Algorithmische Geometrie: Arrangements und Algorithmische Geometrie: Arrangements und Dualität Nico Düvelmeyer WS 2009/2010, 19.1.2010 Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur

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