Lineare Programmierung

Größe: px
Ab Seite anzeigen:

Download "Lineare Programmierung"

Transkript

1 Übung Algorithmische Geometrie Lineare Programmierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann

2 Übersicht Übungsblatt 4

3 Lineares Programmieren Definition: Eine Menge linearer Nebenbedingungen H mit einer linearen Zielfunktion c in R d bilden ein lineares Programm (LP): maximiere c 1 x 1 + c 2 x c d x d unter den NB a 1,1 x a 1,d x d b 1 a 2,1 x a 2,d x d b 2 a n,1 x a n,d x d b n. H }

4 Lineares Programmieren Definition: Eine Menge linearer Nebenbedingungen H mit einer linearen Zielfunktion c in R d bilden ein lineares Programm (LP): maximiere c 1 x 1 + c 2 x c d x d unter den NB a 1,1 x a 1,d x d b 1 a 2,1 x a 2,d x d b 2 a n,1 x a n,d x d b n. } H H entspricht einer Menge von Halbräumen in R d. Gesucht ist ein Punkt x h H h, der ct x maximiert, also max{c T x Ax b, x 0}. Lineare Programmierung ist ein zentrales Optimierungsverfahren im Operations Research.

5 Algorithmen für LPs Viele Algorithmen zum Lösen von LPs in der Praxis existieren: Simplex-Algorithmus [Dantzig, 1947] Ellipsoid-Methode [Khatchiyan, 1979] Innere-Punkt-Methode [Karmarkar, 1979] Funktionieren gut, besonders für große Werte von n (Anzahl Nebenbedingungen) und d (Anzahl Variablen). Heute: Spezialfall d = 2 Möglichkeiten für den Lösungsraum H beschränkt c c c H = unlösbar H unbeschränkt in Richtung c Lösung nicht eindeutig eindeutige Lösung

6 Erste Variante Idee: Berechne den zulässigen Bereich H und suche nach der Ecke p, die c T p maximiert. Halbebenen sind konvex Versuche einfachen Divide-and-Conquer Algorithmus IntersectHalfplanes(H) C C 2 1 if H = 1 then C H else l (H 1, H 2 ) SplitInHalves(H) C 1 IntersectHalfplanes(H 1 ) C 2 IntersectHalfplanes(H 2 ) C IntersectConvexRegions(C 1, C 2 ) return C

7 Beschränkte LPs Idee: Statt gesamtes zulässiges Polygon zu berechnen suche inkrementell nach optimaler Ecke.

8 Beschränkte LPs Idee: Statt gesamtes zulässiges Polygon zu berechnen suche inkrementell nach optimaler Ecke. Invariante: aktuell beste Lösung ist eindeutige Ecke des zulässigen aktuellen Polygons

9 Beschränkte LPs Idee: Statt gesamtes zulässiges Polygon zu berechnen suche inkrementell nach optimaler Ecke. Invariante: aktuell beste Lösung ist eindeutige Ecke des zulässigen aktuellen Polygons Wie kann man unbeschränkte zulässige Gebiete umgehen?

