Algorithmische Geometrie 3. Schnitte von Liniensegmenten
|
|
|
- Gertrud Brodbeck
- vor 8 Jahren
- Abrufe
Transkript
1 Algorithmische Geometrie 3. Schnitte von Liniensegmenten JProf. Dr. Heike Leitte Computergraphik und Visualisierung
2 Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4. Schnitte planarer Unterteilungen 5. Triangulierung von Polygonen 6. Lineare Programme 7. Punktsuche 8. Voronoidiagramme und Delaunay-Triangulierung 9. Allgemeine Suchstrukturen Algorithmische Geometrie 3. Schnitte von Liniensegmenten 2
3 Anwendung GIS Als nächstes wenden wir uns Beispiel (2) aus der Einführung zu (Erinnerung: Schnitte von Liniensegmenten in geographischen Informationssystemen.) Algorithmische Geometrie 3. Schnitte von Liniensegmenten 3
4 Schnitte von Liniensegmenten Aus zwei Mengen S 1, S 2 von Liniensegmenten möchten wir alle Schnittpunkte der Segmente aus S 1 mit denen aus S 2 ermitteln. Wir legen fest, dass sich zwei Segmente auch schneiden, falls der Endpunkt des einen Segmentes auf dem anderen liegt. Wir betrachten Segmente also als abgeschlossen. Um es einfacher zu machen, betrachten wir Schnitte in S=S 1 S 2. (Unser Problem lässt sich dann lösen, indem wir bei jedem Schnitt fragen, ob die Segmente zu verschiedenen Mengen gehören.) Algorithmische Geometrie 3. Schnitte von Liniensegmenten 4
5 Problem Offensichtlich ist der Schnitttest zweier Segmente in konstanter Zeit zu lösen und folglich eine brute-force Lösung in O(n 2 ) Schritten möglich. Dies ist sogar optimal, falls jedes Segment jedes andere schneidet. Allerdings ist dies in der Praxis meistens nicht der Fall. Wir suchen also einen outputsensitiven Algorithmus, dessen Komplexität von der Größe des Output (Anzahl der Schnittpunkte) abhängt. Wie soll das gehen? Algorithmische Geometrie 3. Schnitte von Liniensegmenten 5
6 Sweep Line Ansatz Im Wesentlichen wollen wir ausnutzen, dass sich nur "nahe" Segmente auch schneiden können. Liegen zwei Segmente S 1, S 2 etwa so, dass sich das Intervall der y-koordinaten der Punkte in S 1 außerhalb des Intervalls der y-koordinaten der Punkte in S 2 befindet, so gibt es keinen Schnitt. Um nur potentielle Schnitte testen zu müssen, verfolgen wir eine horizontale Gerade (Sweep Line, engl. to sweep = fegen, kehren, abtasten), die sich von oben nach unten bewegt und testen nur Segmente, die die Gerade schneiden => Plane Sweep. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 6
7 Sweep Line Zustand Als Zustand unserer Sweep Line definieren wir die von ihr geschnittenen Liniensegmente. Dieser Zustand ändert sich, wenn sich die Gerade nach unten bewegt, und zwar stets dann, wenn ein Segmentpunkt erreicht wird, da ein Segment ausscheidet oder ein neues hinzukommt. Diese Punkte nennen wir Ereignispunkte (engl. event point). Wenn ein neues Segment zum Zustand der Sweep Line hinzukommt, testen wir es auf Schnitte mit allen Segmenten die bereits im Zustand gespeichert sind. (Also mit allen Liniensegmenten, die die Sweep Line schneiden und vor dem aktuellen Ereignispunkt angefangen haben.) Algorithmische Geometrie 3. Schnitte von Liniensegmenten 7
8 Sweep Line Neue Ereignisse Leider stellt sich das Problem etwas schwieriger dar: Wir können noch immer viel zu viele Tests durchführen, etwa bei einer Menge vertikaler Segmente, die die x-achse schneiden. Daher ordnen wir die Segmente entlang der Sweep Line und testen nur Nachbarn auf Schnitte. Ferner führen wir Schnitte als weitere Ereignisse ein, da sich dort die Reihenfolge der Segmente ändert. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 8
9 Korrektheitsbeweis Außer in einigen Spezialfällen (horizontale Segmente, überlappenden Segmente, Schnitt von mehr als zwei Segmenten in einem Punkt) ist unser Algorithmus nun korrekt: Lemma 25: Seien S i und S j zwei nicht-horizontale Segmente, die sich im inneren Punkt p schneiden, und es gebe kein drittes Segment durch p. Dann gibt es einen Ereignispunkt oberhalb von p, an dem S i und S j benachbart werden und somit auf Schnitt getestet werden. Beweis: Einerseits sind S i und S j für eine horizontale Gerade l ausreichend nahe oberhalb von p benachbart. (Nimm an, dass alle Ereignisse oberhalb p gefunden werden und wähle l zwischen dem niedrigsten dieser Ereignisse und p!) Andererseits ist der Zustand der Sweep Line oberhalb aller Segmente leer, also wird ein Ereignis behandelt, an dem S i und S j Nachbarn werden. (Sobald S i und S j Nachbarn werden, wird ein Schnitttest durchgeführt, der dann positiv ausfällt.) QED Algorithmische Geometrie 3. Schnitte von Liniensegmenten 9
10 Zusammenfassung des Algorithmus Zusammenfassung: Sweep-line wird von oben nach unten bewegt. Sie hält an bestimmten Ereignispunkten (Endpunkte der Liniensegmente, Schnittpunkte). An den Ereignispunkten ändert sich die Anordnung der Liniensegmente muss der Status (geschnittene Liniensegmente) angepasst werden und auf Schnitte getestet werden. Die von der Sweep-line geschnittenen Liniensegmente werden in geordneter Folge gespeichert. Aktionen an Ereignispunkten: oberer Endpunkt: Schnitttest mit beiden Nachbarn Schnittpunkt: Ordnung der beiden Segmente ändert sich (neue Nachbarn Schnitttest) unterer Endpunkt: Nachbarn des Segments werden zu neuen Nachbarn Schnitttest Algorithmische Geometrie 3. Schnitte von Liniensegmenten 10
11 Datenstruktur Ereignispunkte Unser Algorithmus funktioniert also bis auf Spezialfälle und wir können uns an die Datenstrukturen begeben. Für die Ereigniswarteschlange (engl. event queue) Q fordern wir: Eine Remove-Funktion, die den nächsten Event Point liefert, und zwar nach y- Koordinate und bei gleichen y-werten nach x-koordinate geordnet. Eine Insert-Funktion, die mehrfaches Einfügen des gleichen Events unterbindet (etwa bei zwei Segmenten mit gleichem Startpunkt) Als Implementierung verwenden wir einen ausgeglichenen binären Suchbaum, so dass beide Operationen O(log m) Schritte für m Elemente in Q benötigen. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 11
12 Datenstrukturen in der STL Klassen in der STL und Komplexität im gegebenen Fall: einfügen löschen Idee vector O(n) O(n) Array deque O(n) O(1) - O(n) Queue mit zwei Enden list O(n) O(1) Verkettete Liste stack - - Stapel queue - - FIFO set O( log(n) ) O( log(n) ) map O( log(n) ) O( log(n) ) Menge (Element ist Schlüssel) Menge mit extra Schlüssel Algorithmische Geometrie 3. Schnitte von Liniensegmenten 12
13 Datenstruktur Zustand der Sweep Line Für die Zustandsstruktur T bestehend aus der geordneten Liste der Segmente benötigen wir: Insert Remove LeftNeighbor, RightNeighbor gemäß Sortierung Wieder verwenden wir einen ausgeglichenen binären Suchbaum. (Dabei ist es zuweilen etwas einfacher die Objekte nur in den Blättern abzulegen, aber dies ist nicht nötig und kostet Speicher.) Wieder erfordern alle Operationen O(log n) Schritte. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 13
14 Algorithmus Der Algorithmus hat folgende Gestalt. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 14
15 Algorithmus Algorithmische Geometrie 3. Schnitte von Liniensegmenten 15
16 Algorithmus Änderung des Status Bemerkung: An event point and the changes in the status structure Wenn es in Zeile 8 16 keinen Nachbarn gibt, sind entsprechende Schnittberechnungen zu unterlassen. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 16
17 Algorithmus Neue Ereignispunkte Um auch mit horizontalen Segmenten umgehen zu können, setzen wir Algorithmische Geometrie 3. Schnitte von Liniensegmenten 17
18 Korrektheitsbeweis Lemma 2.6: FINDINTERSECTIONS berechnet alle Schnittpunkte und die betroffenen Segmente korrekt. Beweis: Induktion über die Reihenfolge der Ereignispunkte Sei p ein Schnittpunkt und seien alle Ereignispunkte q vor p korrekt behandelt. Seien U(p) die Segmente mit p als oberen Endpunkt, L(p) die Segmente mit p als unterem Endpunkt und C(p) die Segmente mit p im Inneren. z.z.: p und alle Segmente, die p enthalten, wurden korrekt berechnet: QED p ist Endpunkt: Wenn p ein Endpunkt eines Segmentes ist, wird p zu Beginn in Q eingefügt und alle Segmente in U(p) in p gespeichert. Wenn p behandelt wird, werden Segmente in L(p) und C(p) in T gespeichert sein und dann in Zeile 2 von HANDLEEVENTPOINT gefunden. p ist kein Endpunkt: Wenn p kein Endpunkt eines Segmentes ist, haben alle betroffenen Segmente p als inneren Punkt. Wir ordnen diese Segmente nach dem Winkel und betrachten zwei benachbarte Segmente S i und S j. Nach dem Beweis von Lemma 2.5 gibt es dann einen Ereignispunkt q vor p, an dem S i und S j Nachbarn werden und p entdeckt wird. (Dass wir in 2.5. horizontale Segmente ausgeschlossen haben, lässt sich schnell korrigieren.) Algorithmische Geometrie 3. Schnitte von Liniensegmenten 18
19 Laufzeit n: Anzahl Liniensegmente m: p m(p) m(p) := card( L(p) + U(p) + C(p) ) O(n log n) O(1) O(m log n) } O( (n + m) log n ) Algorithmische Geometrie 3. Schnitte von Liniensegmenten 19
20 Laufzeit n: Anzahl Liniensegmente m: p m(p) m(p) := card( L(p) + U(p) + C(p) ) O(n log n) O(1) O(m log n) } O( (n + m) log n ) O(1) O(log n) O(log n) O(log n) O(log n) max 2x Algorithmische Geometrie 3. Schnitte von Liniensegmenten 20
21 Laufzeit Obere Schranke für m: O( n + k ) z.z.: m = O( n + I ) mit k = Größe der Ausgabe mit I = Anzahl der Schnittpunkte Die Segmente und ihre Schnittpunkte kann man sich als planaren Graphen (keine Überschneidungen zwischen Kanten) vorstellen. Vertices: Endpunkte und Schnittpunkte Kanten: Segmentstücke, die Vertices verbinden m(p) = O( Grad p ) m = O( Grad p ) 2 Knoten pro Kanten m = O( 2 nedges ) p per Def.: nvertices 2n + I nfaces 2 nedges / 3 nach Euler: nvertices nedges + nfaces 2 nach Einsetzen: nedges 6n + 3I - 6 m 12n + 6I - 12 Algorithmische Geometrie 3. Schnitte von Liniensegmenten 21
22 Laufzeit Obere Schranke für m: O( n + k ) z.z.: m = O( n + I ) mit k = Größe der Ausgabe mit I = Anzahl der Schnittpunkte Die Segmente und ihre Schnittpunkte kann man sich als planaren Graphen (keine Überschneidungen zwischen Kanten) vorstellen. Vertices: Endpunkte und Schnittpunkte Kanten: Segmentstücke, die Vertices verbinden m(p) = O( Grad p ) m = O( Grad p ) 2 Knoten pro Kanten m = O( 2 nedges ) p per Def.: nvertices 2n + I nfaces 2 nedges / 3 nach Euler: nvertices nedges + nfaces 2 nach Einsetzen: nedges 6n + 3I - 6 m 12n + 6I - 12 Algorithmische Geometrie 3. Schnitte von Liniensegmenten 22
23 Laufzeit n: Anzahl Liniensegmente l: Anzahl der Schnitte O(n log n) O(1) O((n+l) log n) } O( (n + l) log n ) Algorithmische Geometrie 3. Schnitte von Liniensegmenten 23
24 Laufzeit Algorithmische Geometrie 3. Schnitte von Liniensegmenten 24
25 Laufzeit Es gilt ferner, dass der Algorithmus O((n+k)log(n)) Schritte benötigt, wobei k die Anzahl sich schneidender Segmente ist. Es gilt sogar Lemma 2.7.: Die Laufzeit des Algorithmus FINDINTERSECTIONS für eine Menge S von n Liniensegmenten ist O(n log n+i log n), wobei I die Anzahl von Schnittpunkten von Segmenten in S ist. Beweis: Der Aufbau von Q mit den Endpunkten erfordert O(n log n) Zeit. T ist zunächst leer, also O(1). Eine Ereignisbehandlung erfordert drei Operationen auf Q, das Löschen von p in Zeile 4 von FINDINTERSECTIONS und ein oder zwei Aufrufe von FINDNEWEVENT mit bis zu zwei neuen Events in Q. Also ist das Update von Q O(log n). Wir führen außerdem Operationen auf T (Einfügen, Löschen, Nachbarsuche) durch und zwar linear in m p = U p C p L p. Mit m:= m p folgt O(m log n) für den Algorithmus. p Algorithmische Geometrie 3. Schnitte von Liniensegmenten 25
26 Laufzeit Es gilt sicher m = O(n + k), da wir für m(p) > 1 alle betroffenen Segmente auf einmal liefern. Um m = O(n + I) zu zeigen, fassen wir unser Problem als Graph mit Endpunkten und Schnittpunkten als Knoten und Segment(-teilen) als Kanten auf. Dann ist m(p) durch den Grad des Knotens beschränkt und da jede Kante im Graph zwei Knoten trifft, gilt m < 2n e mit n e Anzahl Kanten im Graph. Mit der Anzahl n der Endpunkte und I der Schnitte ergibt sich n v 2n I mit n v Anzahl Knoten im Graph. Wegen n e = O(n v ) (Euler Formel n v n e n f 2 mit n f Anzahl der Flächen und n f < 2/3 n e, da jede Kante nur zwei Flächen beranden kann und jede Fläche von mind. 3 Kanten berandet werden muss) folgt die Aussage. QED Algorithmische Geometrie 3. Schnitte von Liniensegmenten 26
27 Speicherplatz Für den Speicherplatz gilt, dass T nie mehr als alle n Segmente enthält, also O(n) Speicherplätze benötigt. Q kann größer sein, aber es reicht, nur die Schnitte gerade in T benachbarter Segmente zu speichern, also O(n) Speicherplätze für Q. Theorem 2.8.: Sei S eine Menge von n Liniensegmenten in der Ebene. Alle Schnittpunkte in S mit den betroffenen Segmenten können in O(n log n + I log n) Schritten und O(n) Speicherplätzen gefunden werden, wobei I die Anzahl der Schnittpunkte ist. Algorithmische Geometrie 3. Schnitte von Liniensegmenten 27
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
Algorithmische Geometrie
Algorithmische Geometrie 1-1 Inhaltsverzeichnis 1. Einführung 2. Basiskonzepte 3. Punktsuche 4. Voronoidiagramme und Delaunaytriangulierung 5. Allgemeine Suchstrukturen 1-2 1.1. Was ist? (Computational
Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
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:
Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29
1 29 Teil III: Routing - Inhalt I Literatur Compass & Face Routing Bounded & Adaptive Face Routing Nicht Ω(1) UDG E. Kranakis, H. Singh und Jorge Urrutia: Compass Routing on Geometric Networks. Canadian
Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
Algorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)
Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,
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
AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
Algorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
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)
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
Algorithmen und Datenstrukturen Balancierte Suchbäume
Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen
3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel
3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36
Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany [email protected]. Stammbaum. Stammbaum. Stammbaum
lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany [email protected]. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum
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
Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
Programmiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
Graphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
Tutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
6-1 A. Schwill Grundlagen der Programmierung II SS 2005
6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und
Peer-to-Peer- Netzwerke
Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 14. Vorlesung 23.06.2006 [email protected] 1 Evaluation der Lehre im SS2006 Umfrage zur Qualitätssicherung und -verbesserung
9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen
9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel
Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
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
Sortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
Kap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
Suchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
Pratts Primzahlzertifikate
Pratts Primzahlzertifikate Markus Englert 16.04.2009 Technische Universität München Fakultät für Informatik Proseminar: Perlen der Informatik 2 SoSe 2009 Leiter: Prof. Dr. Nipkow 1 Primzahltest Ein Primzahltest
ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK
ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
Algorithms for Regression and Classification
Fakultät für Informatik Effiziente Algorithmen und Komplexitätstheorie Algorithms for Regression and Classification Robust Regression and Genetic Association Studies Robin Nunkesser Fakultät für Informatik
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
Datenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen
Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung
Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Autentizierung und Bilderkennung Inhaltsverzeichnis 1 Einleitung Das graphische Model.1 Image Thinning................................. 3.
Download. Mathematik üben Klasse 8 Funktionen. Differenzierte Materialien für das ganze Schuljahr. Jens Conrad, Hardy Seifert
Download Jens Conrad, Hard Seifert Mathematik üben Klasse 8 Funktionen Differenzierte Materialien für das ganze Schuljahr Downloadauszug aus dem Originaltitel: Mathematik üben Klasse 8 Funktionen Differenzierte
Grundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
Anmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06
Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter
Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3
Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen
Fully dynamic algorithms for the single source shortest path problem.
Fully dynamic algorithms for the single source shortest path problem. Michael Baur Wintersemester 2001/2002 Zusammenfassung Im folgenden Paper werde ich Algorithmen für das dynamische Kürzeste-Wege-Problem
Kapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
Einführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
Vorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
3. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Java Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm
Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende
SS 2005 FAU Erlangen 20.6.2005. Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner
SS 2005 FAU Erlangen 20.6.2005 Voronoi Diagramm Eine Wegeplanungs-Strategie Jeremy Constantin, Michael Horn, Björn Gmeiner Grundseminar: Umgebungsexploration und Wegefindung mit Robotern am Beispiel "Katz
S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
Codierung, Codes (variabler Länge)
Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls
Das Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
14 Teiler verschieben
14 Teiler verschieben In diesem Werkzeug sind alle Funktionen zusammengefasst, die Sie zum Verschieben, Ausrichten oder Drehen von Teilern benötigen. Als Teiler werden in diesem Zusammenhang Pfosten, Riegel,
Seminar Komplexe Objekte in Datenbanken
Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de
3 Aufbau einer 2D-Zeichnung am Beispiel einer Türe Detailzeichnung, Symbol anlegen und Werkzeichnung
3 Aufbau einer 2D-Zeichnung am Beispiel einer Türe Detailzeichnung, Symbol anlegen und Werkzeichnung Lernziele - Detail zeichnen - Schraffuren zuweisen - Flächen und Geraden schneiden - Objekte öffnen
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Algorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Organic Computing: Peer-to-Peer-Netzwerke
Organic Computing Peer-to-Peer-Netzwerke Rolf Wanka Sommersemester 2015 [email protected] Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter dem Overlay Die ersten Peer-to-Peer-Netzwerke
Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1
Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu
4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
Grundregeln der Perspektive und ihre elementargeometrische Herleitung
Vortrag zu Mathematik, Geometrie und Perspektive von Prof. Dr. Bodo Pareigis am 15.10.2007 im Vorlesungszyklus Naturwissenschaften und Mathematische Wissenschaften im Rahmen des Seniorenstudiums der LMU.
Lenstras Algorithmus für Faktorisierung
Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit
Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time
Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer
Um Übergänge, Ein- und Ausblendung zu gestalten, kann man hier eine Leere vor oder nach einem Clip einfügen. Ein Clip ist ein einzelner Film.
Hier fügt man eine Videodatei (z.b. mp4) hinzu. Man wählt die gewünschte Datei aus und drückt auf öffnen. Um Übergänge, Ein- und Ausblendung zu gestalten, kann man hier eine Leere vor oder nach einem Clip
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Traversierung Durchlaufen eines Graphen, bei
16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
Laufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
Kompakte Graphmodelle handgezeichneter Bilder
Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Authentizierung und Bilderkennung Inhaltsverzeichnis Seminar Mustererkennung WS 006/07 Autor: Stefan Lohs 1 Einleitung 1 Das graphische Modell.1
DATENSTRUKTUREN UND ZAHLENSYSTEME
DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: [email protected] Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
Algorithmen und Datenstrukturen SS09
Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell
Codierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
Modelle und Statistiken
Kapitel 4 Modelle und Statistiken In letzter Zeit werden vermehrt Parameter (Gradfolgen, Kernzahlfolgen, etc.) empirischer Graphen (Internet, WWW, Proteine, etc.) berechnet und diskutiert. Insbesondere
Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1
Abiturprüfung Mathematik (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe Für jedes t f t () + t R ist die Funktion f t gegeben durch = mit R. Das Schaubild von f t heißt K t.. (6 Punkte)
PROSEMINAR ONLINE ALGORITHMEN
PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
Programmierung und Modellierung
Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:
Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter
UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html
Einführung in (Binäre) Bäume
edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard [email protected] äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,
Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]
UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha
MATHEMATISCHE ANALYSE VON ALGORITHMEN
MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien [email protected] www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus
1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr
8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen
Bestimmung einer ersten
Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,
