Algorithmische Techniken für Geometrische Probleme

Größe: px
Ab Seite anzeigen:

Download "Algorithmische Techniken für Geometrische Probleme"

Transkript

1 Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik Schnitte orthogonaler Liniensegmente Schnitte beliebiger Liniensegmente Überdeckte Fläche von achsenparallelen Rechtecken Divide-and-conquer Algorithmen Nächste Nachbarn Konvexe Hülle

2 1 Die Sweepline-Technik In diesem Abschnitt werden wir drei geometrische Probleme in der Ebene betrachten, für die wir mit Hilfe der sogenannten Sweepline-Technik Algorithmen konstruieren werden. Allgemein stellt man sich unter einer Sweepline eine vertikale Linie vor, die von links nach rechts kontinuierlich über die Ebene streicht, also vom negativen Unendlichen ins positive Unendliche wandert, und dabei jedes gegebene Objekt des betrachteten Problems irgendwann überstreicht. Das kontinuierliche Überstreichen aller Objekte ist natürlich nur eine anschauliche Darstellung für das was eigentlich auf dem Rechner durchgeführt wird. Tatsächlich berechnet der Algorithmus diskrete Ereignispunkte bezüglich einer virtuellen Sweepline, z.b. die Ereignispunkte zu denen die Sweepline einzelne Objekte erreicht bzw. diese wieder verläßt. Diese Ereignispunkte werden vom Algorithmus in der Reihenfolge abgearbeitet, in der die virtuelle Sweepline sie erreicht. 1.1 Schnitte orthogonaler Liniensegmente gegeben: n horizontale Liniensegmente und n vertikale Liniensegmente in der Ebene die sich jeweils untereinander nicht schneiden gesucht: alle Segmentpaare, die sich schneiden Die Segmente werden beschrieben durch ihre Anfangs- und Endpunkte in Form von (x, y)-koordinaten, wobei x die horizontale und y die vertikale Position bezeichnet. Wir stellen uns vor, dass die Sweepline kontinuierlich über die Ebene wandert und machen dabei die folgenden Beobachtungen. 1. Zu jedem Zeitpunkt gibt es eine (evtl. leere) Menge M von horizontalen Segmenten, die die Sweepline schneiden. M ändert sich genau dann, wenn ein Anfangs- oder Endpunkt eines horizontalen Segments erreicht wird. 2. Wir betrachten ein vertikales Segment s dessen Endpunkte die vertikalen Koordinaten y 1 und y 2 haben. Wenn die Sweepline s schneidet, haben alle horizontalen Segmente aus M, deren y-koordinate im Intervall [y 1, y 2 ] liegt, einen Schnittpunkt mit s. Nach dieser Erkenntnis wählen wir die x-koordinaten der Anfangs- und Endpunkte der horizontalen Segmente und die x-koordinaten der vertikalen Segmente als Ereignispunkte für den Algorithmus. 2

3 Algorithmus 1 1. Sortiere die x-koordinaten der Segmente. Bei Gleichheit stehen linke Endpunkte von horizontalen Segmenten vor vertikalen Segmenten und vertikale Segmente vor rechten Endpunkten von horizontalen Segmenten. 2. Initialisiere einen leeren 2-3-Baum. Dieser 2-3-Baum soll immer die oben erwähnte Menge M von horizontalen Segmenten enthalten, die gerade durch die Sweepline überschritten werden. Die Segmente werden in dem 2-3- Baum nach ihren y-koordinaten sortiert und sind zusätzlich durch eine doppelt verkettete Liste verknüpft. 3. Durchlaufe die in 1. gebildete Folge. Falls das linke Ende eines horizontalen Segments erreicht wird, füge dieses Segment in den 2-3-Baum ein. Falls das rechte Ende eines horizontalen Segments erreicht wird, entferne dieses Segment aus dem 2-3-Baum. Falls ein vertikales Segment s mit den y-koordinaten y 1 und y 2 erreicht wird, suche im 2-3-Baum das Segment, mit der kleinsten y- Koordinate die nicht kleiner als y 1 ist. Durchlaufe von dort aus die doppelt verkettete Liste, bis ein Segment erreicht ist, dessen y-koordinate größer als y 2 ist. Seien s 1... s k die in der Liste erreichten Segmente. Schreibe die Paare (s, s 1 ),..., (s, s k 1 ) in die Ausgabe. Laufzeit von Algorithmus 1 Beachte, dass die Ausgabe möglicherweise aus allen n 2 Segmentpaaren besteht. In diesem Fall ist die Laufzeit Ω(n 2 ). Dennoch möchten wir dem Algorithmus nicht grundsätzlich derartig viele Schritte erlauben, sondern nur dann falls die Ausgabelänge dieses wirklich erfordert. Ein derartiger Algorithmus wird ausgabesensitiv genannt. Bezeichne k die Anzahl der sich schneidenden Segmentpaare. Wir werden die Lauzeit in Abhängigkeit von der Eingabelänge n und der Ausgabelänge k beschreiben. Schritt 1: O(n log n). Schritt 2: O(1). Schritt 3: O(n log n + k). 3