10 Beschränkte LPs Idee: Statt gesamtes zulässiges Polygon zu berechnen suche inkrementell nach optimaler Ecke. Invariante: aktuell beste Lösung ist eindeutige Ecke des zulässigen aktuellen Polygons Wie kann man unbeschränkte zulässige Gebiete umgehen? Für einen ausreichend großen Wert M definiere Halbebenen m 1 = { x M falls c x > 0 x M sonst m 2 = { y M falls c y > 0 y M sonst m 1 m2 c

11 Beschränkte LPs Idee: Statt gesamtes zulässiges Polygon zu berechnen suche inkrementell nach optimaler Ecke. Invariante: aktuell beste Lösung ist eindeutige Ecke des zulässigen aktuellen Polygons Wie kann man unbeschränkte zulässige Gebiete umgehen? Gibt es mehrere Optima, wähle lexikographisch kleinsten Punkt! Für einen ausreichend großen Wert M definiere Halbebenen m 1 = { x M falls c x > 0 x M sonst m 2 = { y M falls c y > 0 y M sonst m 1 m2 c c

12 Beschränkte LPs Idee: Statt gesamtes zulässiges Polygon zu berechnen suche inkrementell nach optimaler Ecke. Invariante: aktuell beste Lösung ist eindeutige Ecke des zulässigen aktuellen Polygons Wie kann man unbeschränkte zulässige Gebiete umgehen? Gibt es mehrere Optima, wähle lexikographisch kleinsten Punkt! Für einen ausreichend großen Wert M definiere Halbebenen m 1 = { x M falls c x > 0 x M sonst m 2 = { y M falls c y > 0 y M sonst Für ein LP (H, c) mit H = {h 1,..., h n }, c = (c x, c y ), zulässigem Polygon C und 1 i n definiere H i = {m 1, m 2, h 1,..., h i }, C i = m 1 m 2 h 1 h i

13 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i

14 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i es gilt die Inklusionsbeziehung C 0 C 1 C n = C

15 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i es gilt die Inklusionsbeziehung C 0 C 1 C n = C Wie ändert sich die optimale Ecke v i 1 wenn man h i hinzufügt?

16 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i es gilt die Inklusionsbeziehung C 0 C 1 C n = C Wie ändert sich die optimale Ecke v i 1 wenn man h i hinzufügt? Lemma 1: Für 1 i n und Grenzgerade l i von h i gilt: (i) Falls v i 1 h i gilt v i = v i 1, (ii) sonst ist entweder C i = oder v i l i.

17 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i es gilt die Inklusionsbeziehung C 0 C 1 C n = C Wie ändert sich die optimale Ecke v i 1 wenn man h i hinzufügt? Lemma 1: Für 1 i n und Grenzgerade l i von h i gilt: (i) Falls v i 1 h i gilt v i = v i 1, (ii) sonst ist entweder C i = oder v i l i. c v 4

18 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i es gilt die Inklusionsbeziehung C 0 C 1 C n = C Wie ändert sich die optimale Ecke v i 1 wenn man h i hinzufügt? Lemma 1: Für 1 i n und Grenzgerade l i von h i gilt: (i) Falls v i 1 h i gilt v i = v i 1, (ii) sonst ist entweder C i = oder v i l i. h 5 c c v 4 v 4 = v 5

19 Eigenschaften jede Region C i hat eine eindeutige optimale Ecke v i es gilt die Inklusionsbeziehung C 0 C 1 C n = C Wie ändert sich die optimale Ecke v i 1 wenn man h i hinzufügt? Lemma 1: Für 1 i n und Grenzgerade l i von h i gilt: (i) Falls v i 1 h i gilt v i = v i 1, (ii) sonst ist entweder C i = oder v i l i. h 5 h 6 c c c v 4 v 4 = v 5 v 5 v 6

20 Inkrementeller Algorithmus 2dBoundedLP(H, c, m 1, m 2 ) C 0 m 1 m 2 v 0 eindeutige Ecke von C 0 for i 1 to n do if v i 1 h i then v i v i 1 else v i 1dBoundedLP(σ(H i 1 ), f i c) if v i = nil then return unlösbar return v n

21 Inkrementeller Algorithmus 2dBoundedLP(H, c, m 1, m 2 ) C 0 m 1 m 2 v 0 eindeutige Ecke von C 0 for i 1 to n do if v i 1 h i then v i v i 1 else v i 1dBoundedLP(σ(H i 1 ), f i c) if v i = nil then return unlösbar O(1) O(i) return v n

22 Inkrementeller Algorithmus 2dBoundedLP(H, c, m 1, m 2 ) worst-case Laufzeit: C 0 m 1 m 2 T (n) = n i=1 O(i) = O(n2 ) v 0 eindeutige Ecke von C 0 for i 1 to n do if v i 1 h i then v i v i 1 O(1) else v i 1dBoundedLP(σ(H i 1 ), fc) i if v i = nil then O(i) return unlösbar return v n

23 Inkrementeller Algorithmus 2dBoundedLP(H, c, m 1, m 2 ) worst-case Laufzeit: C 0 m 1 m 2 T (n) = n i=1 O(i) = O(n2 ) v 0 eindeutige Ecke von C 0 for i 1 to n do if v i 1 h i then v i v i 1 O(1) else v i 1dBoundedLP(σ(H i 1 ), fc) i if v i = nil then O(i) return unlösbar return v n Frage: Kann wirklich n-mal Fall (ii) auftreten?

24 Inkrementeller Algorithmus 2dBoundedLP(H, c, m 1, m 2 ) worst-case Laufzeit: C 0 m 1 m 2 T (n) = n i=1 O(i) = O(n2 ) v 0 eindeutige Ecke von C 0 for i 1 to n do if v i 1 h i then v i v i 1 O(1) else v i 1dBoundedLP(σ(H i 1 ), fc) i if v i = nil then O(i) return unlösbar return v n Lemma 3: Algorithmus 2dBoundedLP benötigt Θ(n 2 ) Laufzeit um ein LP mit n Nebenbed. und 2 Variablen zu lösen.

25 Gibt es einen Ausweg? Beob.: Nicht die Halbebenen H sind problematisch für die Laufzeit, sondern die Reihenfolge der Abarbeitung. c h 6 h 5 h h 4 3 h 1 h 2 v 2 v 3 v 4 v 5 v 6

26 Gibt es einen Ausweg? Beob.: Nicht die Halbebenen H sind problematisch für die Laufzeit, sondern die Reihenfolge der Abarbeitung. c h 6 h 5 h h 4 3 h 1 h 2 v 2 v 3 v 4 v 5 v 6 Wie findet man (schnell) eine gute Reihenfolge?

27 Gibt es einen Ausweg? Beob.: Nicht die Halbebenen H sind problematisch für die Laufzeit, sondern die Reihenfolge der Abarbeitung. c h 6 h 5 h h 4 3 h 1 h 2 v 2 v 3 v 4 v 5 v 6 Wie findet man (schnell) eine gute Reihenfolge? Zufällig!

28 Randomisierter Inkrementeller Algorithmus 2dRandomizedBoundedLP(H, c, m 1, m 2 ) C 0 m 1 m 2 v 0 eindeutige Ecke von C 0 H RandomPermutation(H) for i 1 to n do if v i 1 h i then v i v i 1 else v i 1dBoundedLP(σ(H i 1 ), f i c) if v i = nil then return unlösbar return v n

29 Aufgabe 1 Korrektheitsbeweis: a) Zeige, dass jede mögliche Permutation von A gleich wahrscheinlich ist. RandomPermutation(A) Input: Array A[1... n] Output: Array A, zufällig gleichverteilt permutiert for k n to 2 do r Random(k) tausche A[r] und A[k]

30 Aufgabe 1 Korrektheitsbeweis: b) Zeige, dass die Aussage aus a) nicht stimmt, wenn wir in der 2. Zeile k mit n ersetzen. RandomPermutation(A) Input: Array A[1... n] Output: Array A, zufällig gleichverteilt permutiert for k n to 2 do r Random(k) tausche A[r] und A[k]

31 Aufgabe 1 Korrektheitsbeweis: b) Zeige, dass die Aussage aus a) nicht stimmt, wenn wir in der 2. Zeile k mit n ersetzen. RandomPermutation(A) Input: Array A[1... n] Output: Array A, zufällig gleichverteilt permutiert? for k n to 2 do r Random(n) n tausche A[r] und A[k]

32 Aufgabe 2 ParanoidMax Input: Endliche Menge A R Output: Maximum max a A a der Menge if A = 1 then return einziges Element a A else a = zufällig gewähltes Element aus A b = ParanoidMax(A \ {a}) if b a then return b else a) Asymptotische w-c Laufzeit? b) erwartete Laufzeit echt besser als w-c prüfe unnötigerweise jedes Element aus A \ {a}, um sicherzugehen, dass a wirklich größer ist return a

