Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 20.5.

Ähnliche Präsentationen


Präsentation zum Thema: "Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 20.5."—  Präsentation transkript:

1 Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 20.5.

2 bs(f) vs. C(f) Wir wissen schon, dass C(f) und D(f) polynomiell verwandt sind Auch bs(f) und D(f)? Für s(f) immer noch unbekannt! Theorem 10.5 C(f) · bs(f) s(f) Kommentar: Damit sind D(f), C(f), bs(f) polynomiell äquivalent Man erhält immer untere Schranken für D(f) mit bloß polynomiellem Verlust über bs(f)

3 Beweis Beobachtung: Wenn (für f und x) B ein minimaler Block von Variablen ist, den zu flippen den Funktionswert ändert, dann ist s(f)¸ |B|. Denn: Sei x wie x mit B geflippt Dann ändert auf x jede Variable in B den Funktionswert, d.h. s(f,x) ¸ |B|

4 Beweis Idee: für jedes x konstruiere ein kurzes Zertifikat Wenn für alle x ein Zertifikat der Länge s(f)bs(f,x) existiert, gilt C(f)· s(f) bs(f) Sei x gegeben, B 1,..., B k Blöcke wie in Def mit k=bs(f,x) Blöcke seien minimal, d.h. |B i |· s(f) Setze alle Variablen in [ i B i wie in x Klar: Monom c mit s(f)bs(f,x) Variablen

5 Beweis Ist c ein korrektes Zertifikat? Sei x eine Eingabe mit f(x) f(x) und x konsistent mit c Sei B k+1 die Menge der Variablen, wo x, x unterschiedlich Klar: auf x ist f für B k+1 sensitiv Aber B k+1 ist disjunkt von den Variablen in c, denn dort sind x und x gleich! Also ist bs(x)>k, Widerspruch!

6 Monotone Funktionen f heisse monoton, wenn Ändern eines Eingabebits von 0 auf 1 den Funktionswert nicht von 1 auf 0 ändern kann Theorem 10.6 Für monotone f gilt: s(f)=bs(f)=C(f) Beweis: Übung

7 Damit gilt insgesamt: D· C 2 (f)· s(f) 2 (f)bs 2 (f)· bs 4 (f) Kann verbessert werden zu D(f)· bs 3 (f) Unterschiede s, bs und bs, D sind manchmal quadratisch Insbesondere gilt log bs(f) = (log C(f)) = (log D(f))

8 Anwendung: PRAMs PRAM: Parallel Random Access Machine Definition 10.7 Eine PRAM mit p Prozessoren besteht aus p Registermaschinen [RAM], die über zusätzliche Lese und Schreiboperationen auf einen gemeinsamen Speicher zugreifen können In einer EREW PRAM [exclusive read/write] muß sichergestellt sein, daß dieselbe Speicherzelle nie gleichzeitig von zwei Prozessoren benutzt wird In einer CREW PRAM [concurrent read/exclusive write] dürfen mehrere Prozessoren eine Zelle lesen In einer CRCW PRAM darf gleichzeitig gelesen und geschrieben werden, Schreibkonflikte werden z. B. nach Prozessornummer gelöst

9 Minimale Rechenzeit Die Laufzeit einer PRAM ist wie üblich definiert Dabei ist ein Schritt ein (paralleler) Lesezugriff plus interne Berechnung plus Schreibzugriff Insbesondere interessieren uns hier die minimalen Laufzeiten, die bei beliebig grosser Anzahl von Prozessoren möglich sind

10 Beobachtung 1 Jede Boolesche Funktion auf n Variablen kann in konstanter Zeit auf einer CRCW PRAM berechnet werden Nichtuniforme Berechnung Verwende DNF, n Prozessoren pro Term Alle Prozessoren eines Terms lesen die entsprechenden Literale, und wer ein falsche Literal findet, schreibt 0 in eine mit 1 initialisierte Zelle Dann schreiben alle Prozessoren eines Terms der zu 1 evaluierte eine 1 in eine mit 0 initialisierte Zelle

11 Beobachtung 2 Auf EREW PRAMs brauchen alle Funktionen, die von n Variablen abhängen Zeit (log n) Betrachte Simulation durch Schaltkreise mit konstantem Ingrad der Gatter, solche haben bei n Eingaben (log n) Tiefe

12 Was ist mit CREW? Theorem 10.8 CREW PRAMs für Boolsche Funktionen f brauchen (log D(f)) Zeit (bei beliebig vielen Prozessoren)

13 Drei Lemmata Lemma 10.9 Ein CREW Algorithmus braucht (log s(f)) Zeit, d.h. Wenn die Zeit T beträgt, ist s(f)· const T Lemma 10.10 Ein CREW Algorithmus braucht (log bs(f)) Zeit Lemma 10.11 Eine CREW PRAM kann eine Funktion in Zeit O(log D(f)) berechnen (d.h. kann einen Entscheidungsbaum in der Zeit auswerten). Zusammen ergibt sich das Theorem

14 Erste Idee 10.9 PRAM akkumuliert Information über die Eingabe Pro Schritt wird Information über Eingabe verdoppelt (bisherige Information eines Prozessors plus Information einer Speicherzelle=bisherige Information anderer Prozessor Daher Zeit log s(f) ? Problem: OR braucht nur Zeit <log n

15 Parallele Berechnung von OR Erster Ansatz: In Schritt 1 liest Prozessor i Zellen 2i, 2i-1 und schreibt ODER nach i Iteration mit n/2 Eingaben und Prozessoren Nach genau log n Schritten fertig

16 Parallele Berechnung von OR Schneller: Fibonacci Zahlen F 0 =0, F 1 =1, F i+2 =F i +F i+1 F 2t ¼ Verwende Schreibzugriff für weitere Akkumulation von Ergebnissen Beispiel: OR, wenn wir wissen, dass nur max. eine Eingabe 1 ist: Alle lesen ihre Eingabe, schreiben in eine gemeinsame Zelle, wenn diese 1 ist Daher EREW Algorithmus, Zeit 1

17 Parallele Berechnung von OR Verwende lokale Speicherzellen Y(i) Globale Zellen M(i) Eingabe X(i) sei in M(i) Berechnungsschritt t für Prozessor i: Schreibe Y(i) Ç M(i+F 2t ) nach Y(i) [Leseschritt plus intern] Wenn i>F 2t+1, und Y(i)=1, dann schreibe 1 nach M(i- F 2t+1 ) Fertig nach t Schritten für n=F 2t+1 Daher Zeit t für >>2 t Eingaben, bzw. Zeit c log n mit c<1

18 Analyse Klar: EREW Algorithmus, Zeit t Korrektheit: Nach Schritt t ist Y(i)=OR(x(i),…, X(i+F 2t -1)) M(i)=OR(x(i),…, X(i+F 2t+1 -1)) Beweis per Induktion Schlussfolgerung: Lemma 10.9 ist nicht trivial!

19 Lemma 10.11 Zeigen zuerst obere Schranke Lemma 10.11 Eine CREW PRAM kann eine Funktion in Zeit O(log D(f)) berechnen (d.h. kann einen Entscheidungsbaum in der Zeit auswerten) Eingabe: x, dazu soll Entscheidungsbaum T simuliert werden

20 Algorithmus Repräsentiere Baum als Array von Pointern zu den Söhnen Array sei in gemeinsamem Speicher [Setup] Prozessor i liest für Knoten i die zugehörige Variable x(j(i)) und streicht die nicht zutreffende Kante im Array [CREW] Übrig: Pfad der Länge d<D(f) im Array als Kette von Pointern Verwende Pointer Jumping, um in Zeit O(log d) das Blatt/Ende des Pfades zu finden

21 Pointer Jumping Prozessor i liest Pointer p(i) in Zelle i, liest Zelle p(i) und schreibt Ergebnis nach i Pfadlänge halbiert sich pro Schritt!

22 Insgesamt Erhalten PRAM Algorithmus, der f in Zeit O(log D(f)) berechnet, CREW ist und soviel Prozessoren braucht, wie der Entscheidungsbaum für f Knoten hat CREW Zeit ist also O(log D(f))=O(log bs(f)) Noch zu zeigen: auch (log bs(f))


Herunterladen ppt "Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 20.5."

Ähnliche Präsentationen


Google-Anzeigen