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

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität elementarer geometrischer Probleme geht

3 Kürzeste Abstände nearest neighbour problem - closest pair problem - closest points problem Anwendung z.b.: Radarbeobachtung, Flugsicherung

4 Kürzeste Abstände nearest neighbour problem - closest pair problem - closest points problem Anwendung z.b.: Radarbeobachtung, Flugsicherung

5 Kürzeste Abstände nearest neighbour problem - closest pair problem - closest points problem Anwendung z.b.: Radarbeobachtung, Flugsicherung

6 Kürzeste Abstände nearest neighbour problem - closest pair problem - closest points problem Anwendung z.b.: Radarbeobachtung, Flugsicherung

7 Kürzeste Abstände nearest neighbour problem - closest pair problem - closest points problem Anwendung z.b.: Radarbeobachtung, Flugsicherung

8 Kürzeste Abstände nearest neighbour problem - closest pair problem - closest points problem Anwendung z.b.: Radarbeobachtung, Flugsicherung

9 Kürzeste Abstände - Problemstellung Gegeben n Punkte P 1=(x1,y1),..., Pn=(xn,yn), xi,yi IR, n 1, in der Ebene: Man bestimme ein Paar von Punkten (xj,yj), (xk,yk), j k, mit d((xj,yj),(xk,yk)) d((xp,yp),(xq,yq)) für alle 1 p<q n wobei Euklidische Metrik gilt: d((x,y),(x',y'))= (x-x') 2 +(y-y') 2

10 Kürzeste Abstände - naive Lösung Brute-force-Methode: bestimme den Abstand aller Punktepaare gib den kleinsten Abstand aus Laufzeit: O(n2 ) Besserer (bester) Algorithmus: O(n log n) Laufzeit

11 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema:

12 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema:

13 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema:

14 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: Scan line/sweep line

15 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: Scan line/sweep line

16 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: tote Objekte Scan line/sweep line

17 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: tote Scan line/sweep line Für diesen Bereich liegt eine Lösung L vor, die alle toten Objekte erfaßt Objekte

18 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: tote Scan line/sweep line Für diesen Bereich liegt eine Lösung L vor, die alle toten Objekte erfaßt Objekte schlafende Objekte

19 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: tote Scan line/sweep line Für diesen Bereich liegt eine Lösung L vor, die alle toten Objekte erfaßt Objekte schlafende Objekte

20 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Plane-sweeping Schema: tote Scan line/sweep line Für diesen Bereich liegt eine Lösung L vor, die alle toten Objekte erfaßt Objekte schlafende Objekte aktives Objekt; das Objekt ist in L zu integrieren

21 algor. Paradigma - Plane sweeping zugrundliegendes universelles Muster: Schema: tote Für diesen Bereich liegt eine Lösung L vor, die alle toten Objekte erfaßt Objekte Beobachte: Scan line kann statt kontinuierlich diskret über die Szene geschwenkt werden, entspr. der Scan line/sweep aufsteigenden linesortierung der x-werte der Objekte (Haltepunkte) Plane-sweeping schlafende Objekte aktives Objekt; das Objekt ist in L zu integrieren

22 Kürzeste Abstände - Algorithm. Schema Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end.

23 Kürzeste Abstände - Schemaanwendung Anfangssituation

24 Kürzeste Abstände - Schemaanwendung Anfangssituation

25 Kürzeste Abstände - Schemaanwendung Anfangssituation

26 Kürzeste Abstände - Schemaanwendung Zwischensituation P

27 Kürzeste Abstände - Schemaanwendung Zwischensituation P

28 Kürzeste Abstände - Schemaanwendung Zwischensituation d P

29 Kürzeste Abstände - Schemaanwendung Zwischensituation d P

30 Kürzeste Abstände - Schemaanwendung Zwischensituation d d P

31 Kürzeste Abstände - Schemaanwendung Zwischensituation d d P

32 Kürzeste Abstände - Schemaanwendung Zwischensituation d d P

33 Kürzeste Abstände - Schemaanwendung Zwischensituation d d P

34 Kürzeste Abstände - Schemaanwendung Zwischensituation d d P

35 Kürzeste Abstände - Schemaanwendung Zwischensituation d d P

36 Kürzeste Abstände - Schemaanwendung Zwischensituation d d d' P

37 Kürzeste Abstände - Schemaanwendung Zwischensituation d d' P

38 Kürzeste Abstände - Schemaanwendung Zwischensituation (Vorgehen): Prüfe, ob P zu einem neuen Abstand führt Das ist nur dann der Fall, wenn es im Halbkreis um P mit Radius d Knoten gibt Prüfe alle Knoten im Halbkreis durch? Problem: Wieviele Punkte können im Halbkreis liegen? P