33 Aufgabe 3 : Züge t = 0 k 2 k 1 z 2 k 3 z 1 Algorithmus: welche Züge bis Zeitpunkt t s einmal in Führung z 3 v 1 v 2 v 3

34 Aufgabe 3 : Züge Strecke k 2 k 1 k 3 k 2 k 1 k 3 Zeit t stop

35 Aufgabe 3 : Züge Strecke k 2 k 1 k 3 k 2 k 1 k 3 Zeit t stop

36 Aufgabe 3 : Züge Strecke k 2 k 1 k 3 k 2 k 1 k 3 Zeit t stop

37 Aufgabe 3 : Züge Strecke k 2 k 1 k 3 k 2 k 1 k 3 Zeit t stop

38 Aufgabe 3 : Züge Strecke k 2 k 1 k 3 k 2 k 1 k 3 Zeit t stop

39 Aufgabe 3 : Züge IntersectHalfplanes(H) if H = 1 then C H else (H 1, H 2 ) SplitInHalves(H) C 1 IntersectHalfplanes(H 1 ) C 2 IntersectHalfplanes(H 2 ) C IntersectConvexRegions(C 1, C 2 ) return C

40 Aufgabe 4 : Polygon Partitionieren VL: ALG zur Zerlegung eines Polygons in y-mon. Teilstücke