4 Die Laufzeitschranke für Schritt 3 ergibt sich wie folgt. Da der 2-3-Baum nie mehr als n Objekte enthält, kosten die Operationen Einfügen, Entfernen und Suchen jeweils Zeit O(log n). Damit sind alle Kosten, bis auf die für das Entlangenlaufen der verketteten Blätter im 2-3-Baum verrrechnet. Die Kosten für diesen Vorgang sind O(k). Satz 1 Algorithmus 1 hat Laufzeit O(n log n + k). Diese Lauzeit ist fast optimal, denn Ω(n + k) ist eine offensichtliche Schranke für dieses Problem. 1.2 Schnitte beliebiger Liniensegmente gegeben: n Liniensegmente in der Ebene gesucht: alle Segmentpaare, die sich schneiden Wir nehmen an, dass kein Segment vertikal ist. Das erreichen wir, indem wir ggf. die Ebene um einen kleinen geeigneten Winkel drehen. Weiter nehmen wir zuerst an, dass sich maximal zwei Segmente in einem Punkt schneiden. Den allgemeinen Fall betrachten wir danach. Wir stellen uns wieder die Sweepline vor, die kontinuierlich über die Ebene wandert. Zu jedem Zeitpunkt x, wobei x die horizontale Position der Sweepline bezeichnet, gibt es eine Menge von Segmenten, die die Sweepline schneiden. Auf dieser Menge definieren wir die Ordnung > x. Es ist s 1 > x s 2, falls die Sweepline das Segment s 1 oberhalb vom Schnittpunkt mit dem Segment s 2 schneidet. Da diese Ordnung abhängig von x ist, kann sie sich mit der Zeit ändern. Sie ändert sich genau zu den folgenden Ereignispunkten. 1. Wenn der linke Endpunkt eines Segments erreicht wird, wird dieses Segment in die Ordnung eingefügt. 2. Wenn der rechte Endpunkt eines Segments erreicht wird, wird dieses Segment aus der Ordnung entfernt. 3. Wenn der Schnittpunkt zweier Segmente erreicht wird, vertauscht sich die Reihenfolge dieser Segmente bzgl. der Ordnung. 4

5 Es gibt einen Unterschied zu den Ereignispunkten aus Algorithmus 1. Die Ereignispunkte aus 3. sind nicht direkt aus der Eingabe ablesbar sondern müssen explizit vom Algorithmus berechnet werden. Zwei Segmente, die sich in einem Punkt p schneiden, sind spätestens dann benachbart, wenn der letzte Ereignispunkt vor p erreicht wird. Daher reicht es aus, an jedem Ereignispunkt x nur Schnittpunkte für diejenigen Segmente zu berechnen, die bzgl. > x neue Nachbarn geworden sind. Algorithmus 2 1. Sortiere die Endpunkte der Segmente bzgl. der x-koordinate und füge sie in einen 2-3-Baum E ein. (E verwaltet die Ereignispunkte.) 2. Initialisiere einen 2-3-Baum L als leer. (L stellt immer den Zustand der Segmente bzgl. der Ordnung > x dar.) 3. Führe die Schritte 4. bis 7. durch, bis E leer ist. 4. Berechne p, das Minimum in E, und entferne p aus E. 5. Falls p linker Endpunkt eines Segments s ist: Füge s bzgl. der x-koordinate von p in L ein. s V = Vorgänger von s in L. s N = Nachfolger von s in L. Falls s V und s sich schneiden und dieser Schnittpunkt noch nicht in E enthalten ist, füge ihn in E ein. Falls s und s N sich schneiden und dieser Schnittpunkt noch nicht in E enthalten ist, füge ihn in E ein. 6. Falls p rechter Endpunkt eines Segments s ist: s V = Vorgänger von s in L. s N = Nachfolger von s in L. Entferne s aus L. Falls s V und s N sich schneiden und dieser Schnittpunkt noch nicht in E enthalten ist, füge ihn in E ein. 7. Falls p Schnittpunkt der Segmente s 1 und s 2 ist: 5

