Algorithmische Geometrie: Schnittpunkte von Strecken

Größe: px
Ab Seite anzeigen:

Download "Algorithmische Geometrie: Schnittpunkte von Strecken"

Transkript

1 Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010,

2 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben 3. Implementation

3 Überblick 1 Gleitebenenverfahren für Schnittpunkte 2 Die doppelt verkettete Kantenliste 3 Berechnung der Überlagerung zweier Ebenenaufteilungen Flächendaten

4 Einschub Balancierter Baum Es gibt Datenstrukturen (Bsp. AVL-Baum), mit denen garantiert sortierte Mengen effizient verwaltet werden können. Speicherplatzbedarf in O(n). Suchen eines Elements in der sortierten Menge in O(log n). Hinzufügen und Löschen von Elementen: O(log n).

5 Auftrag Schnittpunkte Gegeben: n Strecken der Ebene Gesucht: Menge aller Schnittpunkte der abgeschlossenen Strecken, unter Angabe der beteiligten Strecken Die Laufzeit soll ausgabeabhängig möglichst gut sein.

6 Überblick 1 Gleitebenenverfahren für Schnittpunkte 2 Die doppelt verkettete Kantenliste 3 Berechnung der Überlagerung zweier Ebenenaufteilungen Flächendaten

7 Anfangsidee Wir scheiden nur Strecken, deren y-bereiche sich auch schneiden.

8 Anfangsidee Wir scheiden nur Strecken, deren y-bereiche sich auch schneiden. Status: Menge der Strecken, die die Gleitgerade schneiden. Ereignispunkte: Anfangs- und Endpunkte der Strecken Schnittpunktbestimmung: nur Strecken, die gleichzeitig im Status sind

9 Anfangsidee Wir scheiden nur Strecken, deren y-bereiche sich auch schneiden. Status: Menge der Strecken, die die Gleitgerade schneiden. Ereignispunkte: Anfangs- und Endpunkte der Strecken Schnittpunktbestimmung: nur Strecken, die gleichzeitig im Status sind Problem: wir schneiden noch zu viele Paare von (weit entfernten) Strecken!

10 Verfeinerung

11 Verfeinerung Status: Sortierte Liste T der Strecken, wie sie die Gleitgerade (von links nach rechts) schneiden. Balancierter Suchbaum. Schnittpunktbestimmung: nur benachbarte Strecken in T Ereignispunkte: Anfangs-, End- und Schnittpunkte der Strecken, sortiert nach Abarbeitung: Von oben nach unten, bei Gleichheit von links nach rechts. Zu jedem Punkt ist eine Menge dort beginnender Strecken gespeichert. Balancierter Suchbaum. Kein Heap, da bereits enthaltene Punkte nicht nochmals eingefügt werden sollen. Ereigniswarteschlange Q.

12 Algorithmus 3.3 (Hauptschleife) Eingabe: Menge S von Strecken der Ebene Ausgabe: Eine Menge von Schnittpunkten mit Angabe der beteiligten Strecken 1: Funktion SUCHESCHNITTPUNKTE(S) 2: Initialisiere eine leere Ereigniswarteschlange Q. Füge die Randpunkte der Strecken von S in Q ein. Zu den oberen Randpunkten wird auch die zugehörige Strecke gespeichert. Für horizontale Strecken betrachten wir den linken Randpunkt als oberes Ende (Anfangspunkt). 3: Initialisiere einen leeren Statusbaum T. 4: Solange Q nicht leer ist, mache 5: Bestimme den nächsten Ereignispunkt p aus Q und lösche diesen. 6: BEHANDELEREIGNISPUNKT(p)