41 Aufgabe 4 : Polygon Partitionieren VL: ALG zur Zerlegung eines Polygons in y-mon. Teilstücke

42 Aufgabe 4 : Polygon Partitionieren VL: ALG zur Zerlegung eines Polygons in y-mon. Teilstücke

43 Aufgabe 4 : Polygon Partitionieren VL: ALG zur Zerlegung eines Polygons in y-mon. Teilstücke Datenstruktur: Doppelt-verkettete Kantenliste (DCEL)

44 Aufgabe 4 : Polygon Partitionieren VL: ALG zur Zerlegung eines Polygons in y-mon. Teilstücke Behauptung: Einfügen von einer Diagonalen in O(1) möglich Datenstruktur: Doppelt-verkettete Kantenliste (DCEL)

45 Aufgabe 4 : Polygon Partitionieren VL: ALG zur Zerlegung eines Polygons in y-mon. Teilstücke Behauptung: Einfügen von einer Diagonalen in O(1) möglich Datenstruktur: Doppelt-verkettete Kantenliste (DCEL)

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

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

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

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

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

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

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

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

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

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

56 Lösungsschritte 1. Wie umgeht man das aktualisieren der face(e) Information?

57 Lösungsschritte 1. Wie umgeht man das aktualisieren der face(e) Information? Facetten spielen keine (große) Rolle

58 Lösungsschritte 1. Wie umgeht man das aktualisieren der face(e) Information? Facetten spielen keine (große) Rolle 2. Wie wählen wir in O(1) die richtigen Kanten für das anpassen der next(e) bzw. prev(e) Einträge?

59 Lösungsschritte 1. Wie umgeht man das aktualisieren der face(e) Information? Facetten spielen keine (große) Rolle 2. Wie wählen wir in O(1) die richtigen Kanten für das anpassen der next(e) bzw. prev(e) Einträge? a) Nur konstant viele Kanten inzident zu jedem Knoten

60 Lösungsschritte 1. Wie umgeht man das aktualisieren der face(e) Information? Facetten spielen keine (große) Rolle 2. Wie wählen wir in O(1) die richtigen Kanten für das anpassen der next(e) bzw. prev(e) Einträge? a) Nur konstant viele Kanten inzident zu jedem Knoten b) Durch passende Sortierung können wir die korrekten Kanten finden

61 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() Q.deleteVertex(v) handlevertex(v) return D

62 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() Q.deleteVertex(v) handlevertex(v) return D handlestartvertex(vertex v) T füge linke Kante e ein helper(e) v e v = helper(e)

