Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.

Ähnliche Präsentationen


Präsentation zum Thema: "Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende."—  Präsentation transkript:

1 Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 14,

2 Friedhelm Meyer auf der Heide 2 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Organisatorisches Die letzten Übungen finden diese Woche statt. Die heute geplante Übung ist auf morgen, 9-11, in F1 110 verschoben. Die Vorlesung Komplexitätstheorie von Johannes Blömer beginnt am Montag, Prüfungstage für die erste Prüfungsphase: 9.12., , , eventuell auch und

3 Friedhelm Meyer auf der Heide 3 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Randomisierte Algorithmen bisher: Randomisierter Quicksort Perfektes Hashing Skip Lists

4 Friedhelm Meyer auf der Heide 4 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Grundlegende Begriffe über randomisierte Algorithmen

5 Friedhelm Meyer auf der Heide 5 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Grundlegende Begriffe über randomisierte Algorithmen Ein randomisierter Algorithmus A, gestartet mit Eingabe x, darf, zusätzlich zu den üblichen Operationen, Operationen vom Typ Y :=random(M) ausführen. Dabei ist M eine endliche Menge, Y :=random(M) weist der Variablen Y ein zufällig, uniform gewähltes Element aus M zu. Eine Rechnung R von A gestartet mit x ergibt sich durch sukzessive Festlegung der Ergebnisse a i 2 M i, i=1,…s, der Zufallsexperimente Y i :=random(M i ), i=1,…,s, die während der Rechnung R ausgeführt werden. Die Wahrscheinlichkeit für das Auftreten von R bei Eingabe x ist somit Pr(R)= 1/|M 1 | * 1/|M 2 | * … * 1/|M s |. |R|:= Länge von R; C := Menge aller Rechnungen von M gestartet mit x.

6 Friedhelm Meyer auf der Heide 6 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Randomisierte Algorithmen und Komplexitätstheorie Bisher haben wir nur Las Vegas Algorithmen vorgestellt.

7 Friedhelm Meyer auf der Heide 7 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Ein Monte Carlo Algorithmus für die Berechnung eines minimalen Schnittes

8 Friedhelm Meyer auf der Heide 8 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Minimale Schnitte in Graphen

9 Friedhelm Meyer auf der Heide 9 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Ein Monte Carlo Algorithmus für die Berechnung eines minimalen Schnittes Basisoperation: Kontrahiere e Zudem wird das Gesamtgewicht des Graphen um w(e) verringert.

10 Friedhelm Meyer auf der Heide 10 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Ein Monte Carlo Algorithmus für die Berechnung eines minimalen Schnittes Eingabe: Gewichteter Graph G=(V,E,w) mit w : E ! N Ausgabe: Gewicht eines Schnittes Somit wird der Wert eines Schnittes ausgegeben. (Es ist einfach, auch den zugehörigen Schnitt zu berechen.) Laufzeit: O(n 2 )

11 Friedhelm Meyer auf der Heide 11 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Ein Monte Carlo Algorithmus für die Berechnung eines minimalen Schnittes Eingabe: Gewichteter Graph G=(V,E,w) mit w : E ! N Ausgabe: Gewicht eines Schnittes Lemma: 1.MinCut gibt immer den Wert der Wert eines Schnittes aus. (Es ist einfach, auch den zugehörigen Schnitt zu berechen.) 2.Sei C ein Schnitt, so dass MinCut keine Kante von C kontrahiert. Dann gibt MinCut den Wert von C aus. Laufzeit: O(n 2 )

12 Friedhelm Meyer auf der Heide 12 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Ein Monte Carlo Algorithmus für die Berechnung eines minimalen Schnittes Es wird der Wert eines Schnittes ausgegeben. (Es ist einfach, auch den zugehörigen Schnitt zu berechen.) Diese Erfolgswahrscheinlichkeit ist unbefriedigend gering. Die Technik der Wahrscheinlichkeitsverstärkung (Amplifikation) liefert:

13 Friedhelm Meyer auf der Heide 13 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Analyse des Algorithmus Sei k = w(C). Beh: - w(E) ¸ nk/2 - Algo erzeugt C, Algo kontrahiert nie eine Kante aus C (Wir sagen: Schnitt C überlebt) Bezeichne i das Ereignis, dass in Runde i keine Kante aus C kontrahiert wird. Dann gilt: 1

14 Friedhelm Meyer auf der Heide 14 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Analyse des Algorithmus Sei k = w(C). Beh: - w(E) ¸ nk/2 - Algo erzeugt C, Algo kontrahiert nie eine Kante aus C (Wir sagen: Schnitt C überlebt) Bezeichne i das Ereignis, dass in Runde i keine Kante aus C kontrahiert wird. Dann gilt: Allgemein:

15 Friedhelm Meyer auf der Heide 15 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Analyse des Algorithmus Wir wissen: Also folgt:

16 Friedhelm Meyer auf der Heide 16 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Amplifikation Diese Erfolgswahrscheinlichkeit ist unbefriedigend gering. Um sie zu erhöhen wenden wir Wahrscheinlichkeitsverstärkung (Amplifikation) an : ·

17 Friedhelm Meyer auf der Heide 17 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Ergebnis

18 Friedhelm Meyer auf der Heide 18 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Zusammenfassung/Rückblick

19 Friedhelm Meyer auf der Heide 19 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Teil 4: Randomisierte Algorithmen

20 Friedhelm Meyer auf der Heide 20 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Randomisierte Algorithmen Las Vegas Algorithmen (Ausgabe ist immer korrekt, Laufzeit ist eine Zufallsvariable, deren Erwartungswert wir analysieren (Erwartete Laufzeit).) Beispiele: randomisierter Quicksort, perfektes Hashing, Skiplisten Monte Carlo Algorithmen (Aussage kann mit Wahrscheinlichkeit falsch sein, Laufzeit wird in der Regel als worst case gemessen.) Beispiel: Randomisierter MinCut - hat sehr große Fehlerwahrscheinlichkeit · 1 - 2/(n(n-1)). - Fehlerwahrscheinlichkeit kann durch Amplifikation sehr klein, z.B. < 1/1Mio gemacht werden.

21 Friedhelm Meyer auf der Heide 21 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Teil 1: Programmierparadigmen

22 Friedhelm Meyer auf der Heide 22 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Divide & Conquer: The Karazuba-Offman algorithm for integer multiplication We need 3 multiplications of numbers with at most n/2 + 2 bits, and 8 additions/subtractions/shifts of numbers with O(n) bits. Each such addition/subtraction/shift needs time O(n).

23 Friedhelm Meyer auf der Heide 23 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Runtime log(3) ~

24 Friedhelm Meyer auf der Heide 24 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity A master theorem a) Let a ¸ 0, b,c > 0 be constants. Let T: N N be recursively defined by T(1) = c, and for n > 1: T(n) = a T(n/b) + cn Then, for -a < b: T(n) = cb/(b-a) n = O(n) -a = b: T(n) = cn (log b (n) + 1) = O(n log(n)) -a > b: T(n) = ca/(a-b) n log b (a) = O(n log b (a) )

25 Friedhelm Meyer auf der Heide 25 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Dynamic programming Wir haben mehrere Beispiele kennen gelernt, z.B. - String Distance - optimale Klammerungen für Matrizenketten-Multiplikation - All pair shortest path Algorithmen

26 Friedhelm Meyer auf der Heide 26 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Greedy Algorithmen und Matroide Greedy Algorithmen werden genutzt …

27 Friedhelm Meyer auf der Heide 27 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Beispiele für Greedy Algorithmen Die Algorithmen von Kruskal und Prim sind optimale Algorithmen zur Berechnung minimaler Spannbäume. Greedy ist gut aber nicht optimal für Bin Packing. Greedy Algorithmen sind sehr schlecht für das Rucksack Problem

28 Friedhelm Meyer auf der Heide 28 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Wann sind Greedy-Algorithmen optimal?