13 Algorithmus 3.3 (BEHANDELEREIGNISPUNKT Teil 1/2) 7: Unterprogramm BEHANDELEREIGNISPUNKT(p) 8: Bezeichne mit U(p) die Menge der Strecken (aus Q), die in p beginnen. 9: Suche alle Strecken in T, die p enthalten. L(p) sei die Menge jener Strecken, für die p das untere Ende ist, und C(p) die Menge der Strecken von T mit p im Inneren. 10: Wenn L(p) U(p) C(p) mehr als eine Strecke enthält, dann 11: Melde p als Schnittpunkt, zusammen mit L(p), U(p) und C(p). 12: Lösche die Strecken in L(p) C(p) aus T. 13: Füge die Strecken in U(p) C(p) neu in richtiger Reihenfolge in T ein (horizontale Strecken zum Schluss). Löschen und Neueinfügen der Strecken von C(p) vertauscht deren Reihenfolge

14 Algorithmus 3.3 (BEHANDELEREIGNISPUNKT Teil 2/2) 14: Wenn U(p) C(p) = dann 15: Bestimme linken Nachbarn s l und rechten Nachbarn s r von p in T. 16: SUCHENEUESEREIGNIS(s l,s r,p) 17: sonst 18: Sei s die Strecke am weitesten links von U(p) C(p) in T, 19: und s l deren linker Nachbar in T. 20: SUCHENEUESEREIGNIS(s l,s,p) falls s l existiert. 21: Sei s die Strecke am weitesten rechts von U(p) C(p) in T, 22: und s r deren rechter Nachbar in T. 23: SUCHENEUESEREIGNIS(s,s r,p) falls s r existiert.

15 Algorithmus 3.3 (SUCHENEUESEREIGNIS) 24: Unterprogramm SUCHENEUESEREIGNIS(s l, s r, p) 25: Wenn s l und s r sich unterhalb der Gleitebene schneiden (inklusive: direkt rechts von p auf dieser), und wenn deren Schnittpunkt noch nicht in Q enthalten ist, dann 26: Füge den Schnittpunkt in Q ein.

16 Satz 3.4 Alle Schnittpunkte und zugehörige Strecken werden korrekt von Algorithmus 3.3 bestimmt.

17 Satz 3.4 Alle Schnittpunkte und zugehörige Strecken werden korrekt von Algorithmus 3.3 bestimmt. Beweis. Mit Induktion folgt, dass jeder Schnittpunkt auch erkannt wird sobald zwei der beteiligten Strecken benachbart werden. Dies passiert nur an Ereignispunkten. Bei der Behandlung jedes Schnittpunktes p enthält T tatsächlich alle Strecken, die von der Waagerechten geschnitten werden, bis auf Strecken aus U(p).

18 Satz 3.5 Die Laufzeit von Algorithmus 3.3 für n Strecken mit I Schnittpunkten ist in O((n + I) log n).

19 Beweis Satz 3.5 (Hauptschleife) 1: Funktion SUCHESCHNITTPUNKTE(S) 2: Initialisiere eine leere Ereigniswarteschlange Q. Zeit O(1) Füge die Randpunkte der Strecken von S in Q ein. Zu den oberen Randpunkten wird auch die zugehörige Strecke gespeichert. Für horizontale Strecken betrachten wir den linken Randpunkt als oberes Ende (Anfangspunkt). 2n mal Grundoperation Suchen. Maximal 2n mal Grundoperation Einfügen in Q oder alternativ Einfügen in Streckenmenge. Dabei Größe von Q maximal 2n. Zeit: O(n log n). 3: Initialisiere einen leeren Statusbaum T. Zeit O(1) 4: Solange Q nicht leer ist, mache 5: Bestimme den nächsten Ereignispunkt p aus Q und lösche diesen. Maximal 2n + I Durchläufe, Grundoperationen in Q, von Größe maximal 2n + I. Zeit: 2(2n + I) log(2n + I) O((n + I) log n) 6: BEHANDELEREIGNISPUNKT(p) Beachte: I < n 2, log(2n + I) < log(2n 2 ) = log log n O(log n).