39 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end.

40 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end. O(n log n)

41 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end. O(n) Durchläufe O(n log n)

42 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end. O(n) Durchläufe O(1) O(n log n)

43 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end. O(n) Durchläufe O(1) O(1) O(n log n)

44 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end. O(n) Durchläufe O(n log n) O(1) O(1) Überprüfe alle Punkte im Halbkreis um P auf ihren Abstand zu P; zeige: im Halbkreis max. 4 Punkte. O(1)

45 Kürzeste Abstände - Laufzeitanalyse Q:=Liste von Haltepunkten nach x- Koordinate sortiert; L:= ; {L: Lösungsmenge} while Q do begin q:=first(q); Q:=rest(Q); update(l,q) end. O(n) Durchläufe O(n log n) Insgesamt: O(n log n) O(1) O(1) Überprüfe alle Punkte im Halbkreis um P auf ihren Abstand zu P; zeige: im Halbkreis max. 4 Punkte. O(1)

46 Kürzeste Abstände - Halbkreisanalyse d d P Halbkreisanfragen sind aufwendig. Daher: Erweitere den Halbkreis mit Radius d auf ein Rechteck mit Kantenlängen d und 2d. Zeige: Rechteck enthält max. 10 Punkte.

47 Kürzeste Abstände - Halbkreisanalyse d d P Halbkreisanfragen sind aufwendig. Daher: Erweitere den Halbkreis mit Radius d auf ein Rechteck mit Kantenlängen d und 2d. Zeige: Rechteck enthält max. 10 Punkte.

48 Kürzeste Abstände - Halbkreisanalyse d P Halbkreisanfragen sind aufwendig. Daher: Erweitere den Halbkreis mit Radius d auf ein Rechteck mit Kantenlängen d und 2d. Zeige: Rechteck enthält max. 10 Punkte.

49 Kürzeste Abstände - Halbkreisanalyse d P d Halbkreisanfragen sind aufwendig. Daher: Erweitere den Halbkreis mit Radius d auf ein Rechteck mit Kantenlängen d und 2d. Zeige: Rechteck enthält max. 10 Punkte.

50 Kürzeste Abstände - Halbkreisanalyse 2d d P d Halbkreisanfragen sind aufwendig. Daher: Erweitere den Halbkreis mit Radius d auf ein Rechteck mit Kantenlängen d und 2d. Zeige: Rechteck enthält max. 10 Punkte.

51 Kürzeste Abstände - Halbkreisanalyse 2d d P d

52 Kürzeste Abstände - Halbkreisanalyse 2d d P d Anfrage an Rechteck: Vergleiche nur x- und y-koordinaten der Punkte mit denen von P.

53 Kürzeste Abstände - Lemma Lemma: Sei d>0 und S eine Menge von Punkten in der Ebene, die paarweise Abstand d besitzen. Dann enthält ein Rechteck mit Kantenlängen d und 2d höchstens 10 Punkte aus S.

54 Kürzeste Abstände - Lemmabeweis Beweis: Nach Voraussetzung sind die offenen Kreise um p S mit Radius d/2 paarweise disjunkt. Liegt p in einem Rechteck R mit Kantenlänge d und 2d, so ist mindestens 1/4 der offenen Kreisscheibe in R enthalten. Durch Flächenberechnung ergibt sich, daß R höchstens Fläche(R) = d 2 = <11 Fläche(Viertelkreis) ( viele Punkte von S enthalten 1 /4)π( kann. d /2) 2 π

55 Kürzeste Abstände - Ergebnis Ergebnis: update(l,q) bei Hinzunahme eines neuen Punkts benötigt O(1) Zeit (bei geeigneter Implementierung). Gesamtalgorithmus: O(n log n) Zeit.

56 Kürzeste Abstände - Animation ClosestPairAP.html Zugriff:

57 Kürzeste Abstände - Implementierung d P

58 Kürzeste Abstände - Implementierung d P x_array

59 Kürzeste Abstände - Implementierung d P x_array

60 Kürzeste Abstände - Implementierung d P x_array

61 Kürzeste Abstände - Implementierung d P x_array

62 Kürzeste Abstände - Implementierung d P x_array

63 Kürzeste Abstände - Implementierung d P x_array

64 Kürzeste Abstände - Implementierung d P x_array

65 Kürzeste Abstände - Implementierung d P x_array

66 Kürzeste Abstände - Implementierung d P x_array

67 Kürzeste Abstände - Implementierung d P x_array aktuell

68 Kürzeste Abstände - Implementierung d P x_array links aktuell

