Lineare Programmierung
|
|
|
- Erich Berger
- vor 8 Jahren
- Abrufe
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
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
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
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:
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
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),
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
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
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
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
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:
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
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
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).
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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.
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
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:
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,...
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
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
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 [email protected] 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
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
Ü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
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
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?
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
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
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
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,
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
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
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:
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
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
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:
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
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
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
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
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
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann [email protected] 25. November 2015 Frank Heitmann [email protected] 1/122
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
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
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
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
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
Ü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.
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)
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
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
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
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
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
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
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
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
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
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)
Ü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)
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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
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
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
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 D&A: 1. Einführung [email protected] 1 Organisatorisches VO (708.031) & UE (708.032) bei beiden extra anmelden, zwei Zeugnisse Vortragende: VO:
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
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
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:
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
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
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:
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
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
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
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
Informatik II. PVK Part1 Severin Wischmann [email protected] n.ethz.ch/~wiseveri
Informatik II PVK Part1 Severin Wischmann [email protected] 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
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
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
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
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 [email protected] xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung
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