6 O.B.d.A. verlaufe s 1 links von p oberhalb von s 2. s V = Vorgänger von s 1 in L. s N = Nachfolger von s 2 in L. Vertausche die Reihenfolge von s 1 und s 2 in L. Falls s 1 und s N sich schneiden und dieser Schnittpunkt noch nicht in E enthalten ist, füge ihn in E ein. Falls s 2 und s V sich schneiden und dieser Schnittpunkt noch nicht in E enthalten ist, füge ihn in E ein. Falls sich k > 2 Segmente in einem Punkt p schneiden, verwalten wir die Segmentpaare nach folgender Konvention. (s 1, s 2 ) steht vor (s 3, s 4 ), falls s 1 links von p oberhalb von s 3 verläuft oder s 1 = s 3 und s 2 links von p oberhalb von s 4 verläuft. Damit findet der Algorithmus alle ( k 2) Segmentpaare, die sich in p schneiden. Laufzeit von Algorithmus 2 Schritt 1: O(n log n). Schritt 2: O(1). Schritt 3 bis 7: O((n + k) log n). Die Laufzeit für die Schritte 3 bis 7 ergibt sich wie folgt. Es gibt 2n + k 2n + ( n 2) 2n 2 Ereignispunkte. Damit ist die Tiefe des 2-3-Baums E höchstens log 2 (2n 2 ) = 2 log 2 n + 1. Der 2-3-Baums L enthält höchstens n Elemente. Seine Tiefe ist somit höchstens log 2 n. Die Operationen Einfügen, Entfernen und Suchen in diese Datenstrukturen verursacht somit höchstens Kosten O(log n). Für jeden einzelnen der n + k Ereignispunkte sind damit die Laufzeitkosten durch O(log n) beschränkt. Satz 2 Algorithmus 2 hat Laufzeit O((n + k) log n). 1.3 Überdeckte Fläche von achsenparallelen Rechtecken gegeben: n achsenparallele Rechtecke in der Ebene gesucht: die Fläche, die von der Vereinigung der Rechtecke überdeckt wird 6

7 Wenn wir die Sweepline über die Ebene wandern lassen, haben wir zu jedem Zeitpunkt eine Menge von Rechtecken, die einen Schnitt der Länge l mit der Sweepline haben. l ändert sich, wenn ein Anfangs- oder Endpunkt eines Rechtecks erreicht wird. Daher wählen wir diese Punkte als Ereignispunkte. Seien das x 1,..., x 2n in sortierter Reihenfolge. Angenommen die Sweepline befindet sich im Intervall [x i 1, x i ]. Die überdeckte Fläche in diesem Intervall ist dann (x i x i 1 ) l. Wenn wir die in y-richtung überdeckten Intervalle der Rechtecke in einem Segmentbaum verwalten, haben wir l immer zur Verfügung. Algorithmus 3 1. Sortiere die Anfangs- und Endpunkte der Rechtecke nach ihren x-koordinaten zu x 1,..., x 2n. 2. x 0 := x 1, m := Initialisiere einen Segmentbaum für die y-koordinaten der Rechtecke. 4. Für i = 1,..., 2n: Berechne l, das Intervall an der Wurzel des Segmentbaums. m = m + l (x i x i 1 ). Falls x i Anfangspunkt des Rechtecks R ist, füge das in y-richtung überdeckte Intervall von R in den Segmentbaum ein. Falls x i Endpunkt des Rechtecks R ist, entferne das in y-richtung überdeckte Intervall von R aus dem Segmentbaum. Laufzeit von Algorithmus 3 Schritt 1 und 2: O(n log n). Schritt 3: Die Operationen auf dem Segmentbaum kosten Zeit O(log n). Insgesamt erhalten wir die Laufzeit O(n log n). Satz 3 Algorithmus 3 hat Laufzeit O(n log n). 7