63 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() Q.deleteVertex(v) handlevertex(v) return D handlestartvertex(vertex v) T füge linke Kante e ein helper(e) v e v = helper(e) e v handleendvertex(vertex v) e linke Kante if ismergevertex(helper(e)) then D füge (helper(e), v) ein lösche e aus T helper(e)

64 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() Q.deleteVertex(v) handlevertex(v) return D handlesplitvertex(vertex v) e Kante links von v in T D füge (helper(e), v) ein helper(e) v T füge rechte Kante e von v ein helper(e ) v e e v helper(e)

65 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() e Q.deleteVertex(v) handlevertex(v) return D helper(e ) v e helper(e) handlemergevertex(vertex v) e rechte Kante if ismergevertex(helper(e)) then D füge (helper(e), v) ein lösche e aus T e Kante links von v in T if ismergevertex(helper(e )) then D füge (helper(e ), v) ein helper(e ) v

66 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) v D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() Q.deleteVertex(v) handlevertex(v) return D e e helper(e) helper(e) e handleregularvertex(vertex v) v if P liegt lokal rechts von v then e, e obere, untere Kante if ismergevertex(helper(e)) then D füge (helper(e), v) ein lösche e aus T T füge e ein; helper(e ) v else e Kante links von v in T if ismergevertex(helper(e)) then D füge (helper(e), v) ein helper(e) v

67 Algorithmus MakeMonotone(P) MakeMonotone(Polygon P ) v D doppelt-verkettete Kantenliste für (V (P ), E(P )) Q priority queue für V (P ) lexikographisch sortiert T (binärer Suchbaum für Sweep-Line Status) while Q do v Q.nextVertex() Q.deleteVertex(v) handlevertex(v) return D e e helper(e) helper(e) e handleregularvertex(vertex v) v if P liegt lokal rechts von v then e, e obere, untere Kante if ismergevertex(helper(e)) then D füge (helper(e), v) ein lösche e aus T T füge e ein; helper(e ) v else e Kante links von v in T if ismergevertex(helper(e)) then D füge (helper(e), v) ein helper(e) v

68 Lösung 2. Wie wählen wir in O(1) die richtigen Kanten für das anpassen der next(e) bzw. prev(e) Einträge? a) Nur konstant viele Kanten inzident zu jedem Knoten Initial hat jeder Knoten Grad 2 Jeder Knoten ist höchstens einmal helper: +1 Jeder Knoten ist höchstens einmal Sonderknoten : +2 b) Durch passende Sortierung können wir die korrekten Kanten finden

Lineares Programmieren

Lineares Programmieren Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2011 Nachtrag Art Gallery Problem Lässt sich der Triangulierungs-Algorithmus

Mehr

Polygontriangulierung

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

Mehr

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

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

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

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Datenstrukturen & Algorithmen

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

Mehr

8 Diskrete Optimierung

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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

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

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

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

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

Lineare Programmierung

Lineare Programmierung Lineare Programmierung WS 2003/04 Rolle der Linearen Programmierung für das TSP 1954: Dantzig, Fulkerson & Johnson lösen das TSP für 49 US-Städte (ca. 6.2 10 60 mögliche Touren) 1998: 13.509 Städte in

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

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

Mehr

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

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

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

Customization (Zuschneiden)

Customization (Zuschneiden) Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

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

1 Lineare Optimierung, Simplex-Verfahren