20 Satz 3.5 (SUCHENEUESEREIGNIS) 24: Unterprogramm SUCHENEUESEREIGNIS(s l, s r, p) 25: Wenn s l und s r sich unterhalb der Gleitebene schneiden (inklusive: direkt rechts von p auf dieser), und wenn deren Schnittpunkt noch nicht in Q enthalten ist, dann 26: Füge den Schnittpunkt in Q ein. Jeder Durchlauf dieses Unterprogramms benötigt Zeit in O(log Q ), das ist in O(log n).

21 Beweis Satz 3.5 (BEHANDELEREIGNISPUNKT Teil 1/2) Unterprogramm BEHANDELEREIGNISPUNKT(p) wird maximal 2n + I mal ausgeführt. 7: Unterprogramm BEHANDELEREIGNISPUNKT(p) 8: Bezeichne mit U(p) die Menge der Strecken (aus Q), die in p beginnen. Zeit: O( U(p) ) 9: Suche alle Strecken in T, die p enthalten. L(p) sei die Menge jener Strecken, für die p das untere Ende ist, und C(p) die Menge der Strecken von T mit p im Inneren. Zeit: O(log T + L(p) C(p) ) 10: Wenn L(p) U(p) C(p) mehr als eine Strecke enthält, dann 11: Melde p als Schnittpunkt, zusammen mit L(p), U(p) und C(p). Zeit O( L(p) C(p) U(p) ) 12: Lösche die Strecken in L(p) C(p) aus T. Zeit: O( L(p) C(p) log T ) 13: Füge die Strecken in U(p) C(p) neu in richtiger Reihenfolge in T ein (horizontale Strecken zum Schluss). Zeit O( U(p) C(p) log T )

22 Beweis Satz 3.5 (BEHANDELEREIGNISPUNKT Teil 2/2) 14: Wenn U(p) C(p) = dann 15: Bestimme linken Nachbarn s l und rechten Nachbarn s r von p in T. O( T ) 16: SUCHENEUESEREIGNIS(s l,s r,p) Zeit: O(log n) 17: sonst 18: Sei s die Strecke am weitesten links von U(p) C(p) in T, Zeit: O(log T ) 19: und s l deren linker Nachbar in T. Zeit: O(log T ) 20: SUCHENEUESEREIGNIS(s l,s,p) falls s l existiert. Zeit: O(log n) 21: Sei s die Strecke am weitesten rechts von U(p) C(p) in T, Zeit: O(log T ) 22: und s r deren rechter Nachbar in T. Zeit: O(log T ) 23: SUCHENEUESEREIGNIS(s,s r,p) falls s r existiert. Zeit: O(log n)

23 Beweis Satz 3.5 (Abschluss) m(p) := L(p) U(p) C(p) Zeitaufwand von BEHANDELEREIGNISPUNKT(p) in O(m(p) log n). m := p m(p), Zeitaufwand aller Aufrufe zusammen in O(m log n).

24 Beweis Satz 3.5 (Abschluss) m(p) := L(p) U(p) C(p) Zeitaufwand von BEHANDELEREIGNISPUNKT(p) in O(m(p) log n). m := p m(p), Zeitaufwand aller Aufrufe zusammen in O(m log n). k: Größe der Ausgabe (Anzahl ausgegebener Punkte plus jeweils der Anzahl der ausgegebenen zugehörigen Strecken) m O(n + k).

25 Beweis Satz 3.5 (m O(n + I)) n e Knoten: Schnitt- und Endpunkte, n e 2n + I. n k Kanten: ungeteilte Abschnitte der gegebenen Strecken. n f Flächen: n f 2n k /3 (Flächen-Kanten-Inzidenzen doppelt zählen, keine Zweiecke ) Eulersche Polyederformel (Zusammenhangskomponenten): n e + n f n k 2 n k 3n e 6, da n k n e + n f 2 n e + 2n k /3 2. m(p) gleich dem Grad des Knotens p. m die Summe der Grade aller Knoten, m = 2n k m 6(2n + I) 12 < 12(n + I).