8 2 Divide-and-conquer Algorithmen In diesem Abschnitt werden wir einen weiteren Standardansatz zur Lösung geometrischer Probleme in der Ebene kennen lernen. Divide-and-conquer Algorithmen zerlegen das Problem in Teilprobleme, die rekursiv berechnet werden. Aus den Lösungen der Teilprobleme wird dann die Lösung des gesamten Problems berechnet. 2.1 Nächste Nachbarn gegeben: n 2 Punkte in der Ebene gesucht: 2 Punkte mit minimalem Abstand Wir zerlegen die Menge der Punkte am Median M bzgl. der x-koordinaten der Punkte und berechnen die Punkte mit minimalem Abstand der Teilmengen rekursiv. Dadurch entstehen zwei Teilprobleme mit n bzw. n vielen Punkten. 2 2 Seien d 1 und d 2 die minimalen Abstände bzgl. der beiden Teilprobleme. Setze d = min{d 1, d 2 }. Beachte, möglicherweise gibt es noch Paare von Punkten die einen Abstand kleiner als d haben, nämlich solche Paare, die aus einem Punkt links und einem Punkt rechts vom Median bestehen. Allerdings kommen dazu nur Punkte in Frage, deren x-koordinaten im Intervall [M d, M + d] liegen. Sei p = (x, y) ein derartiger Punkt. Alle Punkte, deren Abstand zu p kleiner als d ist, müssen in dem Quadrat liegen, das durch die Punkte (M d, y d) und (M + d, y + d) aufgespannt wird. Wir konzentrieren uns auf die oberer Hälfte dieses Quadrates. Behauptung: Das Rechteck, das durch die Punkte (M d, y) und (M + d, y + d) aufgespannt wird, enthält neben p höchstens noch 7 weitere Punkte. Bevor wir die Behauptung beweisen, zeigen wir, wie wir sie zur Entwicklung eines effizienten Algorithmus verwenden können: Wir sortieren alle Punkte aus dem vertikalen Streifen [M d, M + d] bzgl. ihrer y-koordinaten. Dann berechnen wir für jeden Punkt aus diesem Streifen die Abstände zu seinen 7 Nachfolgern bzgl. dieser Sortierung und geben den kleinsten gefundenen Abstand aus. Aus der Behauptung folgt, dass wir auf diese Art und Weise das Paar mit dem minimalen Abstand im Streifen finden, falls es ein Paar mit Abstand kleiner als d im Streifen gibt, denn alle nicht betrachteten Punktepaare haben Abstand mindestens d. (Frage: Warum müssen wir, wenn wir den Punkt p behandeln, nicht auch explizit den Abstand dieses Punktes zu seinen Vorgängern berechnen?) 8

9 Nun kommen wir zum Beweis der Behauptung. Das betrachtete Rechteck hat Höhe d und Breite 2d. Wir teilen das Rechteck in acht disjunkte Quadrate mit Seitenlänge jeweils d/2 ein, vier Quadrate links und vier rechts des Medians. Der maximal mögliche Abstand zweier Punkte in einem derartigen Teilquadrat ist (d ) 2 ( ) 2 d + = d < d. Da nun aber die Teilquadrate jeweils vollständig links oder rechts des Medians liegen, können sie keine zwei Eingabepunkte enthalten, deren Abstand ja mindestens d ist. Die acht Teilquadrate können also jeweils höchstens einen der Eingabepunkte enthalten, woraus sich die Behauptung ergibt. Wir fassen den oben beschriebenen Algorithmus noch einmal zusammen. Algorithmus 4 1. Rekursionsende: Falls S 3, so berechne den minimalen Abstand und gebe das zugehörige Punktepaar aus. Stopp. 2. Divide: Sonst teile die Menge der Punkte bzgl. des Medians M in zwei Teilmengen S 1 und S 2 auf. Berechne rekursiv die Punkte mit minimalem Abstand aus S 1 und S 2. Sei d der kleinere der berechneten Abstände und (p, p ) das zugehörige Punktepaar. 3. Conquer: Sortiere alle Punkte aus dem vertikalen Streifen [M d, M + d] bzgl. ihrer y-koordinate. Bestimme den Abstand eines jeden Punktes in diesem Streifen zu seinen 7 Nachfolgern bzgl. der Sortierung. Falls der kleinste dieser Abstände kleiner als d ist, so gib das zugehörige Punktepaar aus, sonst gib das Paar (p, p ) aus. Laufzeit von Algorithmus 4 O.B.d.A. sei n eine Zweierpotenz. (Ansonsten runde zur nächsten Zweierpotenz auf.) Bei naiver Implementierung erhalten wir die Rekursionsgleichung ( n ) T (n) = 2 T + O(n log n). 2 Der additive Term O(n log n) entsteht dabei sowohl durch das Sortieren der Punkte bzgl. ihrer x-koordinate zur Bestimmung des Medians in Schritt 2 als auch 9

