Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 2.5.

Ähnliche Präsentationen


Präsentation zum Thema: "Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 2.5."—  Präsentation transkript:

1 Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS

2 Boolesche Matrixmultiplikation mit Zeugen Gegeben seien Boolesche Matrizen A,B P=AB unter Boolescher Multiplikation Ein Zeuge für P[i,j]=1 ist ein Index k mit A[i,k]=B[k,j]=1 Eine Zeugenmatrix sei eine Matrix, die an allen i,j mit P[i,j]=1 einen Zeugen enthält, sonst 0 Bestimme Zeugenmatrix! Beachte: Integermatrixmultiplikation liefert Anzahl der Zeugen

3 Boolesche Matrixmultiplikation mit Zeugen Wir werden später sehen: Es gibt einen randomisierten Algorithmus, der in erwarteter Laufzeit O(T(n) log 2 n) die Zeugenmatrix bestimmmt, wenn T(n) die Laufzeit für Matrixmultiplikation ist.

4 APSP Verwenden Algorithmen für APD und Boolesche Matrixmultiplikation mit Zeugen. Sei A Adjazenzmatrix u, v seien Knoten mit Distanz d S[u,v] Nachfolgermatrix:=w, gdw (w,v)=d-1 und A[u,w]=1 Sei B d eine Boolesche Matrix mit B d [w,v]=1 gdw (w,v)=d-1 B d kann aus den Distanzen in Zeit O(n 2 ) berechnet werden: Wenn (w,v)=d-1, dann setze B d [w,v]=1, sonst 0

5 APSP Wir verwenden nun Boolesche Matrixmultiplikation mit Zeugen für die Matrizen A und B d A ¢ B d [u,v]=1 gdw es gibt Kante (u,w) und Distanz w nach v ist d-1 Zeuge: w D.h. wenn d minimal, ist w der gewünschte Eintrag der Nachfolgermatrix. Problem: wollen dies nicht für alle d ausführen!

6 APSP Nach Lemma 2 (vorige Vorlesung): wenn u, v Knoten: für alle Nachbarn w von u gilt (u,v)-1 · (w,v) · (u,v)+1 Jeder Nachbar mit (u,v)-1= (w,v) ist für uns ok Somit ist w gut, wenn A[u,w]=1 und (w,v) ´ (u,v)- 1 mod 3 Wir betrachten für s 2 {0,1,2} die Matrizen D s mit D s [w,v]=1 gdw (w,v)+1 ´ s mod 3 Wir berechnen die Zeugen der Produkte A D s für s=0, 1, 2

7 APSP Zusammengefasst: Wenn W s Zeugenmatrix für AD s : W s [u,v]=w für s= (u,v) mod 3 ergibt einen Nachfolger w auf dem kürzesten Pfad von u nach v

8 Der Algorithmus Berechne Distanzmatrix D mit APD- Algorithmus Für s=0,1, 2: Berechne D s Berechne Zeugenmatrix W s für AD s Berechne Nachfolgermatrix: S[u,v]=W s [u,v] mit s=D[u,v] mod 3

9 Laufzeit Die Laufzeit wird dominiert durch die Matrixmultiplikation, also O(T(n)log 2 n)

10 Boolesche Matrixmultiplikation mit Zeugen Betrachte zuerst den Fall, dass es für jeden Eintrag von P nur höchstens einen Zeugen gibt. Setze A[i,k]=k ¢ A[i,k] und multipliziere A mit B durch Integermatrixmultiplikation Ergebnis: an Stelle [i,j] erhalten wir k mit A[i,k]=B[k,j]=1 Natürlich funktioniert dies nicht allgemein

11 Boolesche Matrixmultiplikation mit Zeugen Unser Ansatz wird es sein, durch Randomisierung zu erreichen, dass mit hoher Wahrscheinlichkeit nur ein Zeuge vorhanden ist.

12 Exkurs Randomisierte Algorithmen

13 Randomisierte Algorithmen haben Zugriff auf eine Quelle von Zufallsbits Diese entsprechen Zufallsvariablen b i und haben folgende Wahrscheinlichkeitsverteilung: Prob(b i =1)=Prob(b i =0)=1/2. Alle b i sind paarweise voneinander unabhängig, d.h. gegeben die Werte anderer b i1,…,b iT sind neue b i immer noch wie oben verteilt Der Algorithmus kann die b i von der Zufallsquelle lesen und beliebig speichern oder weiterverarbeiten

14 Beispiel Quicksort: In diesem Sortieralgorithmus wird ein Pivotelement aus 1,…,n gewählt, um die zu sortierende Folge in zwei Teilfolgen zu splitten. Der Algorithmus ist schnell, wenn die Teilfolgen ungefähr gleich gross sind. Dies kann erreicht werden durch Berechnung des Medians, aber nur mit grossem Aufwand. Eine feste Pivotwahl hingegen führt zu Laufzeit n 2 im worst case. Eine zufällige Pivotwahl teilt die Folge mit guter Wahrscheinlichkeit in ungefähr gleich grosse Teile Damit erwartete Laufzeit O(n log n ) für alle Eingaben

15 Arten von randomisierten Algorithmen Klar: ein randomisierte Algorithmus kann nicht dieselben Garantien geben wie ein deterministischer Algorithmus Wie schwächen wir solche Garantien? Möglichkeit 1: Betrachten erwartete Laufzeit anstelle von worst-case Laufzeit Beobachtung: Für fixierte Werte der gelesenen Zufallsbits ist der Algorithmus ansonsten deterministisch Wie definieren die Laufzeit eines randomisierten Algorithmus als den Erwartungswert der Laufzeit über die gelesenen Zufallsbits, aber im worst case über alle Eingaben

16 Arten von randomisierten Algorithmen Möglichkeit 2: Wir erlauben dem Algorithmus, mit geringer Wahrscheinlichkeit falsche Ergebnisse zu liefern Normalerweise Fehlerwahrscheinlichkeit 1/3, da Fehler durch Wiederholung verringert werden kann Betrachten Laufzeit im worst case über Eingaben und Zufallsbits Möglichkeit 2 ist stärker als 1, d.h. ein Algorithmus nach Def. 1 ist auch einer nach Def. 2, indem wir nach z.B. 5 mal der erwarteten Laufzeit abbrechen und irgendeine (eventuell falsche) Ausgabe machen.

17 Diskussion Ein randomisierter Entscheidungsalgorithmus mit Laufzeit T und Fehler 1/3 kann in einen ebensolchen mit Laufzeit O(T ¢ S) und Fehler ½ S umgewandelt werden, durch Wiederholung und Mehrheitsbildung unter den Resultaten So kann die Fehlerquelle Algorithmus in dieselbe Grössenordnung gebracht werden wie die Fehlerquelle Hardware Wenn ein randomisierter Algorithmus viel schneller ist als ein deterministischer, kann es sein, dass dadurch der Gesamtfehler (Hardware+ Algorithmus) geringer ist als bei einem deterministischen Algorithmus Häufig sind randomisierte Algorithmen einfacher und eleganter (leichter zu implementieren) Frage: gibt es überhaupt echten Zufall?


Herunterladen ppt "Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 2.5."

Ähnliche Präsentationen


Google-Anzeigen