1 Lineare Optimierung, Simplex-Verfahren 1 Lineare Optimierung, Simplex-Verfahren 1.1 Einführung Beispiel: In einer Fabrik werden n Produkte A 1, A 2,..., A n hergestellt. Dazu werden m Rohstoffe B 1, B 2,..., B m (inklusive Arbeitskräfte und

Mehr

16. All Pairs Shortest Path (ASPS)

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

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

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

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.

Mehr

Erinnerung VL

Erinnerung VL Erinnerung VL 30.05.2016 Radix-Sort, Abschluss Sortieren Prioritätslisten: Warteschlange mit Prioritäten deletemin: kleinstes Element rausnehmen insert: Element einfügen Binäre Heaps als Implementierung

Mehr

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20 Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:

Mehr

Programmiertechnik II

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

Mehr

Klausur Algorithmen und Datenstrukturen

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

Mehr

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

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

3. Grundlagen der Linearen Programmierung

3. Grundlagen der Linearen Programmierung 3. Grundlagen der linearen Programmierung Inhalt 3. Grundlagen der Linearen Programmierung Lineares Programm Grafische Lösung linearer Programme Normalform Geometrie linearer Programme Basislösungen Operations

Mehr

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

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?

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

Punktbeschriftung in Dynamischen Karten

Punktbeschriftung in Dynamischen Karten Vorlesung Algorithmische Kartografie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann Martin Nöllenburg 28.05.2015 1 Übungen Nachtrag 1) Überlegen Sie sich, wie man den

Mehr

Tutorium Algorithmen & Datenstrukturen

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

Mehr

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

Mehr

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering Das Linear Ordering Problem Exakte Lösungsverfahren VO Algorithm Engineering für NP-schwierige Professor Dr. Petra Mutzel kombinatorische Lehrstuhl für Algorithm Engineering, LS11 Optimierungsprobleme

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Asymptotische Laufzeitanalyse: Beispiel

Asymptotische Laufzeitanalyse: Beispiel Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 1 31.10.2013 Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 2 31.10.2013

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

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

Mehr

Kap. 4.2: Binäre Suchbäume

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:

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

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2 Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen

Mehr

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown Kap. Sortieren..5 HeapSort ff..6 Priority Queues Professor Dr. Vorlesung am Do 7.5. entfällt wegen FVV um Uhr Lehrstuhl für Algorithm Engineering, LS Fakultät für nformatik, TU Dortmund 7. VO DAP SS 009

Mehr

Sortierte Folgen 250

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:

Mehr

Algorithmen & Datenstrukturen 1. Klausur

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

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Kapitel 6 Elementare Sortieralgorithmen

Kapitel 6 Elementare Sortieralgorithmen Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine

Mehr

Sortieren und Suchen. Kapitel II. Sortieren und Suchen

Sortieren und Suchen. Kapitel II. Sortieren und Suchen Kapitel II Sortieren und Suchen 43 Inhalt Kapitel II 1 Heapsort Heaps Operationen auf Heaps 2 Prioritätsschlangen 3 Quicksort Randomisiertes Quicksort 4 Vergleichskomplexität 5 Median und Selektion 44

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

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

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

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

Mehr

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

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

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

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

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

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)

Mehr

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 7. Random Walks Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 43 Überblick Überblick Ein randomisierter

Mehr

7. Triangulation von einfachen Polygonen

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

Mehr

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Kapitel 3: Untere Schranken für algorithmische Probleme 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

Algorithmen und Datenstrukturen Suchbaum

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

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger

Mehr

Copyright, Page 1 of 8 AVL-Baum

Copyright, Page 1 of 8 AVL-Baum www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist

Mehr

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

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

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 D&A: 1. Einführung robert.legenstein@igi.tugraz.at 1 Organisatorisches VO (708.031) & UE (708.032) bei beiden extra anmelden, zwei Zeugnisse Vortragende: VO:

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

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

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

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

damit hätten wir nach Ende der Schleife: "a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge".

damit hätten wir nach Ende der Schleife: a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge. Korrektheit Invariante: a[0 k-1] enthält nur Elemente aus a[0 k-1], aber in sortierter Reihenfolge Terminierung: Die Schleife endet mit k=n def insertionsort(a): for k in range( 1, len(a) ): while i >

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen

Mehr

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen

Mehr

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri Informatik II PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent

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

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Rekursionsgleichungen Landau-Symbole Kapitel 8 Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Kapitel 8 Rekursionsgleichungen p./42 Landau-Symbole () Modellierung

Mehr