10 durch das Sortieren der Punkte im vertikalen Streifen um den Median bzgl. ihrer y-koordinate in Schritt 3. Die obige Rekursionsgleichung ergibt eine Laufzeit von O(n log 2 n). Wir zeigen nun, wie man durch eine geschickte Implementierung die Laufzeit O(n log n) erreichen kann. Dazu müssen wir nur zeigen, wie man die Schritte 1 und 3 so realisieren kann, dass jedem Teilproblem nur Laufzeitkosten O(n) statt O(n log n) zugerechnet werden müssen. Die Bestimmung des Medians in Schritt 2 sollte wie folgt realisiert werden. In einem Preprocessing sortieren wir alle n Punkte in Zeit O(n log n) bzgl. ihrer x- Koordinate und schreiben sie in ein Array. An den rekursiven Aufruf übergeben wir dann jeweils den ersten und letzten Index der zugehörigen Punkte in diesem Array. Die Kosten für das Sortieren fallen also nur einmal an. Der Median in einem vorsortierten Array kann in Zeit O(1) bestimmt werden. Wir zeigen nun noch wie die Sortierung der Punkte im Streifen um den Median in Zeit O(n) durchgeführt werden kann. Der Trick ist, dass wir nicht nur die Punkte im Streifen sortieren sondern alle Punkte des jeweiligen Teilproblems. Die sortierte Teilfolge der Punkte im Streifen kann dann aus der sortierten Folge aller Punkte in Zeit O(n) herausgefiltert werden. Die Sortierung aller Punkte erfolgt analog zum Mergesort-Verfahren: Wir stellen sicher, dass die rekursiven Aufrufe in Schritt 2 bereits zwei bzgl. der y-koordinate sortierte Teilfolgen zurückliefern. Diese Teilfolgen können dann in Zeit O(n) zu einer sortierten Gesamtfolge verschmolzen werden kann. Unter Vernachlässigung des Preprocessing ergibt sich nun die Rekursionsgleichung ( n ) T (n) = 2 T + O(n), 2 die sich zu T (n) = O(n log n) löst. Satz 4 Algorithmus 4 hat die Laufzeit O(n log n). 2.2 Konvexe Hülle Die konvexe Hülle einer Punktmenge P entspricht dem kleinsten Polygon, das alle Punkte aus P enthält. gegeben: n 1 Punkte in der Ebene gesucht: die Menge der Eckpunkte der konvexen Hülle 10

11 Algorithmus 5 1. Falls n = 1, so gib den einen Punkt zurück. Sonst zerlege die Menge der Punkte am Median M bzgl. der x-koordinaten der Punkte und berechne rekursiv die Lösung C l für das linke Teilproblem und die Lösung C r für das rechte Teilproblem. 2. Bestimme die obere gemeinsame Tangente beider Polygone. Die Tangente liegt in beiden Polygonen jeweils an einem Eckpunkt an. Den tangierten Eckpunkt in C l nennen wir o l und den tangierten Eckpunkt in C r nennen wir o r. Bestimme auch die untere gemeinsame Tangente beider Polygone. Die tangierten Eckpunkte nennen wir u l und u r. 3. Aus der Menge der Eckpunkte für C l entfernen wir alle Eckpunkte, die im Uhrzeigersinn zwischen o l und u l liegen. Aus der Menge der Eckpunkte für C r entfernen wir alle Eckpunkte, die im Uhrzeigersinn zwischen u r und o r liegen. Die verbleibenden Punkte (inklusive o l, o r, u r, u l ) werden ausgegeben. Die Berechnung der Tangenten in Schritt 2 ist zeitkritisch. Wir beschreiben diesen Vorgang für die obere Tangente. Die untere Tangente kann analog berechnet werden. Wie können die Punkte o l und o r effizient berechnet werden? - Initial setzen wir o l auf die obersten Eckpunkte von C l bzw. C r, d.h. die Eckpunkte mit größter y-koordinate. Dies sind jedoch möglicherweise nicht die Punkte an denen die Tangente anliegt. Zum Auffinden der wahren Tangentenpunkte wenden wir nun wiederholt die folgenden Regeln an, bis keine der Regeln mehr zutrifft. Ausw ärtsdrehung im rechten Polygon: Falls die Verlängerung der Linie von o l nach o r in C r hineinragt, so verschiebe o r im Urzeigersinn um einen Eckpunkt nach rechts. Ausw ärtsdrehung im linken Polygon: Falls die Verlängerung der Linie von o r nach o l in C l hineinragt, so verschiebe o l entgegengesetzt dem Uhrzeigersinn um einen Eckpunkt nach links. Einw ärtsdrehung im rechten Polygon: Falls die Linie von o l nach o r das Polygon C r schneidet, so setze o r entgegengesetzt dem Urzeigersinn um einen Eckpunkt nach links. 11

