Randomisierte Algorithmen – Algebraische Methoden Martin Liesenberg Freie Universität Berlin, [email protected] 28. Mai 2013 1 Fingerprint Methoden Algorithm 1 Freivald’s Algorithmus 1: input: n ∗ n Matrizen A, B und C über dem Körper K 2: r ← (r1 , r2 , ..., rn ) ∈ {0, 1}n . wobei die ri unabhängig gleichverteilt sind 3: z ← A(Br) 4: y ← Cr 5: if y = z then 6: return yes 7: else 8: return no 9: end if Die Idee von Fingerprint Methoden ist die folgende: Es soll entschieden werden, ob zwei Elemente x und y aus einer Menge U identisch sind. Da der direkte Vergleich zu aufwändig ist, wird durch eine Abbildung φ : U → V eine Menge V , mit |V | << |U |. Die Bilder φ(x) und φ(y) können dann mit geringerem Aufwand verglichen werden und es wird gehofft, dass man aus φ(x) = φ(y) x = y folgern kann. Auf Grund der Kardinalitätsunterschiede ist die Funktion phi normalerweise nicht injektiv, die erhoffte Schlussfolgerung also fehlerbehaftet. Durch die Wahl der Funktion φ kann man die Größe des Beweis 1.1 (Satz 1.1). Seien D = AB − C, y = Fehler steuern. ABr, z = Cr und d die erste Zeile von D O.B.d.A. sei d = (d1 , ..., dn ) nicht der Nullvektor und 1.1 Freivald’s Algorithmus d1 , ..., dk mit k ≤ n seien die Nichtnulleinträge von d. Freivald’s Algorithmus bedient sich der eingangs Gesucht ist nun die untere Schranke von P (y 6= z). beschriebenen Technik, um die Ergebnisse von Da der erste Eintrag in Dr dT r ist, gibt er uns direkt Matrixmultiplikation zu überprüfen. Formal diese Schranke. dT r = 0 gdw. betrachten wir also folgendes Problem: Gegeben 3 P n ∗ n Matrizen A, B und C über einem Feld F ist − i=2 cdi ri r = (1) 1 zu prüfen, ob AB = C gilt. Der beste bekannte d1 deterministische Algorithmus um AB zu berechnen hat die Komplexität O(n2.367 )[4]. Mit Hilfe von Es seien r2 , ...rn bereits gewählt. 1 Die rechte Seite Freivald’s Algorithmus kann diese Schranke auf der Gleichung ist hat dann einen bestimmten Wert v ∈ F . Da r1 gleichverteilt über einem Feld der Größe O(n2 ) reduziert werden. 2 ist, muss P (r1 = v) ≤ 21 sein. Die Wahrscheinlichkeit kann auf 21k reduziert Satz 1.1. Es gilt P (E) ≤ 21 , wobei E = {ABr = Cr ∧ AB 6= C mit r gleichverteilt und zufällig aus werden, wenn k Iterationen durchgeführt werden. 1 Principle of deferred decisions, Kapitel 3 Abschnitt 5, [1] {0, 1}n und A, B und C n ∗ n Matrizen. 1 k Abschnitt 7.2 in [1] zeigt die Anwendung des Aus der Zahlentheorie wissen wir, dass π(k) ∼ ln(k) . Algorithmus auf das Problem der Verifikation von Wählen wir eine Schwelle τ größer als n = log(N ). Polynomidentitäten. Folglich ist die Anzahl der Primzahlen kleiner als τ τ π(τ ) ∼ ln(τ ) . Aus dieser Menge können maximal n c teilen und so einen Fehler in der Fingerprint 1.2 Zweite Fingerprint Methode Funktion erzeugen. 2 Also wählen wir p < τ für In diesem Abschnitt wird eine weitere Art des F . Die Anzahl der zu übertragenden Bits ist also p Fingerprinting, die sich insbesondere auf das O(logτ ). Mit τ = tn log tn für große t folgt dann Problem der Gleichheit von Zeichenketten anwenden Satz 1.2, denn lässt, vorgestellt. Ein Anwendungsgebiet ist zum n ∗ ln(tn ∗ log(tn)) n ∗ ln(τ ) Beispiel die Datenreplikation. Hierbei werden große = τ tn ∗ log(tn) Mengen von Daten mehrfach an verschiedenen (3) 1 ln(tn ∗ log(tn)) 1 Orten gespeichert. Zur Wahrung der Konsistenz = ∗ = O( ) wird in bestimmten Abständen eine Verifikation t log(tn) t der Daten vorgenommen. Ziel ist es mit möglichst Für n Anzahl Primteiler von τ und π(τ ) die Anzahl wenig Datenaustausch den Datenbestand mit hoher aller Primzahlen < τ . Wahrscheinlichkeit zu verifizieren. Gegeben sind zwei Datenbestände in der Form von Bitfolgen a1 ...an und b1 ...bn . Die DatenPwerden als 2 Interaktive Beweissysteme n i−1 n-bit Integer a und b der Form a = a 2 i i=1 Pn i−1 und b = interpretiert. Die Fingerprint Die Grundidee von Interaktiven Beweissystemen ist i=1 bi 2 – Funktion hat die Form: Fp : K → K mit Fp (x) = x die Nutzung von Verifizierern aktiven Beweisführern mod p, für p ∈ Menge der Primzahlen und p zufällig an Stelle von passiven Beweisen. Ein Verifizierer gewählt. Übertragen wird also Fp (a) und es geprüft V kann beliebige randomisierte Polynomialzeitwird Fp (a) 6= Fp (b). Gehofft wird, dass wenn a 6= b Berechnungen durchfhren. Er bedient sich dabei gilt, auch Fp (a) 6= Fp (b) gilt, denn dann reichen zur der Hilfe eines Beweisführers P , dessen Ziel es Überprüfung O(log p) Bits. Wie hoch ist also die ist V von der zu beweisenden Eigenschaft zu Wahrscheinlichkeit P (Fp (a) = Fp (b)|a 6= b)? überzeugen. P kennt die Strategie von V und Dazu ein Lemma über die Anzahl an Primteilern. verfgt ber unbeschränkte rechnerische Ressourcen. Insbesondere ist P nicht wie V auf die Durchführung Lemma 1.1. Die Anzahl verschiedener Primteiler von Polynomialzeit Algorithmen beschränkt. Die n einer Zahl x ≤ 2 ist höchstens n. einzige Einschränkung des Beweisgenerators P ist, Beweis 1.2 (Lemma 1.1). Alle Primzahlen sind dass dieser keinen direkten Zugriff auf die Zufallsbits größer als 1. Falls N mehr als t verschiedene von V hat. Die Interaktion der beiden folgt Primteiler hat, dann muss gelten N ≥ 2t . folgendem Protokoll: V stellt Fragen, die P dann - möglicherweise falsch, mit der Absicht V zum Satz 1.2. Für a, b ∈ N große t ∈ R und τ = tn akzeptieren zu bewegen - beantwortet, bis V entweder log(tn) gilt: akzeptiert oder entscheidet, dass P ’s Antworten nicht ’überzeugend’ – falsch – sind. Ein Beispiel ist der 1 n = O( ) (2) Algorithmus 2 in Abschnitt 2.1 P (Fp (a) = Fp (b)|a 6= b) ≤ π(τ ) t Beweis 1.3 (Satz 1.2). Gegeben a und b, sei c = 2.1 Graph Nicht Isomorphie (GNI) |a − b|, dann gilt die Aussage a 6= b ⇒ Fp (a) 6= Fp (b) genau dann nicht, wenn c 6= 0 und gilt p Informell bedeutet Isomorphie, dass zwei Graphen teilt c. Außerdem sei die Funktion π(k) gegeben, die den selben Aufbau, die gleiche Struktur haben. 2 F (x) schlägt fehl, wenn gilt c 6= 0 und p teilt c Anzahl verschiedener Primzahlen kleiner k liefert. p 2 P (σ = σ1 ∧ i = 1 | V gibt H an) = P (σ = σ2 ∧ i = 2 | V gibt H an). Da P die Permutation σ Definition 2.1 (Graph Isomorphie). Es seien nicht (er)kennt, kann er den Index i nicht errechnen, G(V, E1 ) und G(V, E2 ) Graphen mit der gleichen und wird mit einer Wahrscheinlichkeit von 1 mit 2 indizierten Knotenmenge V = {1, ..., n}. j = i antworten können. Also akzeptiert V mit der Die beiden Graphen sind isomorph, wenn eine Wahrscheinlichkeit 1 .3 2 Permutation π über {1, ..., n} existiert, so dass gilt: Formal heißt das: 2.2 ∀i, j ∈ {1, ..., n}: (i, j) ∈ E1 ⇔ (π(i), π(j)) ∈ E2 Komplexitätsklasse IP Aus dem Konzept der Interaktiven Beweissysteme lässt sich die Komplexitätsklasse IP ableiten. Das Problem kann effizient verifiziert werden und es wird vermutet, dass es N P - schwer ist. Das komplementäre Problem liegt in co - N P und es ist kein effizienter Weg bekannt, um die Eigenschaft nicht - isomorph zu beweisen. Wir nutzen die eingangs vorgestellte Idee eines IP S zur effizienten Verifikation. Das entsprechende IP S verfügt über das Protokoll in Algorithmus 2. Definition 2.2 (IP ). Die Komplexitätsklasse IP besteht aus allen Sprachen L, die ein Interaktives Beweissystem (V, P ) mit einem randomisierten Polynomialzeit Verfizierer V und einem P∗ Beweisführer P bzw. P 0 haben, so dass gilt: ∀x ∈ • x ∈ L ⇒ P (V (x, P ) = 1) = 1, für einen ehrlichen Beweisführer P Algorithm 2 Verifikation GNI 1: input: Graphen G1 und G2 2: V: Wähle zufällig und gleichverteilt Index i ∈ {0, 1} 3: V: Wähle zufällig und gleichverteilt eine Permutation σ über {1, ..., n} 4: V: Berechne H = σ(Gi ) 5: V: Frage P , für welches j H isomorph Gj gilt 6: P: Antworte mit Index j 7: V: Wenn j = i akzeptiere Nicht Isomorphie von G1 und G2 , sonst lehne ab • x ∈ / L ⇒ P (V (x, P 0 ) = 1) ≤ 12 , für einen möglicherweise nicht ehrlichen Beweisführer P 0 Im Vergleich zur Klasse N P , die die Klasse der Sprachen ist, für die mit einer deterministischen Turingmaschine in polynomieller Zeit entschieden werden kann, dass ein Wort in der Sprache ist, kann das für die Klasse IP mit Hilfe einer probabilistischen Turingmaschine entschieden werden. Satz 2.2. IP = P SP ACE Satz 2.1. Wenn G1 und G2 nicht-isomorph sind, dann garantiert ein ehrlicher Beweisführer P , dass V akzeptiert und für jeden nicht ehrlichen Beweisführers P 0 akzeptiert V mit der Wahrscheinlichkeit 12 Der genaue Beweis findet sich u.a. bei [3], die Ideen des Beweises finden sich auch im Beweis von Satz 2.3 Eine Konsequenz aus IP = P SP ACE ist, dass die Menge der effizient beweisbaren Sprachen stark erweitert wurde. Beweis 2.1 (Satz 2.1). Sollten beide Graphen nicht -isomorph sein und V zuerst i = 1 bzw. i = 2 nutzt. Dann sind H und G1 isomorph, H und G2 nicht. Ein ehrlicher Beweisführer kann mit Hilfe seiner Rechenkapazität diesen Sachverhalt feststellen und kann mit dem entsprechenden Index antworten. Sind G1 und G2 isomorph, muss H zu beiden Graphen isomorph sein. Sei σ1 ein Isomorphismus von G1 zu H und σ2 von G2 zu H. Also gilt: Definition 2.3 (#3 - SAT). ∀(F, s) einer aussagenlogischen Formel F in 3–KNF und einer ganzen Zahl s gilt: (F, s) ∈ #3 − SAT , gdw. für F genau s verschiedene erfüllende Interpretationen existieren. Satz 2.3. #3 − SAT ∈ IP 3 Auch hier wird das Principle of deferred decisions angewandt 3 Als Beweisskizze wird ein Protokoll eines IP S für arbeiten. P CP beschreibt die Klasse von Sprachen #3 − SAT angegeben. deren Zugehörigkeit von einem randomisierten Polynomialzeit - Verifizierer überprüft werden kann. Beweisskizze 2.1 (Satz 2.3). Der erste Schritt des Verifizierer V ist es die Boolesche Formel F in eine Definition 3.1 (P CP ). Die Klasse PCP besteht algebraische Form zu bringen, sie zu arithmetisieren. aus allen Sprachen L, die einen randomisierten Jede Belegung A wird als n-dimensionaler Vektor a = Polynomialzeit - Verifizierer V besitzen, so dass für jedes x ∈ L gilt: (a1 , ..., an ) mit ( • x ∈ L ⇒ es existiert ein Beweis Π, so dass 1, falls Ai = wahr P (V (x, Π) = 1) = 1 ai = 0, falls Ai = falsch • x ∈ / L ⇒ es existiert ein Beweis Π, so dass . Außerdem wird F mit den Variablen X1 , ...Xn P (V (x, Π) = 1) ≤ 12 durch ein Polynom mit den Variablen x1 , ...xn Gilt x ∈ / L dann müssen alle angeblichen Beweise repräsentiert. falsch sein und das muss vom Verifizierer mit hoher Jede Klausel Ci bestehend aus Literalen Lij mit j ∈ Wahrscheinlichkeit erkannt werden. {1, 2, 3} wird durch ein ci = 1 − li1 li2 li3 mit Die Definition von P CP kann man so erweitern, dass ( xij , falls Lij eine negierte Variable ist sie die Anzahl der Zufallbits und die Anzahl der Bits lij = des Beweises mit in Betracht zieht. 1 − x , sonst ij Definition 3.2 (P CP (r(n), q(n))). Die Klasse P CP [r(n), q(n)] besteht aus allen Sprachen L ∈ P CP , die einen randomisierten Polynomialzeit Verifizierer V besitzen, der bei einer Eingabe der überführt. Im nächsten Schritt ist zu überprüfen, Länge n O(r(n)) Zufallsbits nutzt und O(q(n)) Bits ob s = # erfüllender Belegungen von f für ein von einem angeblichen Beweis Π nutzt. gegebenes s. Das geschieht mit Hilfe von partiellen Ohne Beweis sei noch erwähnt, dass P = Summenpolynomen, die wie folgt definiert sind: P CP (0, 0) und N P = P CP (0, poly(n)), wobei P1 P1 fi (x1 , ..., xi ) = xi+1 =0 ... xn =0 f (x1 , ..., xn ) poly(n) für eine beliebige Funktion steht, die durch ein Polynom n beschränkt ist. Die Eigenschaften der Polynome ([1] Seite 178) helfen beim Beweis des nachfolgenden Protokolls. Der Verifizierer fragt den Beweisführer nach der 4 Quellen Form des Polynom f1 (x), der Beweisführer antwortet mit einem Polynom g(x). Die Polynome werden 1 R. Motwani, P. Raghavan: Randomized mit einer Fingerprinting Methode verglichen und die Algorithms, Cambridge University Press, Wahrscheinlichkeit für einen Fehler beträgt: 1995 D.h. die Formel F wird in das Polynom f : Qm Qm f (x1 , ..., xn ) = i=1 ci = i=1 1 − li1 li2 li3 P (g(r) = f1 (r)|g(x) 6= f1 (x)) ≤ 3m p 2 Shafi Goldwasser, Silvio Micali, Charles Rackoff: The knowledge complexity of interactive proof systems, SIAM Journal on Computing, 1989 Mit p Primzahl < 2n und r ∈ Zp zufällig gewählt. 3 3 Adi Shamir: IP = P SP ACE, Journal of the ACM Volume 39 Issue 4, 1992 Propabilistische Beweisverifizierung 4 D. Coppersmith, S. Winograd: Matrix Multiplication via Arithmetic Progressions, 1987 Im Gegensatz zu IP werden wir jetzt wieder mit statischen Beweisen an Stelle von Beweisern 4