26 Satz 3.6 Die I Schnittpunkte von n Strecken können mit einem Algorithmus (Modifikation von Algorithmus 3.3) mit Laufzeit in O((n + I) log n) und Speicherbedarf in O(n) berechnet werden.

27 Überblick 1 Gleitebenenverfahren für Schnittpunkte 2 Die doppelt verkettete Kantenliste 3 Berechnung der Überlagerung zweier Ebenenaufteilungen Flächendaten

28 Beispiel Ebenenaufteilung

29 Datenstruktur 3.7: Doppelt verkettete Kantenliste 3 Datenlisten: für Knoten, Flächen und Halbkanten. KNOTEN v i KOORDINATEN = f (v i ) R 2 INZIDENTEHALBKANTE: Verweis auf eine Halbkante mit Anfang v i FLÄCHE f i AUSSENRAND: Halbkante des Außenrandes INNENRÄNDER: Menge von Halbkanten, 1 je Loch

30 Datenstruktur 3.7: Doppelt verkettete Kantenliste (Forts.) HALBKANTE h i ANFANG: Anfangsknoten GEGENÜBER: inverse Halbkante INZIDENTEFLÄCHE: links liegende Fläche NACHFOLGER: nachfolgende Halbkante der links liegenden Fläche VORGÄNGER: vorausgehende Halbkante der links liegenden Fläche weitere Attribute. gültig, wenn tatsächlich Aufteilung der Ebene

31 Beispiel doppelt verkettete Kantenliste e 1,1 v 1 v 2 1,2 e 3,2 e 4,1 e 4,2 e 3,1 e 2,2 e 2,1 v 3 v 4

32 Beispiel doppelt verkettete Kantenliste e 1,1 v 1 v 2 1,2 e 3,2 e 4,1 e 4,2 e 3,1 e 2,2 e 2,1 v 3 v 4 KNOTEN KOORDINATEN INZIDENTEHALBKANTE v 1 (0,4) v 2 (2,4) v 3 (2,2) v 4 (1,1) e 1,1 e 4,2 e 2,1 e 2,2

33 Beispiel doppelt verkettete Kantenliste e 1,1 v 1 v 2 1,2 e 3,2 e 4,1 e 4,2 e 3,1 v 3 e 2,2 e 2,1 FLÄCHE AUSSENRAND INNENRÄNDER v 4 f 1 nil e 1,1 f 2 e 4,1 nil

34 Beispiel doppelt verkettete Kantenliste HALBKANTE ANFANG GEGENÜBER INZIDENTEFLÄCHE NACHFOLGER VORGÄNGER e 1,1 v 1 e 1,2 f 1 e 4,2 e 3,1 e 1,2 v 2 e 1,1 f 2 e 3,2 e 4,1 e 2,1 v 3 e 2,2 f 1 e 2,2 e 4,2 e 2,2 v 4 e 2,1 f 1 e 3,1 e 2,1 e 3,1 v 3 e 3,2 f 1 e 1,1 e 2,2 e 3,2 v 1 e 3,1 f 2 e 4,1 e 1,2 e 4,1 v 3 e 4,2 f 2 e 1,2 e 3,2 e 4,2 v 2 e 4,1 f 1 e 2,1 e 1,1

35 Überblick 1 Gleitebenenverfahren für Schnittpunkte 2 Die doppelt verkettete Kantenliste 3 Berechnung der Überlagerung zweier Ebenenaufteilungen Flächendaten

36 Auftrag Kartenüberlagerung Gegeben: Zwei doppelt verkettete Kantenlisten für Ebenenaufteilungen S 1, S 2. Gesucht: Doppelt verkettete Kantenlisten für Überlagerung Ü(S 1, S 2 ) von S 1 und S 2. Als Attribute der Flächen sollen Paare der ursprünglichen Attribute gebildet werden.