12 Einw ärtsdrehung im linken Polygon: Falls die Linie von o l nach o r das Polygon C l schneidet, so setze o l im Urzeigersinn um einen Eckpunkt nach rechts. Beachte, dieser Prozess terminiert, da sich der Schnittpunkt der Linie zwischen o r und o l mit der Mediansenkrechten von Iteration zu Iteration nach oben verschiebt. Laufzeit von Algorithmus 5 In einem Preprocessing werden die Punkte nach der x-koordinate sortiert. Das Preprocessing kann in Zeit O(n log n) durchgeführt werden. Danach kann Schritt 1 in Zeit O(1) durchgeführt werden. Schritt 3 kann offensichtlich in Zeit O(n) durchgeführt werden. Für den zeitkritischen Schritt 2 gilt ebenfalls eine oberer Schranke von O(n), da Auswärtsdrehungen (im Gegensatz zu Einwärtsdrehungen) niemals rückgängig gemacht werden, so dass höchstens O(n) Drehungen durchgeführt werden. (Beweis: Übungsaufgabe.) Unter Vernachlässigung des Preprocessings ergibt sich somit die folgende Rekursiongleichung ( n ) T (n) = 2 T + O(n). 2 Diese Gleichung löst sich zu T (n) = O(n log n). Satz 5 Algorithmus 5 hat die Laufzeit O(n log n). 12

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

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

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

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

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

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.

Mehr

Triangulierung von einfachen Polygonen

Triangulierung von einfachen Polygonen Triangulierung von einfachen Polygonen - Seminarvortrag von Tobias Kyrion - Inhalt: 1.1 Die Problemstellung Quellenangabe 1.1 Die Problemstellung Definition Polygon: endlich viele paarweise verschiedene

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

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

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

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

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

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

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

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

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

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen: lausthal Informatik II Divide & onquer. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Algorithmen-Design-Techniken Die wichtigsten Entwurfsverfahren für Algorithmen: 1. Divide and onquer

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

Ü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

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

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

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

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

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

Mehr

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

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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

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

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

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Kurs 1663 Datenstrukturen Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

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

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung Das Voronoi Diagramm 1. Definition 2. Eigenschaften 3. Größe und Speicherung 4. Konstruktion 5. Verwendung Das Voronoi- Diagramm Voronoi Regionen Euklidische Distanz: d(p,q) = (px-qx)^2+(py-qy)^2 Das Voronoi-Diagramm

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

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

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

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

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

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)

Mehr

2.4. Triangulierung von Polygonen

2.4. Triangulierung von Polygonen Als drittes Problem haben wir in Kapitel 1 die Triangulierung von Polygonen identifiziert, die etwa bei der Überwachung eines Museums durch Kameras auftritt. F70 F71 Definition und Theorie: Definition

Mehr

Geometrische Datenstrukturen

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

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

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

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

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

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

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

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

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

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

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr 4. Übung Abgabe bis 25.11.2016, 16:00 Uhr Aufgabe 4.1: Verklemmungsbedingungen a) Welche drei Bedingungen müssen gelten, damit es zu einer Verklemmung in einem parallelen System kommen kann? b) Nach welcher

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Programmiertechnik II