69 Kürzeste Abstände - Implementierung d P x_array links aktuell

70 Kürzeste Abstände - Implementierung d P x_array links aktuell

71 Kürzeste Abstände - Implementierung P x_array links aktuell

72 Kürzeste Abstände - Implementierung P Prüfe y-koordinaten aller Punkte zwischen links und aktuell-1, ob sie in das Rechteck P.y±d fallen x_array links aktuell

73 Kürzeste Abstände - Implementierung Anlegen einer Datenstruktur Y für die Punkte zwischen links und aktuell, sortiert nach y- Koordinate Datenstruktur wird dynamisch immer wieder mit den relevanten Punkten bestückt effizientes Einfügen, Löschen erforderlich effiziente Bereichssuche (range query) der Art: liefere alle Punkte P mit x_array[aktuell].y-d P.y x_array[aktuell].y+d Implementierung von Y: z.b. als AVL-Baum mit linearer Verkettung der Knoten ( Y 10)

74 Kürzeste Abstände - Algorithmus Initialisierung: Sortiere Punkte aufsteigend nach x-koordinate in x_array; füge P1, P2 in Y ein; d:=d(p1, P2); links:=1; aktuell:=3;

75 Kürzeste Abstände - Algorithmus Schleife: while aktuell n do if x_array[links].x+d x_array[aktuell].x then entferne Punkt x_array[links] aus Y; links:=links+1 else füge Punkt x_array[aktuell] in Y ein; aktuell:=aktuell+1; d:=min_d(y,x_array[aktuell],d) write(d).

76 Kürzeste Abstände - Algorithmus Schleife: while aktuell n do if x_array[links].x+d x_array[aktuell].x then entferne Punkt x_array[links] aus Y; links:=links+1 else füge Punkt x_array[aktuell] in Y ein; aktuell:=aktuell+1; d:=min_d(y,x_array[aktuell],d) write(d). range query mit Laufzeit O(log n)

77 Konvexe Hülle - Problemstellung Gegeben: n Punkte im d-dimensionalen Raum (hier nur d=2) Gesucht: kleinste konvexe Hülle, die alle Punkte enthält (Ausgabe der zur Hülle gehörenden Punkte im Uhrzeigersinn) Eselbrücke: kürzester Zaun um Goldminen

78 Konvexe Hülle - Beispiel

79 Konvexe Hülle - Beispiel

80 Konvexe Hülle - Beispiel

81 Konvexe Hülle - Konvexität Definition Eine Menge M IR n heißt konvex, wenn mit je zwei Punkten x,y M die gesamte Strecke von x nach y in M liegt.

82 Konvexe Hülle - Konvexität Definition Eine Menge M IR n heißt konvex, wenn mit je zwei Punkten x,y M die gesamte Strecke von x nach y in M liegt. konvex nicht konvex

83 Konvexe Hülle - Konvexität Definition Die konvexe Hülle einer Menge M IR n ist die kleinste konvexe Menge, die M enthält.

84 Konvexe Hülle - Lösungsidee Divide-and-conquer-Verfahren Divide: Teile Punkteschar in zwei etwa gleichgroße Teile Bestimme konvexe Hülle für jede Teilpunktemenge Conquer: Verschmelze beide konvexen Hüllen zu einer einzigen für die Gesamtpunktemenge

85 Konvexe Hülle - Divide

86 Konvexe Hülle - Divide

87 Konvexe Hülle - Teillösungen

88 Konvexe Hülle - Teillösungen

89 Konvexe Hülle - Teillösungen

90 Konvexe Hülle - Conquer

91 Konvexe Hülle - Conquer

92 Konvexe Hülle - Conquer

93 Konvexe Hülle - Conquer

94 Konvexe Hülle - Conquer

95 Konvexe Hülle - Algorithmus var P: "nach x-koordinate aufsteigend sortierte Folge von Punkten (p1,...,pn)"; k: integer; if P 3 then "Berechne konvexe Hülle H von P auf direkte Weise" else k:= P /2 ; P1:= (p1,...,pk); P2:= (pk+1,...,pn); "Wende Verfahren rekursiv auf P1 und P2 an und erhalte zwei konvexe Hüllen H1 und H2"; "Verbinde H1 und H2 und erhalte die gesuchte konvexe Hülle H von P".

96 Konvexe Hülle - Algorithmus var P: "nach x-koordinate aufsteigend sortierte Folge von Punkten (p1,...,pn)"; k: integer; if P 3 then "Berechne konvexe Hülle H von P auf direkte Weise" else k:= P /2 ; schwierigster P1:= (p1,...,pk); P2:= (pk+1,...,pn); "Wende Verfahren rekursiv auf P1 und P2 Teil an und erhalte zwei konvexe Hüllen H1 und H2"; "Verbinde H1 und H2 und erhalte die gesuchte konvexe Hülle H von P".