29 Friedhelm Meyer auf der Heide 29 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Teilmengensysteme und der kanonische Greedy-Algorithmus Der kanonische G.A. für Rucksack ist sehr schlecht (haben wir gezeigt) Der kanonische G.A. für MST ist optimal, haben sie in DuA gezeigt: Kruskals Algorithmus Kann man dem Teilmengensystem ansehen, ob der kanonische G.A. eine optimale Lösung liefert?

30 Friedhelm Meyer auf der Heide 30 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Greedy-Algorithmen und Matroide Bem: Alle maximalen Mengen eines Matroids sind gleich groß. Bew: Übungsaufgabe Das Teilmengensystem für Rucksackproblem ist kein Matroid. Das Teilmengensystem für MST ist ein Matroid!

31 Friedhelm Meyer auf der Heide 31 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Noch ein interessantes Matroid: Matching für links-knotengewichtete bipartite Graphen Gegeben sei ein bipartiter, gewichteter Graph G=(L [ R, K, w) mit positiven Knotengewichten w(e) für die Knoten aus L. Ein Matching in G ist eine Menge von paarweise disjunkten Kanten. Ein maximales Matching ist eins mit maximalem Gewicht (seiner linken Knoten.) Wähle E=L. Bµ L ist in U, falls es ein Matching mit linker Seite B in G gibt. Satz: (E,U) ist ein Matroid.

32 Friedhelm Meyer auf der Heide 32 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Teil 2: Kürzeste Wege in Graphen

33 Friedhelm Meyer auf der Heide 33 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Shortest paths problems

34 Friedhelm Meyer auf der Heide 34 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Dijkstras algorithm The basic operation of Dijkstra's algorithm is edge relaxation for an edge (u,v): relax(u,v) If d(v) > d(u)+w(u,v) then begin d(v) is replaced by d[u]+w(u,v); previous[v] is replaced by u end relax(u,v) v u

35 Friedhelm Meyer auf der Heide 35 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Dijkstras algorithm The algorithm maintains two sets of vertices S and Q. Set S contains all vertices v for which we know that the value d[v] is already the cost of a shortest path. Set Q contains all other vertices. Set S starts empty, and in each step one vertex is moved from Q to S. This vertex u is chosen as the vertex from Q with lowest value of d[u]. When a vertex u is moved to S, the algorithm relaxes every outgoing edge (u,v), i.e., invokes relax(u,v)

36 Friedhelm Meyer auf der Heide 36 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Dijkstras algorithm

37 Friedhelm Meyer auf der Heide 37 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Dijkstras algorithm, correctness Lemma: After each run of the while-loop, d(u) = (s,u) for each u 2 S.

38 Friedhelm Meyer auf der Heide 38 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity All-pairs-shortest-paths (APSP) Eingabe: Gerichteter, gewichteter Graph G=(V,E,w), V={1,…,n}, ohne negative Kreise, repräsentiert durch nxn-Gewichtsmatrix W mit Ausgabe: nxn-Matrix A mit a(i,j)= Länge eines kürzesten Weges von i nach j. (Wir setzen wieder voraus, dass keine negativen Kreise existieren.)

39 Friedhelm Meyer auf der Heide 39 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity All-pairs-shortest-paths (APSP) Weitere Anwendungen von dynamischer Programmierung Anwendung von iterierter Matrizenmultiplikation Nutzung schneller Matrixmultiplikation für die Berechnung konvexer Hüllen

40 Friedhelm Meyer auf der Heide 40 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Teil 3: Flüsse in Netzwerken

41 Friedhelm Meyer auf der Heide 41 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Vergrößernde Wege Restkapazität ist 4

42 Friedhelm Meyer auf der Heide 42 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Vergrößernde Wege Restkapazität ist 4

43 Friedhelm Meyer auf der Heide 43 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Der Basisalgorithmus von Ford/Fulkerson Satz: Der Algorithmus von Ford/Fulkerson berechnet einen maximalen Fluss.

44 Friedhelm Meyer auf der Heide 44 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Analyse des Basisalgorithmus von Ford/Fulkerson Ein Schnitt in N ist ein disjunkte Zerlegung von V in Mengen S und T mit s 2 S, t2 T. Die Kapazität des Schnittes ist Die Kapazität eines minimalem Schnittes ist Der Flusswert eines Schnittes ist Mit f max bezeichnem wir den Wert eines maximalen Flusses.

45 Friedhelm Meyer auf der Heide 45 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Korrektheit des Algorithmus von F.F., und das Max Flow-Min Cut Theorem Lemma: In jedem Netzwerk N gilt: Der Wert eines jeden Flusses ist kleiner oder gleich der Kapazität eines jeden Schnittes. Insbesondere: f max · c min. Lemma: Sei f der von F.F. berechnete Fluss. Dann gibt es einen Schnitt (S,T) in N mit val(f) = C(S,T). Satz: Der Algorithmus von Ford/Fulkerson berechnet einen maximalen Fluss. Satz: (Max Flow-Min Cut Theorem; Satz von Ford/Fulkerson) In jedem Netzwerk gilt f max = c min. Der Wert eines maximalen Flusses ist gleich der Kapazität eines minimalen Schnittes.

46 Friedhelm Meyer auf der Heide 46 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Laufzeit des Basisalgorithmus von F.F. Wir gehen von Kapazitäten aus N aus. Laufzeit ist exponentiell in Eingabegröße!

47 Friedhelm Meyer auf der Heide 47 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Effiziente Algorithmen für maximale Flüsse Der Basisalgorithmus von Ford/Fulkerson: Modifikation von Edmonds/Karp: Benutze immer einen kürzesten vergrößernden Weg. Satz: Der Algorithmus von Edmonds/Karp liefert nach höchstens |E| |V|/2 Flussvergrößerungen, also in Zeit O(|E| 2 |V|) (= O(|V| 5 )) einen maximalen Fluss. Damit ist das Flussproblem in polynomieller Zeit lösbar!!

48 Friedhelm Meyer auf der Heide 48 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Der Algorithmus von Dinic Eingabe: Netzwerk N f´ 0, berechne SN f ; While t ist Knoten von SN f do Berechne Sperrfluss f in SN f ; Berechne f* mit f*(v,w) = f(v,w) + f(v,w) – f(w,v); Berechne SN f* ; f:=f* Od Ausgabe: f Lemma: Der Algo benötigt höchstens |V|-1 Durchläufen der While- Schleife. Lemma: Die Berechnung eines Sperrflusses geht in Zeit O(|V||E|). (auch O(|V| 2 ) ist möglich.). Also: Satz: Der Algorithmus von Dinic berechnet in Zeit O(|V| 2 |E|) (bzw. sogar O(|V| 3 ) einen maximalen Fluss. Wieviele Durchläufe der While –Schleife gibt es? Wie lange dauert die Berechnung eines Sperrflusses?

49 Friedhelm Meyer auf der Heide 49 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Perfekte Matchings und der Satz von Frobenius/Hall Sei G=(V 1 [ V 2,E) bipartiter Graph mit |V 1 |=|V 2 |. Ein perfektes Matching in G ist ein Matching der Größe |V 1 |. Satz von Frobenius/Hall, Heiratssatz: G enthält ein perfektes Matching, Für jedes Aµ V 1 gilt : | (A)| ¸ |A| (d.h.:A hat mindestens |A| Nachbarn in V 2. ) Folgt aus dem Max-Flow Min-Cut Theorem. (Übung)

50 Friedhelm Meyer auf der Heide 50 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Das wars Ich wünsche ihnen viel Erfolg bei den Prüfungen, viel Vergnügen und spannende neue Entdeckungen im Studium, und Spaß an immer neuen Herausforderungen und Einsichten.

51 Friedhelm Meyer auf der Heide 51 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Friedhelm Meyer auf der Heide Heinz Nixdorf Institute & Computer Science Department University of Paderborn Fürstenallee Paderborn, Germany Tel.: +49 (0) 52 51/ Fax: +49 (0) 52 51/ Thank you for your attention!


Herunterladen ppt "Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende."

Ähnliche Präsentationen


Google-Anzeigen