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

Slides:



Advertisements
Ähnliche Präsentationen
3. Kapitel: Komplexität und Komplexitätsklassen
Advertisements

Verifizieren versus Berechnen
Algorithmentheorie 04 –Hashing
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
 Präsentation transkript:

Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS

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)

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|

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

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!

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

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

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

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

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

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

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

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 Ein CREW Algorithmus braucht (log bs(f)) Zeit Lemma 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

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

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

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

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

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!

Lemma Zeigen zuerst obere Schranke Lemma 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

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

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!

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