Programmiertechnik II Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel

Mehr

Triangulierung von einfachen Polygonen

Triangulierung von einfachen Polygonen Triangulierung von einfachen Polygonen Tobias Kyrion Inhaltsverzeichnis 1.1 Die Problemstellung....................... 1 2.1 Ein naiver Algorithmus...................... 2 3.1 Zerlegung in monotone Teilpolygone..............

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

Sweep-Verfahren (Scan-Verfahren, Scanlinien- / Scanebenen- Verfahren): wichtige algorithmische Technik / Paradigma analog zu "divide and conquer"

Sweep-Verfahren (Scan-Verfahren, Scanlinien- / Scanebenen- Verfahren): wichtige algorithmische Technik / Paradigma analog zu divide and conquer 3. Das Sweep-Verfahren Sweep-Verfahren (Scan-Verfahren, Scanlinien- / Scanebenen- Verfahren): wichtige algorithmische Technik / Paradigma analog zu "divide and conquer" Prinzip: Rückführung eines n-dim.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele

Mehr

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

Geometrie 1. Christian Bay Christian Bay Geometrie / 46 Geometrie 1 Christian Bay 02.07.2013 Christian Bay Geometrie 1 02.07.2013 1 / 46 Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 2 / 46 Geometrie

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

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

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

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

Ü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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5) Praktikum Diskrete Optimierung (Teil 5) 6.05.009 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen

Mehr

Übung zur Vorlesung Diskrete Strukturen I

Übung zur Vorlesung Diskrete Strukturen I Technische Universität München WS 00/03 Institut für Informatik Aufgabenblatt 6 Prof. Dr. J. Csirik 18. November 00 Brandt & Stein Übung zur Vorlesung Diskrete Strukturen I Abgabetermin: Tutorübungen am

Mehr

Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen

Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 12 26.6.2012 Matthias Fischer 374 Übersicht Motivation Modell der Sichtbarkeit Eigenschaft

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

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:...

Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:... Praktikum 3 Algorithmik SS 2007 14052007 Aufgabe 9: Aufgabe 10: Das Skyline-Problem Union-Find-Strukturen weitere Aufgaben folgen Name: Matr-Nr: Datum: Unterschrift des Dozenten (wenn bestanden): Aufgabe

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

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben

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

Klausur Algorithmentheorie

Klausur Algorithmentheorie Prof. Dr. G. Schnitger Frankfurt, den 13.02.2009 Klausur Algorithmentheorie WS 2008/2009 Name: Vorname: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen maximal 100 Punkte erreicht

Mehr

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: 1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem

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

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

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens Praktikum Algorithmen-Entwurf (Teil 5)..5 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen Endpunkt

Mehr

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7. Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort

Mehr

6. Triangulation von Polygonen

6. Triangulation von Polygonen 1 6. Triangulation von Polygonen 2 Problemstellung 3 Problemstellung 4 Problemstellung 5 Problemstellung 6 Jedes Polygon lässt sich triangulieren. Wir führen einen Induktionsbeweis nach der Anzahl der

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016

Mehr

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität) Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration

Mehr

1.3 Erinnerung: Mergesort

1.3 Erinnerung: Mergesort Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst:

Mehr

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte

Mehr

Unterlagen zur Vorlesung Algebra und Geometrie in der Schule: Grundwissen über Affine Geometrie. Sommersemester Franz Pauer

Unterlagen zur Vorlesung Algebra und Geometrie in der Schule: Grundwissen über Affine Geometrie. Sommersemester Franz Pauer Unterlagen zur Vorlesung Algebra und Geometrie in der Schule: Grundwissen über Affine Geometrie Sommersemester 2009 Franz Pauer INSTITUT FÜR MATHEMATIK, UNIVERSITÄT INNSBRUCK, TECHNIKERSTRASSE 13, 6020

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

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

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

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

Hans Delfs. Übungen zu Mathematik III für Medieninformatik

Hans Delfs. Übungen zu Mathematik III für Medieninformatik Hans Delfs Übungen zu Mathematik III für Medieninformatik 1 RÄUMLICHE DARSTELLUNGEN VON OBJEKTEN 1 1 Räumliche Darstellungen von Objekten Der Einheitswürfel ist der achsenparallele Würfel in A 3, der von

Mehr