97 Konvexe Hülle - Conquer

98 Konvexe Hülle - Conquer Brücke b1

99 Konvexe Hülle - Conquer Brücke b1 Brücke b2

100 Konvexe Hülle - Conquer Brücke b1 rechtester Punkt der linken Hülle pk pk Brücke b2

101 Konvexe Hülle - Conquer Brücke b1 linkester Punkt der rechten Hülle pk+1 pk+1 rechtester Punkt der linken Hülle pk pk Brücke b2

102 Konvexe Hülle - Conquer Brücke b1 linkester Punkt der rechten Hülle pk+1 pk+1 rechtester Punkt der linken Hülle pk pk Brücke b2

103 Konvexe Hülle - Conquer Brücke b1 linkester Punkt der rechten Hülle pk+1 pk+1 s rechtester Punkt der linken Hülle pk pk Brücke b2

104 Konvexe Hülle - Bestimmung Brücke b1 u:=pk; v:=pk+1; s:=strecke uv; while "der auf u gegen den Uhrzeigersinn in der linken Hülle folgende Punkt u' oder der auf v im Uhrzeigersinn in der rechten Hülle folgende Punkt v' liegen oberhalb von s" do if "die while-bedingung trifft auf u zu" then u:=u' else v:=v'. Analog für b2

105 Konvexe Hülle - Conquer pk+1 s pk

106 Konvexe Hülle - Conquer pk+1 s pk

107 Konvexe Hülle - Conquer pk+1 s pk

108 Konvexe Hülle - Conquer pk+1 s pk

109 Konvexe Hülle - Conquer pk+1 s pk

110 Konvexe Hülle - Conquer pk+1 s pk

111 Konvexe Hülle - Conquer pk+1 s pk

112 Konvexe Hülle - Conquer pk+1 s pk

113 Konvexe Hülle - Conquer pk+1 s pk

114 Konvexe Hülle - Conquer pk+1 s pk

115 Konvexe Hülle - Conquer pk+1 s pk

116 Konvexe Hülle - Conquer pk+1 s pk

117 Konvexe Hülle - Conquer pk+1 s pk

118 Konvexe Hülle - Conquer pk+1 s pk

119 Konvexe Hülle - Conquer pk+1 s pk

120 Konvexe Hülle - Laufzeit Man zeigt für die Laufzeit T leicht: T(n)=2T( n /2)+O(n) T(3)=1 Lösung: T(n)=O(n log n)

121 Konvexe Hülle - untere Schranke Geht es noch effizienter als O(n log n)? NEIN! Zeige: Ein Algorithmus zur Bestimmung der konvexen Hülle ist zugleich ein Algorithmus zum Sortieren. Könnte man die konvexe Hülle für n Punkte also schneller bestimmen als O(n log n), so könnte man schneller sortieren als O(n log n). Widerspruch!! Man reduziert das Sortierproblem auf das Problem der konvexen Hülle (Reduktion).

122 Konvexe Hülle - untere Schranke Satz Ein Algorithmus zur Bestimmung der konvexen Hülle von n Punkten in der Ebene benötigt mindestens O(n log n) Vergleiche.

123 Konvexe Hülle - untere Schranke Beweisskizze Wähle beliebige zu sortierende Zahlen x1,...,xn IR. Betrachte die Punkte (x1,x1 2 ),...,(xn,xn 2 ) und bestimme ihre konvexe Hülle. Offenbar gehören alle Punkte (xi,xi 2 ) zur konvexen Hülle.

124 Konvexe Hülle - untere Schranke Beweisskizze (Forts.) Die Ausgabe des Algorithmus aller Punkte der konvexen Hülle im Uhrzeigersinn ist zugleich eine Sortierung der Zahlen x1,...,xn, wenn man die zweite Koordinate streicht.

125 Konvexe Hülle - untere Schranke Beweisskizze (Forts.) Ein Algorithmus zur Bestimmung der konvexen Hülle von n Punkten ist also zugleich ein Algorithmus zum Sortieren von n reellen Zahlen. Folglich ist die untere Schranke für Sortieren zugleich untere Schranke für das Problem der konvexen Hülle.

Ü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

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

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

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

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

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

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

Mehr

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

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

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

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.05.2012 Nachtrag: Dynamische Bereichsabfragen Letzte Woche: kd-trees und Range-Trees

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

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

Algorithmische Geometrie. Prof. Dr. Thomas Ottmann. Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp

Algorithmische Geometrie. Prof. Dr. Thomas Ottmann. Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp Algorithmische Geometrie Prof. Dr. Thomas Ottmann Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp Literatur: M. de Berg, M. van Krefeld, M. Overmars O. Schwarzkopf: Computational Geometry (Algorithms

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

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

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

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

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

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

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

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

Polygontriangulierung

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

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

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

5. Bäume und Minimalgerüste

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

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

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

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

Mehr

Geometrische 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

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

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

Sichtbarkeitsgraphen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Sichtbarkeitsgraphen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.07.2011 Bewegungslanung für Roboter Ideen?? Problem: Gegeben

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

WS 2009/10. Diskrete Strukturen

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

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

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

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

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

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

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

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

String - Matching. Kapitel Definition

String - Matching. Kapitel Definition Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

Begriffsklärung: Dominanz

Begriffsklärung: Dominanz Einführung Begriffsklärung: Dominanz Gegeben: d-dimensionaler Raum, jeder Punkt p im Raum hat d Attribute: (p 1,,p d ) Definition Dominanz: 1 i d : p i p i und 1 i d : p i < p i Begriffsklärung: Dominanz

Mehr

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

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

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java Inhaltsverzeichnis 1 Grundlagen 1 1.1 Algorithmen und ihre formalen Eigenschaften 1 1.2 Beispiele arithmetischer Algorithmen 5 1.2.1 Ein Multiplikationsverfahren 5 1.2.2 Polynomprodukt 8 1.2.3 Schnelle

Mehr

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin Departement Mathematik und Informatik Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin 12. April 2017 Union-Find Datenstruktur Graphen I Robert E. Tarjan Algorithmen und Datenstrukturen,

Mehr

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

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

Mehr

Einführung & Konvexe Hülle

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

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Musterlösung Datenstrukturen und Algorithmen

Musterlösung Datenstrukturen und Algorithmen 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

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon) M. Pester 29 6 Konvexe Hülle 6.1 Begriffe Per Definition ist die konvexe Hülle für eine Menge S von lich vielen Punkten die kleinste konvexe Menge, die S enthölt (z.b. in der Ebene durch ein umspannes

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

Algorithmische Geometrie 7. Punktsuche

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

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

4. Sortieren 4.1 Vorbemerkungen

4. Sortieren 4.1 Vorbemerkungen . Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

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

Mehr

Einführung & Konvexe Hülle

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

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

Mehr

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

Maximale s t-flüsse in Planaren Graphen

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

Mehr

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

Ü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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen

Mehr

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische

Mehr

Build-Max-Heap. Build-Max-HeappAq. Satz Nach Ablauf von Build-Max-Heap ist A ein Heap. Build-Max-Heap hat Laufzeit Opnq.

Build-Max-Heap. Build-Max-HeappAq. Satz Nach Ablauf von Build-Max-Heap ist A ein Heap. Build-Max-Heap hat Laufzeit Opnq. C. Komusiewicz 3.1 Sortieren und Selektion: Heap-Sort 45 Build-Max-Heap Aufgabe: Baue unsortiertes Array A der Länge n in einen Max-Heap um Idee: Blätter stehen in Artn{2u ` 1..ns und sind bereits zu Beginn

Mehr

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin Konvexe Hülle Konvexe Hülle AK der Algorithmik 5, SS 2005 Hu Bin Anwendung: Computergraphik Boundary Kalkulationen Geometrische Optimierungsaufgaben Konvexe Hülle: Definition Mathematik Konvex: Linie zwischen

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. Kreis- und Wegeprobleme Abstände in Graphen 4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

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

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Algorithmen II Vorlesung am

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

Mehr

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

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in

Mehr

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

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

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

1 Rotating Calipers. 2 Antipodal und Copodal. 3 Distanzen Rechtecke Eigenschaften

1 Rotating Calipers. 2 Antipodal und Copodal. 3 Distanzen Rechtecke Eigenschaften 1 Rotating Calipers 2 3 Rotating Calipers - Algorithmus Konvexes Polygon mit parallelen Stützgeraden Rotating Calipers - Finder Shamos lässt 1978 zwei Stützgeraden um ein Polygon rotieren Zwei Stützgeraden

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum

Mehr

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

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

Mehr

Dualität + Quad-trees

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

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

Mehr

Exkurs: Graphtraversierung

Exkurs: Graphtraversierung Sanders: Informatik III November 28, 2006 1 Exkurs: Graphtraversierung Begriffe Graphrepräsentation Erreichbarkeit mittels Tiefensuche Kreise Suchen Sanders: Informatik III November 28, 2006 2 Gerichtete

Mehr