37 neues Gleitebenenverfahren neu: D, anfangs Vereinigung von Kopien der Ausgangsdaten. merken uns Beziehung zwischen Halbkanten in D und Strecken in T lokale Operationen, um die Kantenverknüpfung sicherzustellen

38 Beispiel 3.9 Kante k von S 1 geht durch Knoten v von S 2. k wurde bisher durch 2 Halbkanten dargestellt, daraus werden jetzt vier! Bisherige Enden von k sind leicht korrigiert. Im Punkt v muss die exakte zyklische Position bestimmt werden und dann entsprechend die Verknüpftung durchgeführt werden. Zeitaufwand für die Korrektur von k beim Ereignispunkt v: O(m(v)), wobei m(v) weiterhin die Anzahl von Originalkanten ist, die zu v inzident sind (für die Suche der richtigen Positionen in der zyklischen Reihenfolge).

39 Fazit: Halbkanten- und Knotenrekords Knoten- und Halbkantendatensätze korrekt bis auf INZIDENTEFLÄCHE Gesamtzeitaufwand dafür ist in O((n + k) log n). n: Summe der Komplexitäten von S 1 und S 2 k: Komplexität vom Ergebnis

40 Flächendaten Untersuchung Zyklen von Halbkanten. innere und äußere Ränder der Flächen Zuordnung der Ränder einer Fläche Hilfsgraph G, Knoten: Zyklen und Kanten in G: Rand links eines inneren Rands

41 Satz 3.10 Jede Zusammenhangskomponente des Graphen G stimmt genau mit der Menge von Zyklen überein, die mit einer Fläche inzidieren. Beweis. Skript

42 Lokale Seiteninformationen Nach dem Gleitebenendurchlauf kann in Zeit O(n + k) die Flächenverknüpfung der doppelt verketteten Kantenliste berechnet werden.

43 Lokale Seiteninformationen Nach dem Gleitebenendurchlauf kann in Zeit O(n + k) die Flächenverknüpfung der doppelt verketteten Kantenliste berechnet werden. Speichern wir zusätzlich noch von allen Knoten die zugehörigen Seiteninformationen während des Ebenendurchlaufs, können wir auch die Attribute der neuen Flächen allein durch lokale Betrachtungen effizient bestimmen. Dies erfordert eine Erweiterung der Informationen, die in T gespeichert werden, und deren Aktualisierung an den Ereignispunkten.

44 Algorithmus 3.11 Eingabe: Zwei doppelt verkettete Kantenlisten für Ebenenaufteilungen S 1, S 2. Ausgabe: Doppelt verkettete Kantenlisten D für Überlagerung Ü(S 1, S 2 ). Als Attribute der Flächen sollen Paare der ursprünglichen Attribute gebildet werden.

45 Algorithmus : Funktion KARTENÜBERLAGERUNG(S 1, S 2 ) 2: Kopiere die Datenstrukturen für S 1 und S 2 in eine neue gemeinsame doppelt verkettete Kantenliste D. 3: Berechne alle Schnittpunkte zwischen Kanten von S 1 und S 2 mit dem Gleitebenenverfahren SUCHESCHNITTPUNKTE in Algorithmus 3.3. Zusätzlich zu den Änderungen an T und Q ist bei den Ereignispunkten folgendes zu tun: Aktualisiere D entsprechend den lokalen Änderungen (siehe Beispiel 3.9) falls Kanten von sowol S 1 und S 2 beteiligt sind. Speichere die Halbkante l(p) direkt links vom Ereignispunkt p zusätzlich in der Repräsentation von p in der Datenstruktur D. Nun ist D bis auf Seiteninformationen korrekt

46 Algorithmus : Bestimme die Randzyklen von Ü(S 1, S 2 ) beim Durchlaufen (Tiefensuche) von D. 5: Baue den Graph G mit Knotenn entsprechend den Randzyklen und Kanten, die jedes Loch mit dem linken Nachbarn verbinden. Verwende dafür l(p). Bestimme die Zusammenhangskomponenten von G. 6: Für alle Zusammenhangskomponenten K von G mache 7: C der eindeutige äußere Randzyklus von K. Lege einen neue Flächen-Datensatz für die zugehörige Fläche f an. Setze AUSSENRAND(f ) auf eine Halbkante von C, und füge in INNENRÄNDER(f ) für alle Löcher in K je eine Halbkante ein. Durchlaufe alle diese Randzyklen und setze alle Referenzen INZIDENTEFLÄCHE auf f. 8: Bestimme die Attribute aller neuen Flächen f durch lokale Informationen an jeweils einer Ecken von f.

47 Satz 3.12 Sei S 1 eine Ebenenaufteilung der Komplexität n 1, S 2 eine solcher der Komplexität n 2, und n := n 1 + n 2. Die Überlagerung von S 1 und S 2 kann in Zeit O(n log n + k log n) berechnet werden, wobei k die Komplexität der Überlagerung ist.

48 Folgerung 3.13 Für zwei ebene Polygone P 1, P 2 mit n 1 bzw. n 2 Ecken kann P 1 P 2, P 1 P 2 und P 1 \ P 2 jeweils in Zeit O((n + k) log n) berechnet werden, wobei n := n 1 + n 2 und k die Komplexität des Ergebnisses ist.

49 Bemerkung 3.14 Eine untere Schranke für den Worst-Case-Zeitaufwand der allgemeinen Schnittpunktbestimmung ist Ω(n log n + k). Aber es gibt auch O(n + k)-algorithmen, die ausnutzen, dass zwei gegebene Ebenenaufteilungen jeweils zusammenhängend sind.

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

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

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

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

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

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

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2)

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2) Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2) Nico Düvelmeyer WS 2009/2010, 22.12.2009 Überblick 1 Fertigstellung Kapitel 7 2 Definition Voronoi Diagramm 3 Grundlegende

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 Geometrie: Lineare Optimierung (I)

Algorithmische Geometrie: Lineare Optimierung (I) Algorithmische Geometrie: Lineare Optimierung (I) Nico Düvelmeyer WS 2009/2010, 17.11.2009 Überblick 1 Geometrie von Gießformen 2 Durchschnitte von Halbebenen 3 Inkrementeller Algorithmus Überblick 1 Geometrie

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

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

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

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

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

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

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

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

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

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

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

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

Algorithmen und Datenstrukturen 13

Algorithmen und Datenstrukturen 13 19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum

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

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

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

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

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

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

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

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

Ü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

Distanzprobleme in der Ebene

Distanzprobleme in der Ebene Distanzprobleme in der Ebene (Literatur: deberg et al., Kapitel 7,9) Christian Knauer 1 Motivation: Alle nächsten Nachbarn Gegeben: Eine Menge von Punkten P in der Ebene Berechne: Zu jedem Punkt aus P

Mehr

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

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

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

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

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

Mehr

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

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15 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 18. März

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

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

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

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

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

Übersicht. Begriffserklärung Motivation / Anwendungen Drei Algorithmen Zusammenfassung Fragen Quellen. Triangulierung von Steffen Ernst 2

Übersicht. Begriffserklärung Motivation / Anwendungen Drei Algorithmen Zusammenfassung Fragen Quellen. Triangulierung von Steffen Ernst 2 Triangulierung Übersicht Begriffserklärung Motivation / Anwendungen Drei Algorithmen Zusammenfassung Fragen Quellen Triangulierung von Steffen Ernst 2 Begriffserklärung Ein Graph ist trianguliert, wenn

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/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

1 Kürzeste Pfade in Graphen

1 Kürzeste Pfade in Graphen Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

7. Sortieren Lernziele. 7. Sortieren

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

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

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

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

Aufgabensammlung zur algorithmischen Geometrie

Aufgabensammlung zur algorithmischen Geometrie 1 Aufgabensammlung zur algorithmischen Geometrie 2012WS Andreas Kriegl 1. Konvexe Hülle als Durchschnitt. Zeige, daß der Durchschnitt konvexer Mengen wieder konvex ist und somit die konvexe Hülle einer

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

Abschnitt 18: Effizientes Suchen in Mengen

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

Mehr

Kapitel 2: Sortier- und Selektionsverfahren Gliederung

Kapitel 2: Sortier- und Selektionsverfahren Gliederung Gliederung 1. Laufzeit von Algorithmen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Randomisierte Algorithmen

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 Binärer Suchbaum Außerdem wichtig: Struktur der Schlüsselwerte! 2 Ordnungsstruktur Linker

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

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

Triangulierung von Polygonen und das Museumsproblem

Triangulierung von Polygonen und das Museumsproblem Triangulierung von Polygonen und das Museumsproblem (Literatur: deberg et al., Kapitel 3) 1 Motivation: Das Museumsproblem ein Museum soll durch Kameras überwacht werden wie viele Kameras werden benötigt?

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Punkt-in-Polygon-Suche Übersicht

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

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume robert.legenstein@igi.tugraz.at 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen

Mehr

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................

Mehr

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

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

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung Algorithmische Geometrie): Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"): 1 Erzeugung des Voronoi-Diagramms (siehe Vorlesung "Algorithmische

Mehr

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme Folie 1 von 32 Geometrische Algorithmen Voronoi-Diagramme Folie 2 von 32 Voronoi-Diagramme Übersicht Problemstellung Animation zur Konstruktion eines Voronoi-Diagramms Definition, Eigenschaften eines Voronoi-Diagramms

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

1. Übungsblatt zu Algorithmen II im WS 2011/2012

1. Übungsblatt zu Algorithmen II im WS 2011/2012 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Moritz Kobitzsch, Dennis Schieferdecker. Übungsblatt zu Algorithmen II im WS 0/0 http://algo.iti.kit.edu/algorithmenii.php

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl

Mehr

7. Triangulation von einfachen Polygonen

7. Triangulation von einfachen Polygonen 1 7. Triangulation von einfachen Polygonen 2 Ziel Bessere Laufzeit als O(n log n) durch schnelleres Berechnen der Trapezzerlegung des Polygons. 3 Idee Finde Methode, den Anfangspunkt einer Strecke in der

Mehr

Das EM-Modell. Vorlesung 3: Lubys Algorithmus. Graphenalgorithmen und lineare Algebra Hand in Hand

Das EM-Modell. Vorlesung 3: Lubys Algorithmus. Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung 3: Lubys Algorithmus Das EM-Modell 85 Nachsatz: Halbringnotation! Auch Bücher enthalten Fehler...! A op 1.op 2 v: Abkürzung für Matrix-Vektor-Multiplikation! Vereinbarung für Reihenfolge: A +.*

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Algorithmen & Datenstrukturen Midterm Test 2

Algorithmen & Datenstrukturen Midterm Test 2 Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007 2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/2007 12. April 2007 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

Mehr

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

Mehr

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem Geometrische Algorithmen Einige einfache Definitionen: Punkt: im n-dimensionalen Raum ist ein n-tupel (n Koordinaten) Gerade: definiert durch zwei beliebige Punkte auf ihr Strecke: definiert durch ihre

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

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Füllen von Primitiven

Füllen von Primitiven Füllen von Primitiven Basisproblem der 2D-Graphik Anwendung: füllen beliebiger Flächen (Polygone, Freiformkurven) Darstellung von Buchstaben dicke Primitive (Linien, Kreise, Kurven), Teilproblem in der

Mehr