Eziente PCP-Verizierer: Untersuchung von algebraischen und kombinatorischen Konstruktionen Diplomarbeit von Houssem Belloum Sommersemester 2006 Version vom 18. Juli 2006 Betreuer: Prof. Jacques Calmet und Dipl. Inform. Thilo Mie Institut für Algorithmen und Kognitive Systeme Universität Karlsruhe (TH) Erklärung Ich erkläre hiermit diese Arbeit selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet zu haben. Ort, Datum Danksagung Diese Arbeit käme nicht zustande ohne die Hilfsbereitschaft und das Engagement meines Betreuers Dipl. Inform. Thilo Mie, der mich in der Forschung und in der Ausarbeitung ständig unterstützt hat. Meine Lebensgefährtin Özge Tahiroglu stand an meiner Seite in Augenblicken, die nicht immer voller Honung waren. An Beide richte ich meinen herzlichen Dank. Je remercie encore ma mère et mon père, Mounira et Mahmoud Belloum, ainsi que toute ma famille pour les valeurs, dont ils m'ont muni, et qui ont autant de valeur qu'un diplome d'informaticien et même plus. Inhaltsverzeichnis 1 Einführung und Denitionen 1.1 1.2 1.3 PCP-Konstruktionen 1 . . . . . . . . . . . . . . . . . . . . . . . PCP-Denition 1.1.1 Formale 1.1.2 Komposition und 1.1.3 2 . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . 4 Bisherige Ergebnisse und Ziel der Arbeit . . . . . . . . 7 Technische Werkzeuge PCPPs . . . . . . . . . . . . . . . . . . . . . . 10 1.2.1 Expandergraphen . . . . . . . . . . . . . . . . . . . . . 10 1.2.2 Cayley-Graphen . . . . . . . . . . . . . . . . . . . . . 13 1.2.3 Fehlerkorrigierende Codes . . . . . . . . . . . . . . . . 15 Organisation der Arbeit . . . . . . . . . . . . . . . . . . . . . 2 Algebraische PCP-Konstruktionen 17 2.1 Algebraischer Ansatz . . . . . . . . . . . . . . . . . . . . . . . 2.2 Reduktion von 3-SAT auf 2.3 RS-Verizierer 2.4 Basis-Verizierer für 2.5 hitter-Algorithmen 2.6 Ein algebraischer polylog-Verizierer LUACSP 16 18 . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 LUACSP . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . 3 Kombinatorische PCP-Konstruktionen 27 29 3.1 Kombinatorischer Ansatz . . . . . . . . . . . . . . . . . . . . 29 3.2 Ausdehnung der Erfüllbarkeitslücke . . . . . . . . . . . . . . . 31 3.2.1 Knoten-Duplizierung . . . . . . . . . . . . . . . . . . . 32 3.2.2 Expandisierung . . . . . . . . . . . . . . . . . . . . . . 35 i 3.3 3.2.3 Powering . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Komposition 3.2.5 Verdopplung der Erfüllbarkeitslücke . . . . . . . . . . . . . . . . . . . . . . . 37 40 . . . . . . . . . . 44 . . . . . . . . . . . . . . . . 45 3.3.1 Hybrider Ansatz: kombinatorisch und algebraisch . . . 46 3.3.2 Algebraische 3.3.3 PCP-Konstruktionen nach Dinur PCP-Anwendung . . . . . . . . . . . . . . 47 Aufblähung der Variablen . . . . . . . . . . . . . . . . 48 3.3.4 Reduktion des Alphabets . . . . . . . . . . . . . . . . 49 3.3.5 Ausdehnung der Erfüllbarkeitslücke . . . . . . . . . . . 51 3.3.6 PCP-Protokoll 51 nach Dinur . . . . . . . . . . . . . . . . 4 Hybrider PCP-Verizierer mit polylogarithmischer Laufzeit 53 4.1 4.2 4.3 4.4 Aufbau des Verizierers . . . . . . . . . . . . . . . . . . . . . 54 4.1.1 Notationen . . . . . . . . . . . . . . . . . . . . . . . . 54 4.1.2 Das Protokoll des Verizierers . . . . . . . . . . . . . . 56 4.1.3 Bausteine des Schaltkreises . . . . . . . . . . . . . . . 60 Strukturierung des Beweises . . . . . . . . . . . . . . . . . . . 62 4.2.1 Nachbarschaft eines Knoten . . . . . . . . . . . . . . . 62 4.2.2 Kanonische Ordnungen . . . . . . . . . . . . . . . . . . 68 Adressierung der Knoten . . . . . . . . . . . . . . . . . . . . . 72 4.3.1 Struktur der Knotenadressen . . . . . . . . . . . . . . 73 4.3.2 Komplexität der Knotenadressierung . . . . . . . . . . 76 4.3.3 Berechnung der Knotenadressen . . . . . . . . . . . . . 77 Analyse des Verizierers . . . . . . . . . . . . . . . . . . . . . 81 4.4.1 Analyse der Laufzeit . . . . . . . . . . . . . . . . . . . 82 4.4.2 Analyse der übrigen Parameter 83 5 Fazit und Ausblick . . . . . . . . . . . . . 85 Literatur 88 ii Kapitel 1 Einführung und Denitionen PCP-Konstruktionen und deren EfPCP (Probabilistically Checkable Proof ) wurde in [ALM+ 92] In dieser Arbeit beschäftigen wir uns mit zienz. Der Begri im Rahmen der Verikation von formalen Sprachen eingeführt und bot eine Alternative zu den deterministischen Sprachakzeptoren. Denition 1.1 (Sprachakzeptoren) Ein Akzeptor einer Sprache L, ist ein Algorithmus V , der für eine Eingabe x entscheidet, ob x ∈ L oder x ∈ /L gilt. Der Algorithmus V heiÿt auch ein Verizierer von L. PCP-Verizierer sind Sprachakzeptoren, die die Mitgliedschaft einer Eingabe x in einer Sprache L nicht-deterministisch (probabilistisch) entscheiden: Ein gültiger Kandidat wird immer akzeptiert und die Wahrscheinlichkeit, einen ungültigen Kandidaten zu akzeptieren, ist klein. Eine formale Denition folgt im nächsten Abschnitt. Wir werden Sprachakzeptoren aus komplexitätstheoretischer Sicht betrachten: Wie ezient können bestimmte Klassen von Sprachen veriziert werden? Für den Aufwand einer Berechnung haben sich folgende Maÿe etabliert: 1. Zeitkomplexität: Wie viele Rechenschritte werden ausgeführt? 2. Platzkomplexität: Wie viele Speicherzellen werden gebraucht? 1 3. Beschreibungskomplexität: Wie kurz kann eine Berechnung beschrie- ben werden? Da Algorithmen mit exponentieller laufzeit (in der Länge der Eingabe) praktisch nicht anwendbar sind, wurde die Optimierung der Zeitkomplexität von 1 Diese von Kolmogorov [Kol68] eingeführte Komplexität spielt eine bedeutende Rolle in der Informationstheorie. In der Komplexitätstheorie wird sie allerdings nicht intensiv erforscht. 1 Algorithmen zum Hauptziel der Komplexitätstheorie. Ein Meilenstein in der Kategorisierung von Sprachen nach der Zeitkomplexität ist die Arbeit von Cook, in der die Klasse NP eingeführt wurde [Coo71]: Denition 1.2 Die Klasse NP enthält alle Sprachen bzw. Probleme, die mit einer deterministischen Turing-Maschine in einer in der Länge der Eingabe polynomiellen Zeit verizierbar sind. Wir werden uns mit PCP-Verizierern von NP-Sprachen beschäftigen und die Vor- und Nachteile gegenüber deterministischen Verizierern kennen lernen. 2 Danach stellen wir einige PCP-Konstruktionen vor und untersuchen deren Ezienz aus komplexitätstheoretischer Sicht. Unser Beitrag ist der Entwurf eines PCP-Verizierers mit bedeutend besseren Parametern als bis- herige Konstruktionen. 1.1 PCP-Konstruktionen PCP-Konstruktion x in einer Sprache L Das Ziel einer ist die probabilistische Verikation, ob ei- ne Eingabe enthalten (positiver Kandidat) oder nicht enthalten (negativer Kandidat) ist. Wir geben zuerst eine formale Denition von PCPs und untersuchen dann die Verbindung zu der Komplexitätstheorie. 1.1.1 Formale PCP-Denition PCP-Konstruktion besteht aus zwei Parteien: dem deterministischen B und dem probabilistischen Verizierer V . Wir stellen das Protokoll einer PCP-Verikation vor und erläutern dann die darin auftretenden Eine Beweiser Parameter: 1. Für eine Eingabe proof ) π(x) x der Länge 2. Mit dem Wurf von 3. r B PCP-Verizierer σ(Iτ ) einen Mitgliedschaftsbeweis (membership S. Münzen bildet V liest die Eingabe x und Iτ (π(x)) (eine Menge von q 4. Die Belegung 2 liefert von Iτ V eine zufällige Zeichenkette bestimmt mit Bits in wird in π(x)) π(x) können für andere Klassen wie schränken aber unsere Analyse auf die Klasse vollständige Probleme. 2 NP. τ eine Zeichenkette und einen Schaltkreis τ. Iτ := D. gelesen. NEXP deniert werden. Wir beNP-Sprachen verstehen wir NP- Unter 5. Der Schaltkreis T D bekommt die Eingabe x ∪ σ(Iτ ), hat eine Laufzeit und seine Ausgabe erfüllt folgende Bedingungen: x ∈ L =⇒ ∃π(x) : Pr[D(x ∪ σ(Iτ )) = 1] ≥ c (1.1) x∈ / L =⇒ ∀π(x) : Pr[D(x ∪ σ(Iτ )) = 0] > s (1.2) τ τ 6. Der Verizierer akzeptiert den Kandidaten x, falls D(x ∪ σ(Iτ )) = 1, und lehnt sonst den Kandidaten ab. Für die komplexitätstheoretische Analyse dieses Protokolls betrachten wir folgende Parameter: • Die Länge S = |π(x)|: Der Beweis liegt in Form von Auswertungsta- bellen, die als eine einzige Zeichenkette der Länge können. Wir betrachten π(x) Die Zufälligkeit (randomness) V für die Bestimmung von τ dargestellt werden als Orakel, der nach Anfrage des Veri- zierers die Belegung von jedem Bit in • S r π(x) ausgeben kann. bezeichnet die Anzahl der Würfe, die benötigt, wobei τ eine Konkatenation von mehreren Zufallszeichenketten (für verschiedene Teiltests) sein kann. Es bezeichne V. • Γ(V) die Menge |Γ(V)| = 2r . aller möglichen Zufallszeichenketten für Es gilt also: Die Anfragekomplexität (query complexity) π(x), die V q bezeichnet die Anzahl Anf(V(τ )) die Menge der angefragten Bits bei der PCP-Anwendung von V mit der Zufallszeichenkette τ . Die Eingabe x wird vollständig gelesen und zählt der Bits aus im Beweis anfragt. Ferner bezeichne nicht zu der Anfragekomplexität. • Die Laufzeit der Verikation von • D(x ∪ σ(Iτ )) T ist die Laufzeit, die für die Auswertung verbraucht wird. c: Die Vollständigkeit (completeness) struktionen mit c=1 Wir werden ausschlieÿlich Kon- betrachten. Die Bedingung (1.1) gewährleistet dann, dass ein ehrlicher Beweiser für einen positiven Kandidaten mer • einen gültigen Mitgliedschaftsbeweis Die Korrektheit (soundness) π(x) im- liefert. s: Die Bedingung (1.2) gewährleistet, dass keinen über- ein unehrlicher Beweiser für einen negativen Kandidaten zeugenden Beweis liefern kann. Alle Beweise werden mit Wahrscheinlichkeit mindestens Wahl von τ ∈ Γ(V) s abgelehnt, wobei die Wahrscheinlichkeit über die berechnet wird. + Arora et al. [ALM 92] haben eine Familie von Komplexitätsklassen eingeführt, die über die Parameter von PCPs 3 deniert sind. In ihrer Notation ist L in der Klasse PCP[r, q], falls es für alle Eingaben x ∈ L der n einen Verizierer mit Zufälligkeit r, Anfragekomplexität q , konstan3 Korrektheit s und Laufzeit T = poly n gibt. Diese Notation ermöglicht eine Sprache Länge ter eine neue Charakterisierung von bekannten Komplexitätsklassen mit deterministischen Verizieren wie NP = PCP[0, n]. Die interessantesten Ergebnisse kamen jedoch von der Erforschung von babilistischen Verizierern (mit pro- r 6= 0). Diese Verizierer basieren auf folgen- dem Kompromiss: Während positive Kandidaten mit Sicherheit akzeptiert werden (Vollständigkeit), werden negative Kandidaten nicht immer sondern 4 nur mit groÿer Wahrscheinlichkeit abgelehnt (Korrektheit). aber wenige Bits im Beweis Dafür müssen π(x) angefragt werden. Die Anfragekomplexität bei deterministischen Verizierern ist mindestens linear in der Länge des Beweises bzw. der Eingabe, da sonst zwischen richtigen und leicht verfälschten Beweisen nicht unterschieden werden kann. 5 Diese untere Schranke induziert einen hohen Kommunikationsbedarf zwischen dem Beweiser und dem Verizierer und gleichzeitig eine untere Schranke für den Aufwand der Verikation. PCP-Konstruktionen ist also eine mindestens subq = poly log n und q = O(1). Charakterisierungen der Klasse NP der Form: Das Ziel beim Entwurf von lineare Anfragekomplexität. Sinnvolle Ziele sind Es ergaben sich neue NP = PCP[r, q] (1.3) r und q . Die Gleichung (1.3) wird als (generischer) PCP-Satz bezeichnet und die Angabe von r und q liefert Varianten des PCP- für geeignete Parameter + Satzes. In ihrer berühmten Arbeit [ALM 92] haben Arora et al. gezeigt, dass eine konstante Anzahl von Bits hinreichend ist, um die Mitgliedschaft in NP mit konstanter Korrektheit zu verizieren. Sie bewiesen damit einen der ersten nicht trivialen PCP-Sätze: NP = PCP[O(log n), O(1)]. Ein wichtiges Werkzeug in ihrer Arbeit war die Komposition von Verizierern, die wir im nächsten Abschnitt erläutern werden. 1.1.2 Komposition und PCPPs PCPs war die Einführung der KomPCP-Verizierer für eine Sprache L liest die ganze Eingabe x und q Bits (σ(Iτ )) im Beweis π(x) und akzeptiert (entscheidet x ∈ L), falls D(x ∪ σ(Iτ )) = 1. Um die Anfragekomplexität zu reduzieren, wollen wir diesen Test ausführen, ohne ganz Iτ zu lesen. Die Lösung liegt darin, einen inneren Verizierer Vin anzuwenden, der die Erfüllbarkeit Ein Meilenstein in der Optimierung von position von Verizierern: Ein 3 poly n = O(nk ) für eine Konstante k. Äquivalent sagen wir, dass die Laufzeit T poly- nomiell ist. 4 5 Unter groÿer Wahrscheinlichkeit verstehen wir jede Konstante 1/2 ≤ α < 1. Leicht verfälschte Beweise können sich von einem gültigen Beweis nur um ein Bit unterscheiden. 4 von D(x ∪ σ(Iτ )) testet. Die Erfüllbarkeit des Schaltkreises D induziert eine L0 := CircuitValue, die mit Hilfe einer PCP-Konstruktion veriziert Sprache werden kann. Die Idee kann rekursiv angewandt werden, bis die gewünschte 6 Anfragekomplexität erreicht wird. Diese Komposition ist aber nicht trivial: Um die Korrektheit zu erhalten, muss die Konsistenz zwischen dem inneren roPCPP-Verizierern zusammensetzen. Robustheit und PCPP kennen und erklären und dem äuÿeren Verizierer gewährleistet werden. Dafür werden wir buste äuÿere Verizierer mit inneren Wir lernen zuerst die Begrie dann, wie eine eziente Komposition durchgeführt werden kann. Wir übernehmen die PCPP-Denition aus [BS05] und die Denition der Robustheit + aus [BGH 04]: Denition 1.3 (PCPP) Eine Sprache L0 ⊆ Σn hat ein PCPP(Probabilistically Checkable Proof of Proximity) über Alphabet Σ mit der Länge l(n), der Anfragekomplexität q(n), der Zufälligkeit r(n), der Korrektheit s(·, n) und dem Nähefaktor (proximity parameter) δ , falls es einen polynomiellen Verizierer V mit Orakelzugri auf einem Paar (x, π) ∈ Σn+l(n) gibt, so dass der Verizierer mit r(n) Münzwürfen eine zufällige Zeichenkette τ bildet, q(n) Anfragen in (x, π) macht und sich dann folgendermaÿen entscheidet x ∈ L0 =⇒ ∃π ∈ Σl(n) : Pr[V akzeptiert (x, π)] = 1 τ dist(x, L0 ) ≥ δ =⇒ ∀π ∈ Σl(n) : Pr[V lehnt (x, π) ab] ≥ s(δ, n) τ (1.4) (1.5) PCPs, bei denen die Eingabe x vollständig gelesen wird, hat ein PCPP-Verizierer nur einen Orakelzugri auf x. Der Verizierer bestimmt q1 Bits in x und q2 Bits im Beweis π(x) und liest sie. Seine Anfragekomplexität ist also die Summe q1 + q2 und Anf(V(τ )) ⊂ x ∪ π(x) (Siehe Abbildung Im Gegensatz zu 1.1). Diese Restriktion der Anfragekomplexität wird durch eine Lockerung der Entscheidungsvorschrift ausgeglichen: Der Verizierer kann nicht zwischen x ∈ L0 und x ∈ / L0 unterscheiden. Anderenfalls müsste der Verizierer ganz x lesen und die Anfragekomplexität wäre linear. Statt dessen unterscheidet V zwischen x ∈ L0 und x δ -entfernt von L0 . Um PCPPs sinnvoll einzusetzen sollten die Kandidaten x eines PCPP-Verizierers eine entsprechende Distanz-Eigenschaft besitzen. Dies führt uns zum Begri der Robustheit: Denition 1.4 Ein PCP-Verizierer V für eine Sprache L ist Robustheitsfaktor falls ρ und Robustheitsvollständigkeit mit (robust-soundness) s, robust x∈ / L =⇒ ∀π : Pr[∃a ∈ Σq(n) | D(a) = 1 ∧ dist(Iτ , a) ≤ ρ] < 1 − s τ 6 + In [ALM 92] wurde durch diese Technik der bewiesen. 5 (1.6) PCP-Satz NP = PCP[O(log n), O(1)] q=3 Anf(PCP(x, τ )) ganz gelesen π(x) x q2 = 3 q=6 Anf(PCPP(x, τ )) π(x) x q1 = 3 q2 = 3 Abbildung 1.1: Vergleich der Anfragekomplexität von PCPs und PCPPs. Robuste PCPPs für eine Sprache L0 werden analog deniert: dist(x, L0 ) ≥ δ =⇒ ∀π : Pr[∃a ∈ Σq(n) | D(a) = 1 ∧ dist(Iτ , a) ≤ ρ] < s τ (1.7) Ein Robustes PCP garantiert also, dass negative Kandidaten x weit ent- fernt von allen positiven Kandidaten sind. Damit meinen wir aber nicht die Hamming-Distanz zwischen negativen und positiven Kandidaten. Die Implikation (1.6) bedeutet, dass die angefragte Zeichenkette Iτ (x, π(x)) mit s über die Wahl von τ und für alle Beweise π(x) mindestens ρ-entfernt von einer Zeichenkette a ist, die den Schaltkreis D erfüllen würde. Wahrscheinlichkeit mindestens Nun ist klar, dass robuste PCPs geeignete Eingaben für PCPPs (als innere Verizierer) liefern. Die einzige zusätzliche Anforderung ist, dass der Robust- ρ vom äuÿeren Verizierer gröÿer als der Nähefaktor δ vom innee des PCPP-Verizierers eindeutig x e ∈ L0 oder dist(e klassiziert werden kann: entweder x x, L0 ) ≥ δ . Der folgende heitsfaktor ren Verizierer sei, damit der Kandidat Kompositionssatz zeigt die Parameter des resultierenden Verizierers. Wir + 7 orientieren uns an der Notation von Satz 2.6 in [BGH 04]. Satz 1.5 (Kompositionssatz) Für Funktionen rin , rout , Sin , Sout , qin : N → N und sin , sout , ρout , δin : N → [0, 1] gelte Folgendes: • Eine Sprache L habe einen robusten Verizierer Vout mit Zufälligkeit rout , Korrektheit sout , Robustheitsfaktor ρout und Schaltkreisgröÿe Sout . 7 + + Für einen ausführlichen Beweis siehe [BGH 04] oder [ALM 92]. 6 • Die Sprache L0 (CircuitValue) habe ein PCPP-Verizierer mit Zufälligkeit rin , Anfragekomplexität qin , Korrektheit sin , Nähefaktor δin und Schaltkreisgröÿe Sin . • Für alle n ∈ N gelte: δin (Sout (n)) ≤ ρout (n). Dann hat L ein PCP-Verizierer mit folgenden Eigenschaften: • Zufälligkeit rout (n) + rin (Sout (n)), • Anfragekomplexität qin (Sout (n)), • Schaltkreisgröÿe Sin (Sout (n)) und • Korrektheit 1 − sin · sout . Wir werden auf diese Technik in den Kapiteln 2 und 3 zurückkommen und den Kompositionssatz mit geeigneten Parametern instantiieren. Zunächst stellen wir die wichtigsten Ergebnisse auf diesem Gebiet kurz vor und kündigen unser Hauptergebnis an. 1.1.3 Bisherige Ergebnisse und Ziel der Arbeit Für die Erforschung von PCPs gab es in den neunziger Jahren zwei verschiePCPs eine Alternative für die Veri- dene Motivationen: Einerseits sollten kation von langen Berechnungen bzw. groÿen Beweisen anbieten. Dies war der Ansatz von Babai et al. in [BFLS91], die sich mit der Optimierung der Laufzeit T und der Länge Verizierer mit S = n1+ε S des Beweises beschäftigten. Sie entwarfen T = poly log n.8 und PCP- Anderseits haben Feige et + al. in [FGL 91] eine bahnbrechende Verbindung zwischen PCPs und Ap- proximationsalgorithmen hergestellt. Die dabei im Vordergrund tretenden Parameter sind die Zufälligkeit r und die Anfragekomplexität q. Dagegen war eine polynomielle Laufzeit für diese Konstruktionen hinreichend. Für die Länge des Beweises gilt S ≤ 2r · q . Der Beweiser muss nämlich für alle möglichen Zufallswahlen die Belegungen von q Bits ausgeben. Bits, die von verschiedenen Tests (Zufallswahlen) gelesen werden, können ohne Einschränkung der Allgemeinheit dupliziert werden, da die Tests von einander unabhängig sind. S= 2r · q. 9 Wir können also folgende Gleichung voraussetzen: Diese drei Parameter sind also korreliert und können gemeinsam optimiert werden. Die Laufzeit T ist aber nur für die Ezienz der Verika- tion maÿgeblich und die Optimierung dieses Parameters wurde weitgehend 8 poly log n = O((log n)k ) für eine Konstante k. Die Laufzeit heiÿt in diesem Fall poly- logarithmisch. 9 Die Unabhängigkeit ist stochastischer Art: keine Korrelation zwischen den Tests. 7 vernachlässigt. Nach der Konstruktion von [BFLS91], in der eine Laufzeit T = poly log n erreicht wurde, haben nur Ben-Sasson PCP-Verizierer mit dieser Laufzeit entworfen. Tabelle 1.1 fasst die wichtigsten Varianten des + et al. in [BGH 05] PCP-Satzes zusammen, die bis zur Verfassung dieser Arbeit veröentlicht wurden. Dabei bezeichne die Länge der Eingabe und Konstruktion [BFLS91] + [ALM 92] [PS94] + [BGH 04] [BS05] + [BGH 05] + [BGH 05] [Din05] Unser Ziel: C bzw. ε r O(log n) O(log n) O(log n) log n + (log n)ε log n + O(log log n) log n + O(log log n) log n + (log n)ε log n + O(log log n) log n + O(log log n) q poly log n C C O(1/ε) poly log n poly log n O(1/ε) C C Tabelle 1.1: Meilensteine der Die Beweise der Inklusion n eine universelle Konstante. PCP[r, q] ⊆ NP S n1+ε n3 n1+ε ε n · 2(log n) n · poly log n n · poly log n ε n · 2(log n) n · poly log n n · poly log n T poly log n poly n poly n poly n poly n poly log n poly log n poly n poly log n PCP-Optimierung. sind trivial, da der Beweiser als deterministischer polynomieller Verizierer aufgefasst werden kann. 10 Die NP ⊆ PCP[r, q] wird durch die Angabe eines VeriNP-vollständiges Problem bewiesen. In der Literatur ndet man deswegen folgende Formulierung des PCP-Satzes: 3-SAT ∈ PCPs,c [r, q], wobei der Vollständigkeitsfaktor c und die Korrektheit s hervorgehoben wer11 den. Wir werden PCP-Sätze in der Form NP = PCP[r, q] aufschreiben und beweisen jeweils die Inklusion NP ⊆ PCP[r, q]. Dabei legen wir implizit die Parameter c = 1 und s = 1/2 fest. umgekehrte Inklusion zierers für ein Bis auf die Arbeit von [Din05] basieren alle bisherigen Konstruktionen auf algebraischen Strukturen: Ein NP-vollständiges Problem Π wird auf ein alge- 0 braisches Problem Π (Gleichungen von Polynomen geringen Grades über einem endlichen Körper F) reduziert. Die Erfüllbarkeit von zu äquivalent, dass Polynome in Π0 Π ist dann da- über bestimmten Teilmengen H ⊂ F annulliert werden. Ein zentrales Werkzeug in diesem Ansatz ist der Lowdegree-Test: Ist ein in Form einer Auswertungstabelle gegebenes Polynom vom Grad höchstens d? Dieser Schritt ermöglicht die eziente Verikation von Polynomeigenschaften wie Teilbarkeit und Annullierung. Ein Beispiel dafür ist der Satz von Schwartz [Sch80], den wir in Kapitel 2 benutzen werden: 10 11 Solange r ∈ O(log n) und q ∈ poly n sind, gilt Es gibt äquivalente Formulierungen mit SAT men. 8 S = 2r · q ∈ poly n. oder anderen NP-vollständigen Proble- Satz 1.6 Ein Polynom p über einem Domain D = D1 × · · · × Dk habe die Grade di in der i-ten Variable für i = 1, . . . , k . Weiter sei |Di | = ni . Falls p mehr als k X di |D| ni i=1 Nullstellen (mit Multiplizität gerechnet) in D hat, dann ist p das Nullpolynom. Weitere Anwendungen werden uns in Kapitel 2 begegnen. Der Zeitaufwand für diesen Test beinhaltet aber hohe Konstanten, die eine praktische Einsetzung erschweren. Wir werden in Abschnitt 2.3 auf diesen Test zurück kommen und seine Kosten abschätzen. Dinurs Ansatz ist kombinatorischer Natur und wurde in [Din05] als Alternative zu den aufwendigen algebraischen Konstruktionen vorgeschlagen. Das Problem Π wird hier in einen Graphen eingebettet und Operationen auf diesen Graphen (Umformung der Knoten- und Kantenmenge) führen zu PCP= PCP[O(log n), O(1)]) dem erwünschten Ergebnis. Dinur entwarf eine rein kombinatorische Konstruktion, die den PCP-Satz + von [ALM 92] (NP bewies, und eine hybride Konstruktion (mit kombinatorischen und algebraischen Elementen), die den folgenden PCP-Satz beweist: Satz 1.7 (PCP-Satz nach [Din05]) Es gibt universelle Konstanten C1 und C2 , do dass Folgendes gilt: NP = PCP[log n + C1 · log log n, C2 ]. Die hybride Konstruktion von [Din05] erreicht die bisher beste gleichzeitige Optimierung der Parameter r und q. Der darin implizit beschriebene Ve- rizierer hat aber eine polynomielle Laufzeit. Mit der Untersuchung dieses Ansatzes befasst sich Kapitel 3. r, q und T r und q wie T = poly log n statt In dieser Arbeit untersuchen wir die Möglichkeit, die Parameter gleichzeitig zu optimieren. Wir wollen die gleichen Parameter [Din05] erreichen und die Laufzeit des Verizierers auf poly n reduzieren. r, q und T derart Dies ist das erste Ergebnis, bei dem alle drei Parameter gleichzeitig optimiert werden. Unsere PCP-Konstruktion ist eine Umformung von Dinurs Konstruktion, die eine polylogarithmische Verikation unterstützt. In Kapitel 4 entwerfen wir diesen Verizierer und analysieren seine Parameter. Wir beweisen nämlich Satz 1.8 (Hauptsatz) Für die Sprache NP gibt es einen PCP-Verizierer mit • Zufälligkeit r = log n + O(log log n), 9 • Anfragekomplexität q = O(1), • Beweislänge S = n · poly log n, • Korrektheit s = 1/2, • Vollständigkeit c = 1 und • Laufzeit T = poly log n. PCP-Verizierer mit polylogarithmischer Laufzeit nennen wir polylogVerizierer. Wir werden für die Analyse von PCP-Konstruktionen und den Ein Entwurf unseres polylog-Verizierers einige Hilfsmittel aus der Graphen- und Kodierungstheorie benötigen, die wir im nächsten Abschnitt darstellen. 1.2 Technische Werkzeuge Ein wichtiges Konstrukt, dem wir sowohl in den algebraischen als auch in den kombinatorischen Konstruktionen begegnen werden, sind Expandergraphen. Wir denieren sie im Folgenden und zeigen die für unsere Zwecke relevanten Eigenschaften auf. Die Beweise für die folgenden Lemmas sind für uns irrelevant und werden hier nicht ausgeführt. Für den interessierten Leser wird jeweils eine Referenz auf die Beweise in der Fachliteratur angegeben. 1.2.1 Expandergraphen Die Eigenschaften von Graphen im Allgemeinen sind eng verbunden mit dem Spektrum eines Graphen: den Eigenwerten λi seiner Adjazenzmatrix. Ohne Einschränkung der Allgemeinheit setzen wir voraus, dass das Spektrum eines Graphen über n λ2 ≥ · · · ≥ λn . Knoten in absteigender Reihenfolge sortiert ist, d.h über seine kombinatorischen Eigenschaften. Ein bekanntes Resultat ist d für d-reguläre λ1 ≥ Das Spektrum eines Graphen liefert wichtige Informationen λ1 = Graphen. Denition 1.9 (Expandergraphen) Ein (N, d, λ)-Expandergraph ist ein d-regulärer Graph über N Knoten, so dass |λi | ≤ λ < λ1 = d für i = 2, . . . , n. Wegen der Ordnung der Eigenwerte können wir λ := λ2 setzen. Wir interessieren uns für Expandergraphen aus informationstheoretischer Sicht: Wie können Informationen durch einen solchen Graphen ieÿen? Ein wichtiger Begri in dieser Betrachtung ist die Kanten-Expansion. 10 Denition 1.10 (Kanten-Expansion) Sei G = (V, E) ein d-regulärer Graph und für S ⊆ V sei |E(S, S)| := |(S × S) ∩ E| die Anzahl der Kanten von S zu dessen Komplement S := V \ S . Die Kanten-Expansion von G ist: h(G) := |E(S, S)| . |S| S:|S|<|V |/2 min Die Kanten-Expansion charakterisiert die Ausgangsmöglichkeiten aus einer Knotenmenge in den übrigen Teil des Graphen. Sie ist also ein Maÿ für die Konnektivität (Anschlussfähigkeit) eines Graphen. Das folgende Lemma zeigt die Verbindung zwischen der Kanten-Expansion und dem Spektrum eines Graphen. Lemma 1.11 Sei G ein d-regulärer Graph mit Kanten-Expansion h(G) und zweitem Eigenwert λ(G). Dann gilt p λ(G) − d ≤ h(G) ≤ 2d(d − λ(G)). 2 Beweis. Siehe [AM84]. Aus Lemma 1.11 können wir eine alternative Denition für Expandergraphen herleiten, nämlich als Graphen mit einer Kanten-Expansion für eine Konstante h0 . h(G) ≥ h0 Diese Eigenschaft zeigt die Besonderheit von Expan- dergraphen: Obwohl deren Adjazenzmatrizen spärlich besetzt sind, 12 haben sie dennoch eine hohe Konnektivität: Eine Information (Knotenfärbung, Variablenbelegung, usw.) kann über die Kanten schnell durch den Graphen verbreitet werden und bleibt nicht in einem Teilgraphen gefangen. Diese Eigenschaft lässt sich mittels zufälliger Spaziergänge (random walks) in dem Graphen nutzen. Die folgenden zwei Lemmas zeigen weitere nützliche Eigenschaften von Expandergraphen in Verbindung mit zufälligen Spaziergängen. Lemma 1.12 (Mixing-Lemma aus [AC88]) Sei G = (V, E) ein (N, d, λ)Expandergraph. Für jede zwei Teilmengen A, B ⊆ V gilt: r |E(A, B)| |A| |B| λ ≤ · |A| · |B| . − · |E| N N d N N Die Multiplikation mit |E| = d · N ergibt: p |E(A, B)| − d|A||B| ≤ λ |A||B|. N 12 Die Adjazenzmatrix eines Graphen (V, E) O(|V |). 11 ist spärlich (sparse) besetzt, wenn (1.8) |E| ∈ Beweis. Der Beweis ist sehr technisch und wird in [AS92, Kapitel 9, Korro- lar 2.5] ausgeführt. Die Ungleichung (1.8) kann folgendermaÿen interpretiert werden: Die Differenz zwischen dem Erwartungswert der Kantenanzahl zwischen A und B in einem zufälligen Graphen (d|A||B|/N ) und der tatsächlichen Anzahl der Kanten zwischen A und B in G (|E(A, B)|) ist klein, da graphen beschränkt ist. Die Übergangsmöglichkeiten von λ A in Expandernach B in G entsprechen also den Übergangsmöglichkeiten in einem zufälligen Graphen. Das nächste Lemma charakterisiert diesen Sachverhalt näher: Lemma 1.13 (Spaziergänge in Expandergraphen) Sei G = (V, E) ein (N, d, λ)-Expandergraph und F ⊆ E . Es bezeichne X das Ereignis, dass ein zufälliger Spaziergang, der mit einer zufälligen Kante aus F startet, seinen (i + 1)-ten Schritt in F macht. Für die Wahrscheinlichkeit p(X) von X gilt: |F | p(X) ≤ + |E| Beweis. i λ d Siehe [Din05, Proposition 2.4]. Hier wird die Ähnlichkeit zwischen Spaziergängen in Expandergraphen und in zufälligen Graphen noch ersichtlicher: Aus Lemma 1.11 folgt d. Somit F ]. konvergiert λ i gegen Null und d p(X) gegen Oensichtlich induziert ein kleiner zweiter Eigenwert Expansion h(G). 2 λ ≤ d − h2d < |F |/|E| = Pre∈E [e ∈ λ(G) eine groÿe Kanten- Um eine hohe Konnektivität zu erzielen suchen wir also Expandergraphen mit möglichst kleinem zweitem Eigenwert λ. Dies ist aber nicht uneingeschränkt möglich. In [Alo86] formuliert Alon folgende obere √ λ:13 λ ≤ 2 d − 1 + ε für ε ≥ 0. Graphen, die diese Ungleiε = 0 erfüllen, sind also optimale Expandergraphen, da sie einen Schranke für chung mit minimalen zweiten Eigenwert besitzen. Denition 1.14 (Ramanujan-Graphen) Ein Ramanujan-Graphen ist ein √ (N, d, λ)-Expandergraph mit λ ≤ 2 d − 1. Ramanujan-Graphen sind explizit konstruierbar [Gol97] und werden in Abschnitt 2.5 eingesetzt. Für unseren polylog-Verizierer in Kapitel 4 brauchen wir Expandergraphen, bei denen die Nachbarn eines Knotens ezient (in polylogarithmischer Zeit) ermittelt werden können. Cayley-Graphen erfüllen diese Anforderung. 13 Diese Ungleichung wird als Alon-Boppana-Schranke bezeichnet. Sie wurde in [Alo86] vermutet und in [Fri03] bewiesen. 12 1.2.2 Cayley-Graphen Cayley-Graphen sind an der Schnittstelle zwischen Gruppen- und Graphentheorie. Kombinatorische Elemente werden mit algebraischen Elementen identiziert: Die Knotenmenge eines Cayley-Graphen entspricht einer Gruppe H + und die Existenz von Kanten ist durch algebraische H bedingt. Eine Teilmenge S ⊆ H sei eine Generatormenge einer Gruppe H , wenn sich jedes element a ∈ H als Summe von Elementen aus S darstellen lässt. mit Gruppenoperation Gleichungen über Denition 1.15 (Cayley-Graphen) Der C(H, S) = (V, E) einer Gruppe H mit Generatormenge S ⊆ H ist ein gerichteter Graph mit Knotenmenge H und (u, v) ∈ E genau dann, wenn u + s = v für ein s ∈ S gilt. Wir schreiben S = Gen(C(H, S)). Abbildung 1.2 zeigt den Cayley-Graphen Cayley-Graph C(A4 , S), wobei A4 die Permutati- {1, 2, 3, 4} ist und die Generatormenge S aus π1 = (123) und π2 = (12)(34) besteht.14 Die zwei aus- onsgruppe von vier Elementen den Permutationen gehenden Kanten aus jedem Knoten entsprechen der Addition dieses Gruppenelements mit π1 bzw. π2 . Die punktierten Kanten zeigen Beispiele der Berechnung eines Nachbarn mittels Cayley-Addition. Die zweifach gerichtete Kante drückt zwei Gleichungen aus: wobei (1) π2 + π2 = (1) und (1) + π2 = π2 , die Identitätspermutation ist. (14)(23) +π1 = (142) (1) +π2 π2 Abbildung 1.2: Der Cayley-Graph C(A4 , {π1 , π2 }). Bei symmetrischen Gruppen gibt es für jede Kante (u, v) eine Kante (v, u) und der Cayley-Graph ist ungerichtet. In [LR04] und [Gur04] werden explizite Cayley-Graphen angegeben, die gleichzeitig Expander- bzw. RamanujanGraphen sind. Diese Konstruktionen beinhalten einige Einschränkungen über die Gröÿe der Graphen, die aber in unserem Kontext keine Rolle spielen 14 Zur Erinnerung: π1 (1, 2, 3, 4) = (2, 3, 1, 4) 13 und π2 (1, 2, 3, 4) = (2, 1, 4, 3). werden. Nun betrachten wir die Ezienz der Ermittlung der Nachbarn eines Knotens u in einem Cayley-(N, d, λ)-Expandergraphen G. Die Kardinalität d des Graphen. Um die d Nachbarn v + si für i = 1, . . . , d berechnet werden. Elemente aus H können mit O(log N ) Bits indiziert werden und der Aufwand der d Summenbildungen ist insgesamt in O(d · log N ). Wir können also eine Prozedur NG voraussetzen, die in O(d · log N )-Zeit die Nachbarn eines Knotens in einem Cayley-(N, d, λ)-Expandergraphen G ausgibt. der Generatormenge ist gleich dem Grad von v zu bestimmen, müssen die Werte Cayley- und Expandergraphen spielen eine groÿe Rolle in der Informationstheorie. Sie werden als Netzwerktopologien in Netze zur Übertragung von Informationen eingesetzt. Expandergraphen ermöglichen eine gute Informationsverbreitung (information spreading) und Cayley-Graphen eignen sich gut für Informationsrückgewinnung (information retrieval). Wir werden diese Eigenschaften im Rahmen der Verikation von Sprachen nutzen: Ein PCP-Beweis kann als eine Knoten bzw. Variablenbelegung angesehen werden, die bestimmte Anforderungen erfüllen soll. Die Vernetzung von Knoten (Variablen) durch Expandergraphen und die Korrelation der Bedingungen über diese Knoten erzeugt eine Zerstreuung der Information und der Bedingung, die mit einem Knoten gebunden sind. Mögliche Inkonsistenzen in einer Knotenbelegung , die der Beweiser B behaupten würde, werden mit höher Wahrscheinlichkeit ermittelt, was zu einer Verbesserung der Korrektheit führt. Wir untersuchen diesen Sachverhalt genauer in den Abschnitten 2.5 und 3.2. Auf der anderen Seite erleichtern Cayley-Graphen die Aufgabe des Verizierers, Teilgraphen lokal zu bilden. Durch die Algebraische Struktur können die Nachbarn eines Knotens in einem Cayley-Graphen ermittelt werden, ohne den ganzen Graphen zu kennen. Die Generatormenge kann weiterhin geordnet werden, so dass eine Ordnung der Nachbarschaft eines Knotens induziert wird. Diese Ordnung ergibt eine partielle Ordnung der Knoten eines Graphen. Dies ist eine wichtige Voraussetzung, um unseren ezienten Verizierer in Kapitel 4 konstruieren zu können. Zuletzt stellen wir fehlerkorrigierende Codes vor. Um ihren Einsatz zu motivieren, betrachten wir folgendes Szenario: ein unehrlicher Beweiser sucht den Verizierer liefert B V B ver- zu überlisten. Für einen negativen Kandidaten einen verfälschten Beweis π(x), x so dass die Wahrscheinlichkeit der x erhöht wird. Um dies zu realisieren, muss B einen korreke liefern und hoen, dass ten Beweis π(e x) für eine leicht geänderte Eingabe x V diese Änderung nicht merkt. Bei einem deterministischen Verizierer, der Akzeptanz von einen uneingeschränkten Zugri auf die Eingabe und auf den Beweis hat, ist dieses Täuschungsmanöver unmöglich. Bei einem PCPP-Verizierer, der nur einen Orakelzugri auf den Beweis und auf die Eingabe hat (Komposition mittels PCPPs), stellt sich die Frage: Wie kann V eine Änderung um ein Bit merken, wenn er nicht die ganze Eingabe liest? Wie in der Einführung erwähnt ist die Reduktion der Anfragekomplexität gegenüber den de- 14 terministischen Verizierern eine entscheidende Motivation für den Entwurf von PCPs. Eine sublineare Anfragekomplexität ist also eine unentbehrliche Bedingung. Allein das Lesen der gesamten Eingabe verursacht aber einen linearen Aufwand. Die Eingabe muss also in einer redundanten Form liegen, die leichte Verfälschungen toleriert. Für die Lösung dieses Problems bieten sich fehlerkorrigierende Codes. 1.2.3 Fehlerkorrigierende Codes In diesem Abschnitt übernehmen wir die Notation von [Sud97]. Als Maÿ für Distanzen wählen wir die Hamming-Distanz: Für Zeichenketten a = (a1 , . . . , an ) und b = (b1 , . . . , bn ) sei dist(a, b) := |{i | ai 6= bi }|. Eine Zeichenkette a heiÿt δ -nah zu b, falls dist(a, b) ≤ δ , und δ -entfernt von b sonst. Denition 1.16 (Fehlerkorrigierende Codes) Ein [n, k, δ]q -Code C über einem Alphabet Σ mit |Σ| = q ist eine Menge C ⊂ Σn von Codewörtern (Zeichenketten) der Länge n, so dass |C| = q k gilt und aus w1 6= w2 ∈ C folgt dist(w1 , w2 ) > δ . Wir nennen r(C) := k/n die Coderate, n die Codewortlänge und δ die Distanz des Codes. Ein Σk [n, k, δ]q -Code kann als Abbildung vom Nachrichtenraum (message space) Σn interpretiert werden. In allgemei- nach dem Coderaum (code space) neren Versionen können die Alphabete des Nachrichtenraums und des Coderaums unterschiedlich sein. Dies ist aber in unserem Kontext nicht nötig. Wegen der Distanz-Eigenschaft gibt es für jede Zeichenkette s ∈ Σn höch- w ∈ C , so dass dist(s, w) ≤ (δ − 1)/2. Die Eindeutigkeit Korrektur oder Dekodierung von s: Ein Empfänger, Codewort aus C erwartet und s empfängt, wird w als gesandtes Coannehmen (Siehe Abbildung 1.3). Der Wert ι := (δ − 1)/2 heiÿt die stens ein Codewort von w der ein dewort ermöglicht die Fehlerkorrekturschranke (error correcting bound). ι s δ w Abbildung 1.3: Eindeutigkeit der Dekodierung von Nachrichten. Beim Entwurf von Codes begegnen wir zwei entgegengesetzten Optimie- r groÿ sein, da die Kodierung sonst Distanz δ und damit die Fehlerkorrek- rungszielen: Einerseits sollte die Coderate inezient wäre. Anderseits sollte die turschranke ι auch groÿ sein, so dass möglichst viele Fehler toleriert werden 15 können. Die Codewortlänge und die Distanz eines optimalen Codes sollten daher linear zu der Länge des Nachrichtenworts sein. Reed-Solomon-Codes (RS-Codes) sind derart eziente Codes, die auf einer einfachen algebraischen Eigenschaft von Polynomen basieren: Zwei Polynome von Grad höchstens d d können in Stellen übereinstimmen. |F| ≥ n. Der Reed-Solomon-Code RS[F, n, k] ist der folgende [n, k + 1, n − k]q -Code: Die Nachricht besteht aus k + 1 Elementen aus Σ = F (q = |F|). Durch Interpolation dieser Werte wird ein eindeutiges Polynom p vom Grad k über F bestimmt. Das Codewort ist dann die Auswertung von p an n verschiedenen Stellen von F. Die Auswertungen von zwei verschiedenen Polynomen unterscheiden sich in mindestens n − k Stellen. Die Dekodierungsaufgabe lässt sich für RS-Codes mittels ezienter Sei F ein endlicher Körper mit Algorithmen wie [Ber68] in polynomieller Zeit lösen. 1.3 Organisation der Arbeit Nun haben wir die notwendigen Hilfsmittel um PCP-Konstruktionen zu unPCP-Konstruktionen tersuchen. In Kapitel 2 analysieren wir die algebraischen + [BS05] und [BGH 05]. In den Abschnitten 2.1 und 2.2 erläutern wir die NP auf algebraische Bedingungsprobleme und führen in AbPCP-Verikation dieser Probleme auf den Low-degree-Test zurück. In Abschnitt 2.4 stellen wir den Basis-Verizierer VRS vor. In Abschnitt 2.5 stellen wir hitter-Algorithmen vor, die eine strukturierte Bündelung der Anwendungen von VRS erzeugen und zum PCP-Satz von [BS05] Reduktion von schnitt 2.3 die + führen. In Abschnitt 2.6 stellen wir die Konstruktion von [BGH 05] vor, die als Ausgangspunkt für unseren polylog-Verizierer dienen wird. In Kapitel 3 untersuchen wir den kombinatorischen Ansatz von Dinur. In den Abschnitten 3.1 und 3.2 denieren wir Bedingungsgraphen und Operationen auf diesen Graphen. In Abschnitt 3.3 analysieren wir zwei Ansätze von [Din05]: einen rein kombinatorischen und einen hybriden Ansatz, auf dem unsere PCP-Konstruktion in Kapitel 4 basieren wird. PCP-Verizierer mit Zufälligr = O log n + O(log log n), Anfragekomplexität q = O(1) und Laufzeit T = poly log n. In den Abschnitten 4.1 stellen wir das Protokoll und den In Kapitel 4 entwerfen wir dann den ersten keit Schaltkreis des Verizierers auf. In den Abschnitten 4.2 und 4.3 erläutern wir die Anforderungen an den Beweiser und die Datenstruktur des Verizierers. Anschlieÿend analysieren wir in Abschnitt 4.4 die Parameter des resultierenden Verizierers. Zum Schluss fassen wir in Kapitel 5 die Ergebnisse dieser Arbeit zusammen und sprechen einige oene Probleme an. 16 Kapitel 2 Algebraische PCP-Konstruktionen In diesem Kapitel stellen wir den algebraischen Ansatz zur PCP-Verikation + dar. Wir wollen die Konstruktion [BGH 05] als black-box für unseren Verizierer in Kapitel 4 benutzen. Deswegen verzichten wir auf die aufwendigen Beweise der kommenden Sätze. Wir fokussieren viel mehr auf die für unsere Konstruktion in Kapitel 4 relevanten Parameter, namentlich die Zufälligkeit, Anfragekomplexität und Laufzeit der vorzustellenden PCP-Verizierer. In den Abschnitten 2.1 und 2.2 reduzieren wir 3-SAT auf algebraische Probleme, die über Polynome festgelegten geringen Grads deniert sind und PCP-Verikation dieser Probleme auf Low-degree-Test reduzieren lässt: hat ein gegebenes Polynom einen Grad höchstens d für gegebnes d? zeigen in Abschnitt 2.3, wie sich die den In Abschnitt 2.4 skizzieren wir den Basis-Verizierer von [BS05] und analysieren seine Parameter. 1 In Abschnitt 2.5 stellen wir hitter-Algorithmen vor, die die Korrektheit des Basis-Verizierers auf Kosten seiner Anfragekomplexität erhöhen können. Diese Technik führt uns dann zu folgender Variante des PCP-Satzes: Satz 2.1 (PCP-Satz nach [BS05]) Es gibt universelle Konstanten C1 und C2 , do dass Folgendes gilt: NP = PCP[log n + C1 · log log n, (log n)C2 ]. Im letzten Abschnitt 2.6 präsentieren wir kurz die + [BGH 05], die den selben PCP-Satz PCP-Konstruktion von 2.1 beweist, aber einen polylogarithmi- schen anstatt polynomiellen Verizierer hat. Durch diese Konstruktion ergibt sich der folgende Satz: 1 In ihrem hybriden Ansatz in [Din05] geht Dinur von dieser Konstruktion aus. 17 Satz 2.2 (PCP-Satz nach [BGH+ 05]) Es gibt universelle Konstante a1 , a2 und a3 , so dass die Sprache NP einen Verizierer P mit: • Zufälligkeit R := log n + a2 · log n log n, • Anfragekomplexität Q := (log n)a2 und • Laufzeit T := (log n)a3 . 2.1 Algebraischer Ansatz In diesem Abschnitt orientieren wir uns an der Notation von [BS05]. Betrachten wir eine 3-SAT-Formel Φ in konjunktiver Normalform. Sei X := {x1 , . . . , xn } die Variablenmenge, C := {c1 , . . . , cm } die Klauselmenge und Σ := {0, 1} das Alphabet von X . Ein Theoremkandidat (Zeuge für die Erfüllbarkeit von Φ) ist eine Belegung σ : X → Σ, so dass jede Klausel c ∈ C von σ erfüllt ist. Φ : {0, 1}n → {0, 1}m betrachtet werden, die eine Belegung σ auf den Vektor Y := (Y1 , . . . , Ym ) abbildet, wobei Yi = 1 genau dann gilt, wenn Klausel ci von σ erfüllt ist. Jedes Bit Yi kann mit drei Abfragen in σ (Belegung der drei Variablen von ci ) berechnet werden. Eine m (alle Klausel Belegung σ beweist die Erfüllbarkeit von Φ, wenn Φ(σ) = 1 sind erfüllt). In diesem Fall ist Φ(σ) ein Beweis, dafür dass σ ein positiver Die Formel Φ kann als Abbildung Kandidat ist. Analog denieren wir ein algebraisches Bedingungsproblem: Der Theoremkandidat A P sind univariate Polynome geringen Grades F.2 Die Auswertung P (x0 ) kann mit der Abfrage von {A(α1 x0 ), . . . , A(αt x0 )} berechnet werden. In der ersten Version und der Beweis über einem Körper t Werten von [BS05], die wir als Basis unserer Analyse zugrunde gelegt haben, ist t = O(log n). Die Reduktion im Abschnitt 2.2 bezieht sich auf diese Version. In der am 11.06.2006 erschienenen Journal-Version von [BS05] ist t = O(1). Wir werden also in den darauf folgenden Abschnitten t = O(1) voraussetzen. Ein Kandidat H ⊂ F, A ist positiv genau dann, wenn P ≡ 0 über einer Teilmenge H von A unabhängig ist. Die Denition von P und des- wobei sen Grad (Reduktion von 3-SAT auf ein algebraisches Problem) führt zu verschiedenen Implementierungen des algebraischen Ansatzes. Wir werden die Sprache LUACSP betrachten (UACSP: Univariate Algebraic Constraint ∝ LUACSP ) zeigen und einen R := log n+O(log log n) und Q := poly log n Satisability Problem), die Reduktion (3-SAT PCP-Verizierer für LUACSP mit entwerfen. Somit hätten wir Satz 2.1 bewiesen. 2 Wie gering der Grad ist, hängt von der Ezienz der Konstruktion ab. 18 Wir setzen eine unendliche Sequenz aus. Dabei bezeichnet ωn . hωn i {(Fn , ωn ) : ωn ∈ F, |hωn i| > n)}n∈N vor{ωn0 , . . . , ωnn−1 } von die multiplikative Gruppe Eine solche in polynomieller Zeit berechenbare konstruierbare Sequenz, wird durch Linniks Satz in [Lin44] induziert. Der Index sen werden, wenn der Körper können wir die Sprache Fn LUACSP bzw. die Gruppe hωn i n 3 kann weggelas- festgelegt sind. Nun denieren: Denition 2.3 Die Instanzen der Sprache LUACSP sind Tupel der Form (n, α1 , . . . , αt , C), wobei α1 , . . . , αt ∈ hωn i gilt und C : Ft+1 → Fn ein Pon lynom vom Grad höchstens n in der ersten Variable und höchstens drei in den übrigen t Variablen ist. Eine Instanz (n, α1 , . . . , αt , C) ist genau dann in LUACSP , wenn ein Polynom A : Fn → F vom Grad höchstens n existiert, so dass ∀x ∈ hωn i : P (x) := C(x, A(α1 x), . . . , A(αt x)) = 0. A ein Theoremkandidat O(t · n). Mit der obigen Terminologie ist ein Beweispolynom vom Grad vom Grad (2.1) n und P 2.2 Reduktion von 3-SAT auf LUACSP Bevor wir mit der 3-SAT auf LUACSP . NP-vollständigen PCP-Verikation von LUACSP anfangen, reduzieren wir An dieser Stelle behandeln wir die Arithmetisierung von Problemen: Wie lassen sich die Bedingungen eines NP- Problems in algebraische Ausdrücke (polynomielle Gleichungen) überführen. Die Reduktion 3-SAT ∝ LUACSP ist aufwendig und deren Beweis sprengt den Rahmen der vorliegenden Arbeit. Wir postulieren die Parameter dieser Reduktion und zeigen anhand eines einfacheren Beispiel die Vorgehensweise bei der Arithmetisierung. Satz 2.4 (Satz 2 in [BS05]) Es existiert eine polynomielle Reduktion von 3-SAT auf LUACSP , die eine 3-SAT-Formel mit n Klauseln auf eine Instanz (N, α1 , . . . , αt , C) reduziert, wobei N = O(n log n) und t = O(1) gilt. Beweis. Siehe [BS05, Abschnitt 4.2] Als Beispiel für die Arithmetisierung eines NP-vollständigen Problems be- trachten wir folgende ineziente Arithmetisierung von 3-SAT aus [Sud99]: Sei X := {x1 , . . . , xn } Klausel 3 cj ∈ C lässt sich in Bei Eingabe von n C := {c1 , . . . , cm } die KlauselΣ := {0, 1} das Alphabet von X . Jede bj,1 bj,2 bj,3 folgender Form schreiben: (xj,1 ∨ xj,2 ∨ xj,3 ), die Variablenmenge, menge einer 3-SAT-Instanz können Φ Fn und und ωn in polynomieller Zeit festgelegt werden. 19 wobei bj,k ∈ {0, 1}, x0 := x und x1 := x gilt. Denieren wir folgende Polyno- me: pj (zj,1 , zj,2 , zj,3 ) := (zj,1 − bj,1 )(zj,2 − bj,2 )(zj,3 − bj,3 ). Eine Belegung (a1V , a2 , a3 ) m j=1 pj erfüllt cj pj (a1 , a2 , a3 ) = 0 gilt. P , das genau dann annuliert in C erfüllt. genau dann, wenn Die Konjunktion liefert ein Polynom wird, wenn eine Belegung σ jede Bedingung Die Reduktion von 3-SAT auf LUACSP bildet auch lokale Bedingungen auf Polynome ab und bündelt diese in einem einzigen Polynom. Die eingesetzten Techniken sind aber bei weitem komplizierter (siehe [BS05, Abschnitt 4.2]). An dieser Stelle ist es wichtig zu erwähnen, dass zur Ausführung dieser Reduktion eine polynomielle Laufzeit benötigt wird.D Nun gehen wir von LUACSP aus und entwerfen einen PCP-Verizierer für diese A und den Beweis P mittels RS- Sprache. Die Grundidee ist den Kandidaten 4 Codes zu kodieren, so dass der Beweis von Polynomeigenschaften auf den Beweis der Mitgliedschaft zu einem bestimmten RS-Code reduziert wird. Eine solche Polynomeigenschaft ist die Annulierung des Beweispolynoms über hωn i ⊂ F, P wie in Gleichung 2.1 gefordert. Deswegen stellen wir zunächst das zentrale Werkzeug von [BS05] vor: den RS-Verizierer. Dieser PCPP-Verizierer testet die Nähe einer Eingabe zu einem gegebenen Reed-Solomon-Code (Nähe zu einem Codewort aus dem RS-Code). In Abschnitt 2.4 zeigen wir dann, wie wir den Baustein für die PCP-Verikation von LUACSP RS-Verizierer als einsetzen können. 2.3 RS-Verizierer RS-Codes, die in Abschnitt 1.2.3 vorgestellt wurde. Zur Erinnerung: Ein Codewort w in einem RS[F, n, k]Code ist die Auswertung eines Polynoms vom Grad k an n Stellen xi ∈ F. Jedes Wort w entspricht der Darstellung eines eindeutigen Polynoms p(w) 5 vom Grad k über F und kann mit p(w) identiziert werden. Sei nun S ⊆ F, P ein Polynom über F und hP (z)iz←S := hP (s) : s ∈ Si die Auswertung von P über S . Zu erst spezialisieren wir die Denition eines Denition 2.5 Der Reed-Solomon-Code vom Grad d ausgewertet über S ⊆ F ist RS(F, S, d) := {hP (z)iz←S : P (z) := d−1 X ai z i , ai ∈ F}. i=0 4 RS-Codes sind die in Abschnitt 1.2.3 denierten fehlerkorrigierenden Reed-Solomon- Codes. 5 Die lynoms n Werte in w können als Auswahlmöglichkeiten p(w) interpretiert werden. 20 für Interpolationswerte eines Po- Der Code Grad d RS(F, S, d) besteht also aus der Auswertung aller Polynome vom über einer festgelegten Teilmenge S ⊆ F. Wir betrachten spezielle RS-Codes RS(F, hωi, d), wobei hωi die multiplikative Gruppe eines Elements ω ∈ F, so dass |hωi| = O(n) und ω = 2K für ein K ∈ N gilt. Diese spezielle Struktur von S = hωi führt zu folgendem ezienten RS-Verizierer: Satz 2.6 (Satz 1 in [BS05]) Sei ω ∈ F eine Zweierpotenz mit |F| > n und |hωi| = O(n) und sei d < n eine natürliche Zahl. Es gibt eine universelle Konstante C ≥ 1, so dass RS(F, hωi, d) einen PCPP-Verizierer PCPP(RS(F, hωi, d)) mit folgenden Parametern hat: • Beweislänge S ≤ n · logC n, • Zufälligkeit r ≤ log n + C · log log n, • Anfragekomplexität q = O(1) und • Korrektheit s(δ, n) ≥ δ . logC n Der vollständige Beweis erstreckt sich auf ein Dutzend Seiten in [BS05]. Wir skizzieren hier nur die Beweisidee: Wenn ein in Form einer Auswertungstabelle gegebenes Polynom kann p(w) p nah an einem Polynom durch Fehlerkorrektur als Codewort eines werden und p kann zu p(w) vom Grad d ist, RS-Codes interpretiert p(w) dekodiert werden. Das Maÿ für die Nähe ist die ι = (δ − 1)/2 vom RS-Code. Die PCPP-Verikation Fehlerkorrekturschranke von RS(F, S, d) ist also äquivalent zu folgendem Low-degree-Test: Denition 2.7 (Low-degree-Test) Gegeben sei ein Polynom p in Form einer Auswertungstabelle und d ∈ N. Der Low-degree-Test ist die Entscheidung, ob p einen Grad d(p) ≤ d oder d(p) > d hat. Der Low-degree-Test wurde intensiv erforscht und dessen Optimierung führte zu entscheidenden Verbesserungen der algebraischen PCP-Konstruktionen + [BFLS91, ALM 92, BS05]. Wir verwenden diesen Test als black-box und skizzieren hier grob den Ablauf des 1. Starte mit Polynom 2. Zerlege d1 ≈ √ P (x) RS-Verizierers: von angeblichem Grad n, P in acht bivariate Polynome Q(i) (x, (i = 0, . . . , 7) vom Grad Py) 7 n/8 in jeder Variable, d.h P (x) = i=0 xi·d1 Q(i) (x, x8·d1 ). 3. Reduziere den Low-degree-Test der bivariaten Polynomen auf den Low-degree-Test von univariaten Polynomen vom Grad √ n/8. 4. Gehe zu Schritt 2 und fahre mit P (i) (z) 21 fort. P (i) (z), Q(i) (x, y) ebenfalls Die Zerlegung in Schritt 2 ist immer möglich und sogar eindeutig, wenn d21 · 8 = n (Siehe Proposition 8 in [BS05]). Die Reduktion in Schritt 3 ist in [PS94] als axis-parallel-test beschrieben. Die obige Rekursion liefert nach höchstens O(log log n) Iterationen Polynome konstanten Grads, die mittels Satz 1.6 von [Sch80] brute-force mit q := O(1) Anfragen getestet werden (Basis-Fall). Bei jeder Iteration verschlechtert sich die Korrektheit um einen konstanten multiplikativen Faktor C s(δ, n) ≥ δ/ log n, wobei δ C. Insgesamt ergibt sich eine Korrektheit von der Distanz des RS-Codes abhängt. Die iterative Anwendung des Low-degree-Tests ist eigentlich eine Instantiierung des Kompositionssatzes 1.5. Der innere Verizierer entscheidet sich in P (i) (z) testet (führt zu der nächsten Iterati(i) den Q (x, y) macht (Schleifenabbruch). Für jeder Iteration, ob er eines der on) oder eine Stichprobe mit den Test des Basis-Falls und für den Schleifenabbruch macht der Verizierer O(1) Anfragen. Die Analyse der übrigen Parameter ist technisch kompliziert aber ersichtlich und wird ausführlich in [BS05] beschrieben. Dieser theoretisch sehr eziente Low-degree-Test ist aber praktisch nicht einsetzbar. Eine Analyse der Konstante C in Satz 2.6 ergibt C = 7.007 · 1010 . Die praktische Inezienz des Low-degree-Tests und der auf ihm basierenden algebraischen Konstruktionen ist eine der Motivationen, die Dinur zu ihrem kombinatorischen Ansatz geführt haben. Der RS-Verizierer kann auch die Annulierung eines Polynoms über einer H ⊂ F testen. Dafür denieren wir folgende Teilmenge von RS- Teilmenge Codes: Denition 2.8 (RSH (F, S, d)) Der Code RSH (F, S, d) ist die Menge der Codewörter aus RS(F, S, d), deren Auswertung über H ⊂ F gleich null ist: RSH (F, S, d) := {hP (z)iz←S : deg(P ) ≤ d, ∀h ∈ H, P (h) = 0}. RSH (F, S, d) auch einen ezienten PCPP-Verizierer RS(F, S, d).6 Die Beweisidee ist folgende: Ein Polynom P (z) vom Grad d ist genau dann gleich Q null über einer Teilmenge H , wenn er vom Polynom ZH (z) := h∈H (z − h) geteilt wird, d.h wenn P (z) = ZH (z) · Q(z) für ein Polynom Q(z) vom Grad höchstens d − |H| gilt. Es stellt sich heraus, dass mit komplexitätstheoretisch gleichen Parametern wie Test(P, RS(F, S, d)) den Ausgang von PCPP(RS(F, S, d)) angeP , d.h Test(P, RS(F, S, d)) = 1, falls P , ausgewertet über S vom Grad höchstens d ist, und 0 sonst. Für den PCPP-Beweis von Test(P, RSH (F, hωi, d)) = 1) liefert der Beweiser Es bezeichne wandt auf ein Polynom 1. die Auswertung 6 p(Q) eines Polynoms Für Details siehe Lemma 3 in [BS05]. 22 Q : hωi → F vom Grad d − |H|, 2. den PCPP-Beweis für Test(Q, RS(F, hωi, d − |H|)) = 1 3. den PCPP-Beweis für Test(P, RS(F, hωi, d)) = 1. Das Protokoll zu der Verikation von und RSH (F, hωi, d) untersuchen wir in dem PCP-Verikation von nächsten Abschnitt, als Teil des Protokolls von der LUACSP . Mit dem PCPP-Verizierer aus Satz 2.6 als Baustein entwerfen wir in dem nächsten Abschnitt einen Basis-Verizierer VRS für LUACSP und untersuchen sein Protokoll. In Abschnitt 2.5 entwerfen wir dann den PCP-Verizierer für LUACSP mit den Parametern in Satz 2.1. 2.4 Basis-Verizierer für LUACSP In diesem Abschnitt beweisen wir folgenden Satz, der in [BS05] implizit beschrieben und in [Din05, Satz 7.2] ausformuliert wurde. Eigentlich ist dieser Satz die Erweiterung von Satz 2.6 von RS-Codes auf NP-vollständige Spra- chen. Satz 2.9 (Basis-Verizierer VRS ) Es existiert eine universelle Konstante C , so dass die Sprache NP einen PCP-Verizierer VRS mit folgenden Parametern hat: • Beweislänge S ≤ n · logC n, • Zufälligkeit r ≤ log n + C · log log n, • Anfragekomplexität q = O(1) und • Korrektheit s ≥ 1 . logC n (N, α1 , . . . , αt , C) eine Instanz von LUACSP mit N = O(n log n) und t = O(1) und C : Ft+1 → F vom Grad N in der ersten Variable und vom Grad drei in den restlichen t Variablen. Der Kandidat für diese Instanz ist ein Auswertungspolynom A(x) vom Grad N und der Beweis ist ein Bedingungspolynom P (x) vom Grad 4N (siehe [BS05, Abschnitt 5]). Das Ziel ist es, einen PCP-Verizierer VRS zu entwerfen, der folgende Gleichung testet: ∀x ∈ hωi : P (x) := C(x, A(α1 x), . . . , A(αt x)) = 0. Sei Wir denieren zuerst die Orakel, die der Beweiser zur Verfügung zu stellen hat: 1. einen Belegungsorakel 2. einen PCPP-Beweis p(A): Auswertung des Polynoms A(x) über hωi, für Test(A, RS(F, hωi, N )), 23 p(P ): Auswertung hωi 3. ein Bedingungsorakel A(α1 x), . . . , A(αt x)) 4. einen PCPP-Beweis des Polynoms P (x) = C(x,- über für PCPP(P, RSH (F, hωi, 4N )) für H = hωi, wie im vorigen Abschnitt deniert. Nun denieren wir das Protokoll des Verizierers 1. Teste Test(P, RSH (F, hωi, 4N )) = 1 für H = hωi: • Teste Test(Q, RS(F, hωi, d − |H|)) = 1, • Teste Test(P, RS(F, hωi, d)), • Wähle ein zufälliges • Lese • Berechne • Teste 2. Teste Q(α) in p(Q) und P (α) in p(P ), P (α) = Q(α) · ZH (α). Test(A, RS(F, hωi, N )) = 1, β ∈ hωi, A(βα1 ), . . . , A(βαt ) 5. Berechne 6. Teste α ∈ hωi, ZH (α), 3. Wähle eine zufälliges 4. Lese VRS : in p(A) und P (β) in p(P ), C(β, A(βα1 ), . . . , A(βαt )), P (β) = C(β, A(βα1 ), . . . , A(βαt )). r von hωi. Da Die Zufälligkeit dieses Verizierers ergibt sich aus der Zufälligkeit PCPP(RS(F, S, d)) und aus den Wahlmöglichkeiten r = log n + O(log log n) und |hωi| = O(n log n) gilt für α und β in und da die Tests unab- hängig von einander sind, erhalten wir durch recycling der Zufallszeichen- r = log n + O(log log n). Die Anfragekomplexität ist q := O(t) = O(1). Die Korrektheit von VRS ist proportional zu der Korrektheit von PCPP(RS(F, S, d)) und ist gleich 1/poly log n. Da LUACSP NP-schwer ist (Reduktion von 3-SAT in Satz 2.4), ist VRS auch ein PCP-Verizierer für die Sprache NP. Somit haben wir den Beweis von Satz 2.9 beendet. ketten die Zufälligkeit 2.5 hitter-Algorithmen In diesem Abschnitt wollen wir Satz 2.1 beweisen (NP = PCP1,1/2 [log n + O(log log n), poly log n].) Die Konstruktion [BS05] liefert zunächst einen BasisVerizierer VRS mit folgenden Parametern: 1. Zufälligkeit r = log n + O(log log n), 24 2. Anfragekomplexität 3. Korrektheit s= q = O(1), 1 poly log n . Unser Ziel ist die Anfragekomplexität von und dafür die Korrektheit von boosting). Sei Γ O(1) auf poly log n zu erhöhen, 1/2 zu verbessern (soundness auf die Menge der möglichen Zufallszeichenketten des Verizie- VRS als eine Abbildung VRS : Γ → {0, 1} mit der folgender Eigenschaft vor: VRS (τ ) = 1 genau dann, wenn VRS angewandt mit der Zufallszeichenkette τ den Kandidaten x akzeptiert. rers VRS . 1/poly log n Wir stellen uns Wir denieren zu erst das ein technisches Hilfsmittel, nämlich hitter-Algorithmen. Wir orientieren uns an der Denition aus [Gol97]. Denition 2.10 Sei eine Funktion σ : {0, 1}r → {0, 1}, sodass folgende Ungleichung gilt: |{y | σ(y) = 0}| ≥ s · 2r . (2.2) Ein hitter-Algorithmus ist ein randomisierter Algorithmus mit Eingaben r, s, S und Orakelzugri auf σ , der eine Eingabe hit(y) := hit(r, s, S, σ)(y) berechnet, die folgende Eigenschaft erfüllt Pr[σ(hit(y)) = 0] > S, wobei die Wahrscheinlichkeit über die internen Münzwürfe von hit berechnet wird. Für einen hitter-Algorithmus • hitter-Menge (hitting hit(y) zu bestimmen. denieren wir folgende Begrie: set): Die Menge der angefragten Werte • Anfragekomplexität: Die Kardinalität der • Zufälligkeit: Die Anzahl der internen Münzwürfe von σ(v), um hitter-Menge. hit. S := 1/2 und entwerfen einen hitter-Algorithmus, der auf dem Basis-Verizierer VRS basiert, mit Anfragekomplexität Q = O(1/s) und Zufälligkeit R = r , wobei r die Zufälligkeit von VRS ist. In der obigen Terminologie ist σ die oben denierte Abbildung VRS , die eine Zufallszeichenkette von VRS auf den Ausgang von VRS mit dieser Zeichenkette abbildet, und die Eingaben y sind Elemente τ ∈ Γ. Wir setzen nun Wir betten S) = 8/s 7 Γ in einen Ramanujan-Graphen über |Γ| = 2r Knoten ein. 7 Da G(Γ) G(Γ) vom Grad Die Laufzeit für die Konstruktion dieses Graphen ist polynomiell in polylogarithmisch in der Länge n d := 4/s(1 − im Folgenden als Index der Eingabe. Einschränkungen auf n r und 1/s, also können mit einer vernachlässigbaren Verschlechterung der Korrektheit behoben werden [Gol97, Kapitel 4]. 25 vorkommt, bezeichnen wir den Graphen G(Γ) auch mit Γ. Es wird aus dem Kontext ersichtlich sein, ob jeweils die Menge oder der Graph gemeint ist. Der Algorithmus hit geht folgendermaÿen vor [Gol97, Appendix C.4]: • Wähle einen Knoten • Betrachte die Nachbarschaft 1. Falls es ein τ ∈ Γ, κ ∈ NΓ (τ ) NΓ (τ ) mit von τ in Γ: VRS (κ) = 0 gibt, setze hit(τ ) := κ (Hit). 2. Sonst setze hit(τ ) := τi ∈ NΓ (τ ) beliebig (Miss). Lemma 2.11 Der oben beschriebene Algorithmus ist ein hitter-Algorithmus mit Anfragekomplexität Q := O(1/s), Zufälligkeit R := r und Korrektheit S := 1/2. Beweis. Die Anfragekomplexität ist Die Zufälligkeit R |NΓ (τ )|·q = d·q = O(1/s), da q = O(1). τ ∈ Γ zu wählen und ergibt sich aus den Möglichkeiten r. Für die Analyse der Korrektheit betrachten wir die Mengen C := {x | σ(x) = 0} und B = {τ | NΓ (τ ) ∩ C = ∅}. Die Menge B ist ist gleich also die Menge der Knoten, deren Wahl zu einem Miss führen. Mit dem Expander-mixing-Lemma 1.12 erhalten wir |B| |C| · |V | |V | Da 4/d Γ (B × C) ∩ E |B| |C| = − · |E| |V | |V | s λ |B| |C| ≤ · · d |V | |V | ein Ramanujan-Graph ist (λ √ √ ≤ 2 d − 1 < 2 d), folgt dass (λ/d)2 < gilt. Daraus folgern wir: |B| |C| · < (λ/d)2 < 4/d = 1/2 · s, |V | |V | Falls der zu verizierende Kandidat |C| der Korrektheit von VRS : |V | x PCP-Verizierer, der für ein τ ∈ Γ den Wert P(τ ) := VRS (hit(τ )) zurückgibt. Da s = 1/poly log n und r = log n + O(log log n) gilt, folgt aus Lemma 2.11, dass P ein Verizierer für LUACSP mit Zufälligkeit R = log n + O(log log n), Q = poly log n und S = 1/2 ist. Die polynomielle Reduktion von 3-SAT auf LUACSP aus Satz 2.4 beendet den Beweis von Satz 2.1: Wir Sei P ∈ / LUACSP ) folgt aus < 1/2. Das besagt, dass negativ ist (x |B| s. Wir erhalten |V | ≥ Prτ ∈Γ [VRS (hit(τ )) = 0] > 1/2 = S. (d = 8/s). der 26 erhalten eine für PCP-Verikation mit den selben Parametern, aber für NP statt LUACSP . hitter-Algorithmen so deniert, wie sie in der Literatur zu nden sind. Für unsere Zwecke (PCP-Verikation) eignet sich allerdings folgende modizierte Denition Der Wert P(τ ) kann auch folgendermaÿen interpreWir haben tiert werden: ^ P(τ ) = VRS (κ). κ∈NΓ (τ ) Dies liegt daran, dass ein einziger um VRS (hit(τ )) = 0 κ ∈ NΓ (τ ) mit VRS (κ) = 0 ausreicht, zu erhalten. Abbildung 2.1 zeigt den Ablauf einer PCP- hitter-Algorithmus. Wir betonen nochmal den Unterund VRS (τ ) anhand dieses Beispiels: In dem linken Graphen tritt τ2 in der hitter-Menge von τ1 auf und wir berechnen VRS (τ2 ) (Anwendung von VRS ), um P(τ1 ) zu erhalten. In dem rechten Graph ist die Verikation mit dem schied zwischen P(τ ) Situation umgekehrt. τ1 τ4 τ3 τ2 τ1 τ1 Γ τ4 τ3 τ4 τ3 τ2 τ2 P(τ2 ) = VBas (τ1 ) ∧ VBas (τ3 ) ∧ VBas (τ4 ) P(τ1 ) = VBas (τ2 ) ∧ VBas (τ3 ) ∧ VBas (τ4 ) Abbildung 2.1: Unterschied zwischen P(τ ) und VRS (τ ) für τ ∈ Γ. 2.6 Ein algebraischer polylog-Verizierer + Die Konstruktion [BGH 05] gleicht der Konstruktion [BS05] in der Zufälligkeit R = log n + O(log log n) und in der Anfragekomplexität Q = poly log n. Der Unterschied zwischen den beiden Konstruktionen liegt in der Laufzeit T der PCP-Verikation: Während [BS05] eine polynomielle Laufzeit benö- + tigt, erreicht [BGH 05] eine polylogarithmische Laufzeit und erzielt da- r, S und T PCP-Verizierer durch die erste strikte Verbesserung der drei Parameter seit der Arbeit von Babai et al. in [BFLS91], in der ein mit r = O(log n), S = n1+ε und T = poly log n entworfen wurde. Wir erläutern kurz die Modikationen, die zu diesem Ergebnis geführt haben. 27 • Eziente Reduktion von NP-vollständigen Problemen auf ein Graphen- Färbungsproblem, so dass die Legalität der Färbung um einen Knoten v (lokale Konsistenz der Nachbarschaft von mischen Schaltkreis • D(v) v) mit einem polylogarith- getestet werden kann. Eziente Reduktion des Graphen-Färbungsproblems auf ein algebraisches Problem: Der Schaltkreis Grads D(v) wird in ein Polynom geringen pv (x) := C(x, . . . ) über einem Körper F überführt, so dass pv (x) in polylogarithmischer Zeit möglich ist. die Auswertung von • Eziente Auswertung der Polynome ZH (α) für α, β ∈ hωi C(β, A(βα1 ), . . . , A(βαt )) VRS in Abschnitt 2.4). Die Lösung der letzten zwei Aufgaben basiert auf der Struktur von hωi: die Wahl eines Körpers Menge und (siehe Protokoll von F mit Charakteristik 2 (|hωi| = 2K ) F und und einer H = hωi, die ein linearer Unterraum von F ist. Die Analyse der sehr + interessanten Konstruktion [BGH 05] sprengt den Rahmen dieser Arbeit. + An dieser Stelle verweisen wir den interessierten Leser auf [BGH 05] für eine ausführliche Beschreibung. Wir verwenden also Satz 2.2 als black-box für unsere Konstruktion in Kapitel 4. Natürlich gilt die polylogarithmische Zeit ebenfalls für den Basis-Verizierer Basis-Verizierer VRS VRS von citebs05 deniert ist. 28 + von [BGH 05], der analog zu dem Kapitel 3 Kombinatorische PCP-Konstruktionen Wie wir gesehen haben, sind algebraische Konstruktionen wegen der hohen Kosten des Low-degree-Tests praktisch nicht einzusetzen. Um diesen Test zu umgehen hat Dinur in [Din05] einen neuen Ansatz vorgeschlagen: Statt die Erfüllbarkeit eines Problems als Annullierung von Polynomen über niten Körpern auszudrücken, werden Bedingungsgraphen (constraint graphs) betrachtet. Solche kombinatorische Objekte anstatt der auf Polynomen basierenden algebraischen Bedingungssysteme zu verwenden, könnte sich als ezienter erweisen. In Abschnitt 3.1 denieren wir Bedingungsgraphen und ihre Erfüllbarkeitslücke und zeigen ihre Beziehung zu PCPs auf. In Ab- schnitt 3.2 stellen wir die zentrale Technik des kombinatorischen Ansatzes vor, nämlich die Ausdehnung der Erfüllbarkeitslücke (gap amplication). In PCP-Konstruktionen von [Din05] PCP-Konstruktion in Kapitel 4 vor. Abschnitt 3.3 untersuchen wir dann zwei und legen die Grundlagen für unsere 3.1 Kombinatorischer Ansatz Ein NP-vollständiges Problem lässt sich durch die Angabe einer BedingungsC über einer Variablenmenge V denieren. Zum Beispiel kann eine menge 3-SAT-Instanz durch die Angabe der Klauseln aus der konjunktiven normalen Form (KNF) deniert werden. Betrachten wir Bedingungen, die jeweils über zwei Variablen deniert sind. Weiter sei Σ das Alphabet, in dem die σ : V → Σ eine Variablenbelegung.1 Wir Bedingungsgraphen G := h(V, E), Σ, Ci mit folgenden Ei- Variablen ihre Werte nehmen und betten C in einen genschaften ein: 1 Im Folgenden benutzen wir Belegung als Kurzform für Variablenbelegung. 29 • Der Graph • Die Knotenmenge V • Die Kantenmenge E trägt (V, E) ist ein ungerichteter Graph. Σ dar. Jeder Kante e= stellt die Variablenmenge mit Werten aus die Bedingungsmenge C: {u, v} wird eine einzige Bedingung ce : Σ2 → {0, 1} zugeordnet, die e e genau dann erfüllt ist, wenn σ(c ) := c (σ(u), σ(v)) = 1 gilt. Die Bee dingung c kann durch einen Schaltkreis mit Eingabe σ(u) und σ(v) und boolescher Ausgabe (0 oder 1) modelliert werden. Wir stellen keine Einschränkungen auf die Struktur des Schaltkreises und können ihn als eine einfache Wahrheitstabelle ansehen. • S(G) := |V | + |E| · |Σ|2 heiÿt die (Beschreibungs-) Gröÿe des Graphen. Um die Verbindung zwischen PCPs und Bedingungsgraphen herzustellen, brauchen wir folgende Denitionen: Denition 3.1 Sei G = h(V, E), Σ, Ci ein Bedingungsgraph. 1. Die Erfüllbarkeitslücke (satisability-gap) SAT(C) von C ist der kleinste Anteil unerfüllter Bedingungen unter allen Belegungen für V : SAT(C) := min SATσ (C), σ wobei SATσ (C) := |Cσ | |C| und Cσ = {ce ∈ C | σ(ce ) = 0} ist. Die Kantenmenge, die Cσ trägt, heiÿt von σ verletzt. Die Belegung σ , für die SAT(C) = SATσ (C) gilt, heiÿt eine optimale Belegung. 2. Die Erfüllbarkeitslücke SAT(G) := min σ SAT(G) von G ist [ce (σ(u), σ(v)) = 0] = SAT(C). Pr e={u,v}∈E 3. CGS (constraint-graph satisability) ist das Entscheidungsproblem, ob SAT(G) = 0 gilt. 4. α-Gap-CGS ist das Entscheidungsproblem, ob SAT(G) = 0 oder SAT(G) > α für eine Konstante α gilt. Die Erfüllbarkeitslücke ist das kombinatorische Analogon zum Begri der Korrektheit eines Verizierers: Beide Gröÿen stellen die Wahrscheinlichkeit dar, Inkonsistenzen bzw. Fehler in einem angeblichen Beweis zu entdecken. Das Zufallsexperiment des PCP-Verizierers sind dessen Münzwürfe, die sei- ne Abfragen im Beweis bestimmen. Das kombinatorische Pendant dazu ist die zufällige Wahl einer Kante in dem Bedingungsgraphen. 30 PCP-Konstruktion Wir analysieren eine in [Din05] und beweisen den PCP- Satz 1.7 NP = PCP[log n + O(log log n), O(1)]. α-Gap-CGS NP-schwer ist und PCP-Konstruktion für die Verikation von α-Gap-CGS mit den behaupteten Parameter r = log n+O(log log n) und q = O(1) an. Wir zeigen also, dass α-Gap-CGS ∈ PCP[r, q] gilt. Um dieses Ziel zu erreichen werden wir folgende polynomielle Reduktionen (∝) führen: Für den Beweis von Satz 1.7 zeigen wir, dass geben eine 3-Col Beweis. ∝ CGS ∝ α-Gap-CGS. Für die erste Reduktion betrachten wir eine Instanz (3-fach-Färbbarkeit) und konstruieren folgende Instanz G von 3-Col von CGS: Der G. Wir identizieren die drei Farben mit c1 , c2 und c3 und setzen als Alphabet Σ := {c1 , c2 , c3 }. Jede Kante {v, w} trage eine Ungleichheitsbedingung f (v) 6= f (w), wobei f : V → Σ die Knotenfärbungsfunktion des Graphen G ist. Graph H H habe die selbe Knoten-und Kantenmenge wie Der Beweis der zweiten Reduktion (CGS ∝ α-Gap-CGS) ist der Haupt- teil dieses Kapitels und wird ausführlich in Abschnitt 3.3 beschrieben. Hier |C| = n ist äquivalent zu der Unterscheidung zwischen SAT(H) = 0 und SAT(H) ≥ 1/|C| = 1/n, da mindestens eine Bedingung verletzt sein muss, falls SAT(H) 6= 0 gilt. Wir wenden eizunächst eine grobe Skizze: CGS mit ne Prozedur an, die die Erfüllbarkeitslücke eines Graphen verdoppelt (gap amplication). Durch eine geeignete Anzahl Iterationen kann die Erfüllbar- α gebracht werden. Dies ist die Reduktion einer α-Gap-CGS-Instanz. keitslücke auf eine Konstante CGS-Instanz auf eine In Abschnitt 3.2 geben wir explizit die Prozedur zur Ausdehnung der Erfüllbarkeitslücke an. Wir werden einen Bedingungsgraphen in einen Graphen pow(G) G = h(V, E), Σ, Ci überführen, so dass SAT(pow(G)) > min(2 · SAT(G), β) für eine Konstante β zur Verikation von gilt. In Abschnitt 3.3 stellen wir dann die Konstruktion α-Gap-CGS vor und beweisen Satz 1.7. 3.2 Ausdehnung der Erfüllbarkeitslücke Die PCP-Verikation mittels eines Bedingungsgraphen entspricht der Wahl einer Kante in diesem Graphen und dem Test der Bedingung, die von dieser Kante getragen wird. Somit decken sich die Begrie der Erfüllbarkeitslücke und der Korrektheit: Eine untere Schranke für die Erfüllbarkeitslücke kann 31 als untere Schranke für die Korrektheit eines Verizierers interpretiert werden. Im Folgenden werden wir von Korrektheit und Vollständigkeit sprechen, wobei wir untere und obere Schranken für die Erfüllbarkeitslücke meinen. Unser Ziel in diesem Abschnitt ist folgenden Satz zu beweisen: Satz 3.2 (Ausdehnungssatz) Sei G = h(V, E), Σ, Ci ein Bedingungsgraph mit |Σ| = O(1). Dann gibt es Konstanten C und β und einen polynomiellen Algorithmus, der einen Bedingungsgraphen pow(G) := h(V ∗ , E ∗ ), Σ∗ , C ∗ i mit folgenden Eigenschaften konstruiert: • S(pow(G)) ≤ C · S(G) und |Σ∗ | = O(1), • Vollständigkeit: SAT(G) = 0 =⇒ SAT(pow(G)) = 0, • Korrektheit: SAT(pow(G)) ≥ min(2 · SAT(G), β). Die Überführung von G in pow(G) wird in mehreren Schritten ausgeführt und lässt sich in Algorithmus 1 beschreiben: Algorithmus 1 : Die Überführung von G in pow(G) Eingabe : Bedingungsgraph G Ausgabe : pow(G) mit SAT(pow(G)) ≥ min(2 · SAT(G), β) 1 2 3 4 5 // Knoten-Duplizierung // Expandisierung // Powering // Komposition // Ausgabe des Algorithmus G 7→ H1 ; H1 7→ H2 ; H2 7→ H3 ; H3 7→ H4 ; return pow(G) := H4 ; Wir untersuchen nun die Graphen Hl für l = 1, . . . , 4. Wir erläutern die je- weils erzielte Eigenschaft und die durchgeführte Operation auf den Graphen und bestimmen für jeden Graphen das Alphabet, die Knoten-, Kanten- und Bedingungsmenge. Die im Folgenden vorkommenden Gröÿen und λ1 d0 , d 1 , h0 , h1 , λ 0 sind universelle Konstanten. Insbesondere sind sie von der Gröÿe des Graphen und dessen Beschaenheit unabhängig. 3.2.1 Knoten-Duplizierung H1 mit konstantem Grad zu v ∈ V dv Kopien erzeugt, wobei dv der Grad von v in G ist. Sei [v] die Menge der Kopien von v . Diese Menge wird mit einem (dv , d0 , λ0 )-Expandergraphen X(dv ) mit konstanter KantenExpansion h0 vernetzt. Zusätzlich wird für jede Kante e = {u, v} ∈ E eine Kante e b zwischen einem Knoten in [u] und einem Knoten in [v] angelegt, Der erste Schritt besteht darin, einen Graphen erhalten. Dafür werden für jeden Knoten 32 so dass jeder Knoten d0 te (nicht-Expanderkante Expandernachbarn und eine einzige b) eb ∈ E besitzt. Falls dv < d 0 externe Kand0 − dv gilt, werden {v, v} eingefügt. Abbildung 3.1 zeigt die Duplizierung eines v vom Grad 6 und die Vernetzung von [v] durch einen ExpanderX(dv ) vom Grad 3. Selbstschleifen Knotens graphen e1 e2 eb2 eb1 X(dv ) v Abbildung 3.1: Duplizierung von Sei b=S E b. e∈E e • V1 = S v und Vernetzung von Wir erhalten einen Graphen v∈V [v], [v] durch X(dv ). H1 := h(V1 , E1 ), Σ1 , C1 i mit |V1 | = 2|E|, • Σ1 = Σ, • d := Grad(H1 ) = d0 + 1, b∪S • E1 = E v∈V E(X(dv )), |E1 | = d · |V1 | = (d0 + 1) · 2|E| = O(|E|), da d konstant ist. b getragen wird und • C1 = C ∪ C Id , wobei C nun von der Kantenmenge E Id C die Menge der Gleichheitsbedingungen zwischen den Knoten von X(dv ) darstellt. Die Bedingungen in C Id gewährleisten, dass Kopien des selben Knotens die selbe Belegung erhalten. • S(H1 ) = |V1 | + |E1 | · |Σ|2 = O(|E|) = O(S(G)). Für die Erfüllbarkeitslücke gilt: β0 · SAT(G) ≤ SAT(H1 ) ≤ SAT(G) Beweis. Die Gröÿe von V1 ist oensichtlich (3.1) 2|E|, da eine Kopie von den zwei |E1 | und Endknoten jeder Kante jeweils erzeugt wird. Die Eigenschaften von d = Grad(H1 ) ergeben sich direkt aus der Konstruktion. Nun betrachten wir die Erfüllbarkeitslücke zweite Ungleichung (SAT(H1 ) SAT(H1 ) des neuen Graphen. Die ≤ SAT(G)) drückt die Vollständigkeit aus: Aus 33 SAT(G) = 0 folgt nämlich SAT(H1 ) = 0. Für den Beweis betrachten wir eine σ : V → Σ, d.h. SAT(G) = SATσ (G). Wir erweitern σ zu 0 einer Belegung σ : V1 → Σ wie folgt: optimale Belegung ∀v ∈ V ∀x ∈ [v] : σ 0 (x) := σ(v). Oensichtlich verletzen σ und σ0 E aus entsprechen. Da |E1 | > |E| SAT(H1 ) ≤ SATσ0 (H1 ) = Die erste Ungleichung (β0 k von Kanten: Die Beleb , die unerfüllbaren Kanten E die selbe Anzahl 0 gung σ verletzt diejenigen externen Kanten aus gilt, erhalten wir: k k ≤ = SATσ (G) = SAT(G). |E1 | |E| · SAT(G) ≤ SAT(H1 )) drückt die Erhaltung der Korrektheit bis auf einen multiplikativen konstanten Faktor aus. Nun betrachten wir eine optimale Belegung σ 0 : V 1 → Σ, für die gilt: SAT(H1 ) = SATσ0 (H1 ) (3.2) σ : V → Σ gemäÿ der Pluralität von σ 0 . einen Knoten v ∈ V sei σ(v) der am meisten vertretene Wert unter 0 Belegungen σ (x) der Kopien x ∈ [v] von v . Formal: Wir denieren die Belegung ∀v ∈ V : σ(v) := {a ∈ Σ | Pr [σ 0 (x) = a] x∈[v] F ⊆ E Sei die Kantenmenge, die von Kantenmenge, die von σ0 2 verletzt wird. deren Belegung von der Pluralität von S := [ σ σ0 den maximal}. verletzt wird, und Weiter sei Für S ⊆ V1 F1 ⊆ E 1 die die Knotenmenge, abweicht, d.h. {x ∈ [v] | σ 0 (x) 6= σ(v)}. v∈V Im Folgenden bestimmen wir eine Konstante β0 , so dass für α := SATσ (G) gilt: def β0 · SAT(G) ≤ β0 · α ≤ |F1 | def = SAT(H1 ) |E1 | (3.3) Unser Ziel ist die Ungleichung β0 · α ≤ für ein geeignetes β0 |F1 | |E1 | zu beweisen. Dafür beachten wir Folgendes: Zu einer f ∈ F gehört eine externe Kante f1 ∈ E1 , die entweder von σ 0 verletzt 0 (f1 ∈ F1 ) oder einen Endpunkt u in S hat (für u ∈ [v] gilt: σ (u) 6= Kante wird σ(v)). Daraus folgt |F1 | + |S| ≥ |F | = α · |E| (3.4) Wir unterscheiden zwei Fälle und zeigen in beiden Fällen, dass es eine Konstante 2 C gibt, so dass SATσ0 (H1 ) = C ·α≤ |F1 | und |E1 | |F1 | |E1 | gilt. SATσ (G) = |F | . |E| 34 • Falls |F1 | ≥ α 2 · |E| gilt, erhalten wir |F1 | 1 α 1 |F1 | = ≥ · = · α. |E1 | d · |E| d 2 2d Wir haben gezeigt: |F1 | |E1 | C ·α≤ • Falls |F1 | < α2 |E| für C= 1 2d (3.5) gilt, dann folgt aus (3.4): |S| ≥ α |E| 2 (3.6) S v := [v]∩S . Die Menge S v lässt v 0 sich als disjunkte Vereinigung von Mengen Sa := {x ∈ S | σ (x) = a} schreiben. Es gilt |Sa | ≤ |[v]|/2, da S von der Pluralität abweicht. Die Expander-Eigenschaft von X(dv ) garantiert E(Sa , Sa ) ≥ h0 · |Sa |. Alle 3 Id Kanten, die Sa verlassen, tragen Gleichheitsbedingungen aus C , die 0 von σ verletzt werden. Für diese Kanten gilt nämlich: s, t ∈ [v] und 0 σ (s) 6= σ 0 (t). Wir summieren über alle Sa und dann über alle S v auf v∈V Für einen beliebigen Knoten sei und erhalten: |F1 | ≥ h0 XX |Sa | = h0 v∈V a∈Σ X (3.6) |S v | = h0 |S| ≥ v∈V αh0 h0 α |E| = |E1 |. 2 2d Daraus schlieÿen wir: C ·α≤ Wir setzen |F1 | |E1 | für C= h0 2d (3.7) 1 h0 β0 := min( 2d , 2d ). Dann folgt aus (3.5) und (3.7) die Behauptung (3.3). 3.2.2 Expandisierung H1 in einen Expandergraphen H2 zu überführen. Wir betten V1 in einen (|V1 |, d1 , λ1 )-Expandergraphen Exp mit konstanter Kanten-Expansion h1 ein und fügen für jeden Knoten aus V1 eine Das Ziel der zweiten Umformung ist Selbstschleife (self loop) ein. Wir bezeichnen die Menge dieser Selbstschlei- Eloop (V1 ). Der Eloop (V1 ) resultierende fen mit aus der Vereinigung der Kanten von Graph H2 := h(V2 , E2 ), Σ2 , C2 i Expandergraph mit folgenden Eigenschaften: 3 Kanten {s, t} mit s ∈ Sa und t∈ / Sa . 35 ist ein H1 , Exp und (|V1 |, D, λ)- • V2 = V1 und Σ2 = Σ, • D := Grad(H2 ) = d + d1 + 1, • λ := λ(H2 ) < D, • E2 = E1 ∪ E(Exp) ∪ Eloop (V1 ), |E2 | = D/d · |E1 | = O(|E1 |), • C2 = C1 ∪ C void , wobei C void eine Menge von trivialen (immer erfüllten) Bedingungen, die von E(Exp) ∪ Eloop (V1 ) getragen werden. Abbildung 3.2 zeigt einen Ausschnitt aus dem Graphen und d1 = 3. H2 mit d0 = 2 Um die Lesbarkeit zu erhöhen wurden nicht alle Kanten in diesem Teilgraphen gezeichnet, sondern stellvertretend einige Kanten von jeder Art, die jeweils durch verschiedene Stricharten dargestellt werden. {v, v} e ∈ Exp b eb ∈ E X(du ) {w, w} Abbildung 3.2: Ein Ausschnitt aus dem Expandergraphen H2 . Auch in diesem Schritt verschlechtert sich die Korrektheit nur um einen konstanten Faktor: β1 · SAT(H1 ) ≤ SAT(H2 ) ≤ SAT(H1 ) (3.8) Beweis. Die Eigenschaften von D und |E2 | sind oensichtlich. Es gilt h(H2 ) ≥ h(Exp) ≥ h1 , da Exp ⊂ H2 . Die Anwendung von Lemma 1.11 auf H2 liefert: h1 ≤ h(H2 ) ≤ p 2D(D − λ) =⇒ λ ≤ D − h21 < D. 2D Für die Erfüllbarkeitslücke beachten wir, dass die Bedingungen über alle (d1 + 1)|E1 | eingeführten Kanten immer erfüllt sind. Der Anteil unerfüll- ter Bedingungen verkleinert sich also um den Faktor O(1). 36 β1 := d d+d1 +1 = d D = 3.2.3 Powering Der Preis für die Grad- und Expander-Eigenschaften war eine Verkleinerung von SAT(G) um einen konstanten Faktor β0 · β1 . Der Powering-Schritt hebt diese Verschlechterung auf und erzeugt die eigentliche Ausdehnung der Erfüllbarkeitslücke. Dieser Schritt basiert auf der Bildung von t-Pfaden in E2 . Denition 3.3 Ein t-Pfad Π in einem Graphen G = (V, E) ist eine t- elementige Kantenmenge Π := ({u0 , u1 }, . . . {ut−1 , ut }) ⊂ E mit Kanten {ui , ui+1 } ∈ E für i = 0, . . . , t − 1. Knoten ui und Kanten {ui , ui+1 } können mehrfach in einem Pfad vorkommen. t, die wir später spezizieren, konstruieren wir H3 = h(V3 , E3 ), Σ3 , C3 i := (H2 )t mit folgender Vorschrift: Für eine Konstante phen • H3 • habe die selbe Knotenmenge wie Knoten u, v ∈ V3 Verschiedene H2 . sind genau dann durch den, wenn die Anzahl der t-Pfade t-Pfade den Gra- von u k Kanten von nach v in H2 E3 • k ist. zwischen den selben zwei Knoten induzieren also E3 . Die resultierende Kantenmenge E3 t-Pfade in E2 . verschiedene Kanten in somit alle möglichen verbun- genau enthält v ∈ V3 eine t/2-Nachbarschaft Nt/2 (v) hat. Dabei bezeichnet Nt/2 (v) die Menge der in t/2 Schritten erreichbaren Nachbarn von v in H2 . Die Meinung von v ist die Menge der Belegungen, die v von seinen Ddt/2e . Nachbarn annimmt. Wir setzen also Σ3 := (Σ2 ) Das Alphabet Σ2 wird so erweitert, dass jeder Knoten Meinung über seine • Eine Bedingung c3 ∈ C3 über eine Kante u3 , v3 ist die Konjunktion aller t/2-Nachbarschaften von u3 und v3 in H2 Bedingungen, die durch die induziert werden. Eine formelle Denition folgt im nächsten Absatz. Wir wollen aber zuerst die Intuition, die den Powering-Schritt motiviert, genauer erläutern. Das Ziel der gesamten Umformung G → pow(G) ist Ver- bindungen zwischen Knoten (Variablen) herzustellen, die im ursprünglichen Graphen G nicht korreliert waren. Diese Korrelation wird einerseits durch den Expandisierungsschritt realisiert, der entfernte Knoten verbindet, und andererseits durch die Verteilung der Informationen (Variablenbelegungen) durch den Graphen. Ein unehrlicher Beweiser kann dann nicht mehr die Belegung einer einzelnen Variable einmalig ändern, sondern mindestens einen groÿen (konstanten) Anteil der Spuren dieser Variable in den Graphen verfolgen und ändern. Diese Spuren nden sich in den Meinungen wieder, die die Nachbarn eines Knotens über ihn haben (Siehe Abbildung 3.3). Die Verbrei- 37 u σu (x) v σ(x) σv (x) w σw (x) Abbildung 3.3: Die Belegung von x σ(x) ndet sich in den Meinungen der Nachbarn wieder. tung der Variablenbelegungen und ihr Eekt werden mit der Denition der σ : V 3 → Σ3 . Sei σu (w) die Meinung von u über w ∈ Nt/2 (u), d.h die Restriktion Σ3 → Σ2 e der Belegung σ(u) auf den Knoten w . Eine Bedingung c (σ(u), σ(v)) ∈ C3 Bedingungen in H3 ersichtlicher. Betrachten wir eine Belegung ist genau dann erfüllt, wenn 1. ∀eu ∈ {w1 , w2 } ∈ E2 | w1 , w2 ∈ Nt/2 (u) : ceu (σu (w1 ), σu (w2 )) = T 2. ∀ev ∈ {w1 , w2 } ∈ E2 | w1 , w2 ∈ Nt/2 (v) : cev (σv (w1 ), σv (w2 )) = T 3. ∀e ∈ {w1 , w2 } ∈ E2 | w1 ∈ Nt/2 (u), w2 ∈ Nt/2 (v) : ce (σu (w1 ), σv (w2 )) = T D = 3 und t = 2. Betrachten wir die Bedingung über {u, v} ∈ E3 , die dem 2-Pfad {u, w}, {w, v} entspricht. Wir erhalten die Nachbarschaften N1 (u) = {u, u1 , w} und N1 (v) = {v, v1 , w} und folgende Einteilung der Kanten in Sorten eu , ev und e gemäÿ der obigen In Abbildung 3.4 ist die Kante Unterscheidung: • Die Kanten {u, u} und {u, u1 } • Die Kanten {v, v} und {v, v1 } • Die Kante {w, w} ist eine Die Kante {u, w} tritt zweimal aber mit jeweils einer Interpretation • sind sind e-Kante eu -Kanten ev -Kanten (punktierte Kanten). (gestrichelte Kanten). (fette durchgezogene Kante). auf: u wird durch {u, u} und w eine u Für {u, w} erreicht: {u, w} ist wird durch {v, w} erreicht: {u, w} ist eu -Kante. wird durch eine wird durch {u, u} und w e-Kante. {v, w} ergibt sich eine analoge Überlegung, deshalb sind beide Kanten fett angezeichnet und jeweils punktiert bzw. gestrichelt. 38 v1 v u1 w u Abbildung 3.4: Bedingungen im Powering-Schritt. Nun ist klar, was die Erweiterung des Alphabets bewirkt, nämlich eine Bün- C3 ist erfüllt, wenn ein Bündel C2 erfüllt ist. Jede nicht erfüllte Bedingung in C2 tritt in Dt−1 t-Pfaden in E2 vor und verursacht die Unerfüllbarkeit von genau so vielen Bedingungen in C3 . Dies ist wie wir sehen werden der eidelung der Bedingungen: Eine Bedingung in von O(Dt ) Bedingungen in gentliche Grund zur Ausdehnung der Erfüllbarkeitslücke. Wir erhalten einen Bedingungsgraphen H3 = h(V3 , E3 ), Σ3 , C3 i mit folgenden Eigenschaften: • |V3 | = |V2 |, • Grad(H3 ) = Dt , • |Σ3 | = |Σ2 |D dt/2e , • |E3 | = |C3 | = Dt−1 · |C2 |, • S(H3 ) = Dt−1 · S(H2 ) = O(S(H2 )), da D und t konstant sind. Die Ausdehnung der Erfüllbarkeitslücke drückt sich in folgender Ungleichung aus: √ 1 β2 t · min(SAT(H2 ), ) ≤ SAT(H3 ) ≤ SAT(H2 ) t (3.9) Beweis. Der Faktor Dt−1 in |E3 | ergibt sich aus der Anzahl der möglichen t-Pfade in E2 bei Festlegung der ersten Kante. Der Grad D stellt den Verzweigungsfaktor für die Wahl der nächsten Kante in E2 dar. Der Grad t eines Knotens in V3 entspricht der Anzahl D der t-Pfade, die aus diesem Knoten ausgehen. Die Vollständigkeit ist klar, da die Kombination bzw. Vervielfältigung von erfüllbaren Bedingungen eine erfüllbare Bedingungsmenge liefert. Der Beweis der Korrektheitseigenschaft in Ungleichung (3.9) ist sehr 39 technisch und bedarf der Einführung mehrerer Hilfssätze aus der Wahrscheinlichkeitstheorie. Wir verzichten hier auf eine ausführliche Beweisführung und skizzieren nur die Grundidee des Beweises. 4 σ : V3 → Σ3 die Information über die Belegung eines Knotens auf seine t/2-Nachbarschaft verteilt. Durch die Korrelation der Erfüllbarkeit einer Bedingung in C3 mit der Erfüllbarkeit einer Fülle von Bedingungen in C2 ist die Wahrscheinlichkeit Verletzungen von σ Informell wird durch die Belegung zu entdecken gröÿer als die Wahrscheinlichkeit auf Verletzungen von Belegungen σ 0 : V 2 → Σ2 zu stoÿen. Die zweite entscheidende Beobachtung ist die Ähnlichkeit zwischen Spaziergängen in Expandergraphen und in zufälligen Graphen wie Lemma 1.13 zeigt. Diese Eigenschaft stellt die Verbindung zwischen t-Pfaden (Spaziergängen im Expandergraphen H2 ) SAT(H3 ) und (Wahrscheinlichkeit der Verletzung bei der zufälligen Wahl einer Kante in H3 ) her. 3.2.4 Komposition Die Ausdehnung der Erfüllbarkeitslücke im Powering-Schritt konnte nur mit der Vergröÿerung des Alphabets um den Faktor K = |Σ3 |/|Σ| erreicht wer- den. Da wir aber eine iterative Anwendung dieser Prozedur benötigen werden, müssen wir die resultierende exponentielle Vergröÿerung unterbinden. Ansonsten ist die Gröÿe des Alphabets nach O(log n) bzw. m = O(log log n) m Iterationen K m. Für m= ergibt sich eine polynomielle bzw. polyloga- rithmische Alphabetgröÿe. Unser Ziel ist aber ein Alphabet mit konstanter Gröÿe zu erhalten, da wir eine konstante Anfragekomplexität anstreben: Der Verizierer wird die Belegung der Endknoten einer Kante lesen. Seine Anfragekomplexität ist also proportional zu der Gröÿe des alphabets. Die Reduktion der Alphabetgröÿe erreichen wir im Kompositionsschritt: Je- H3 , die über Variablen in Σ3 deniert ist, wird durch eine Menge mittels einer PCPP-Anwendung P0 erzeugter Bedingungen ersetzt, die über einem kleineren Alphabet Σ0 deniert sind. Wie wir in Abschnitt 1.1.2 gesehen haben, muss die Eingabe einer PCPP-Anwendung eine Robustde Bedingung aus heitseigenschaft besitzen. Deswegen unterteilen wir den Kompositionsschritt in zwei Schritte: die Robustization und die PCPP-Anwendung. Robustization C3 in ein für die PCPPP0 ist nämlich eine BeBedingungen in C3 über Σ3 Im ersten Schritt überführen wir die Bedingungen aus Anwendung P0 geeignetes Format. Die Eingabe für dingung über boolesche Variablen, während die 4 Der Beweis wird auf Seiten 13 bis 17 in [Din05, Kapitel 5] ausführlich beschrieben. 40 deniert sind. Wir brauchen also eine geeignete Kodierung der Variablen. (l, log |Σ3 |, ρ)-Code ecc : Σ3 → {0, 1}l mit linearer Codewortlänge l = O(log |Σ|) und linearer Distanz ρ = O(log |Σ3 |). Wir ersetzen jede Variable v ∈ V3 durch eine Menge [v] von l booleschen Variablen, die eine Kodierung von v via ecc darstellen. Betrachten wir einen C3 bilden wir die Bedingungsmenge Ce3 folgendermaÿen: Für jede Bedine e3 eine Bedingung über [u] ∪ [v], so dass gung c ∈ C3 mit e = {u, v} sei c ∈ C c genau dann erfüllt ist, wenn [u] ∪ [v] eine legale Kodierung via ecc für eine e Belegung σ von u und v ist, die c erfüllt. In anderen Worten: c([u] ∪ [v]) = 1 ⇐⇒ ce ecc−1 ([u]), ecc−1 ([v]) = 1 (3.10) Aus PCPP-Anwendung Betrachten wir einen δ0 (Distanz) und s0 PCPP-Verizierer P0 mit Parametern Σ0 (Alphabet), (Korrektheit) und folgenden Eigenschaften: • Eingabe: eine Bedingung • Ausgabe: Die Anwendung von c über eine Menge P0 B boolescher Variablen. c mit einer zuP0 (c, τ0 ), die genau auf die Bedingung τ0 deniert eine Bedingung P0 die Eingabe c akzeptiert. Die Vereinigung dieser Bedingungen über alle τ ∈ Γ(P0 ) (die Menge der möglichen Zufallszeichenketten von P0 ) liefert eine Bedingungsmenge Cc . Diese Bedingungsmenge ist über der Variablenmenge B ∪ Xc deniert, wobei Xc eine Menge von Hilfsvariablen über einem Alphabet Σ0 ist, die wir fälligen Zeichenkette dann erfüllt ist, wenn bestimmen werden. Diese Bedingungsmenge kann auf natürlicher Weise in einen Bedingungsgraphen werden. Diesen Graphen • eingebettet setzen wir als Ausgabe des Algorithmus. σ : B → {0, 1} die Bedingung c erfüllt, dann gibt : Xc → {0, 1}, so dass σ ∪ σ 0 jede Bedingung in Cc erfüllt. Vollständigkeit: Falls 0 es σ • Gc Gc := h(B ∪ Xc , E), Σ0 , Cc i Korrektheit: Für jedes gung σ e δ ≤ δ0 σ δ -entfernt5 von jeder Bele0 jede Belegung σ : Xc → {0, 1} gilt: Falls c erfüllt, dann sind für s0 · δ Bedingungen in Cc verletzt. ist, die mindestens Wir müssen noch die Menge Xc und das Alphabet Σ0 denieren. Wir be- PCPP-Konstruktion P0 mit konstanter Anfragekomq , konstanter Korrektheit s und polynomieller Beweislänge S . Weiter sei Pc der Beweisorakel von P0 (c, ·) und wir bezeichnen mit Anf(P0 (c, τ0 )) die trachten eine beliebige plexität 5 Zwei Belegungen σ und σ0 sind δ -entfernt, 41 falls Prx [σ(x) 6= σ 0 (x)] ≥ δ ist. Menge der angefragten Bits bei der Ausführung von chenkette τ0 . Eine groÿe Variable bc (τ0 ) P0 auf stellt die Bitmenge c mit der ZeiAnf(P0 (c, τ0 )) dar. Sei [ Γc (P0 ) := τ0 ∈Γ(P0 ) c Für jede Bedingung [ Anf(P0 (c, τ0 )) = bc (τ0 ). τ0 ∈Γ(P0 ) Γ(P0 ) und Γc (P0 ), bc (τ0 ) abbildet.6 gibt es eine Bijektion zwischen eine Zufallszeichenkette τ0 auf eine groÿe Variable die P0 auf eine Bedingung c liefert Bedingungen c(bc (τ0 )) über Γc (P0 ), so dass c(bc (τ0 )) = 1 genau dann gilt, wenn P0 (c, τ0 ) = 1. q Denieren wir Xc := Pc ∪Γc (P0 ) und Σ0 := {0, 1} . Hier wird das eigentliche q Alphabet {0, 1} von Pc zu {0, 1} kanonisch erweitert. Die Belegung σ : Γc (P0 ) → Σ0 gibt die Belegung der groÿen Variable bc (τ0 ), die die q Bits von Anf(P0 (c, τ0 )) darstellt. Die Anwendung von c(bc (τ0 ), i) ∈ Cc sind dann über Γc (P0 ) × (B ∪ Pc ) folc(bc (τ0 ), i) = 1 genau dann, wenn c(bc (τ0 )) = 1 gilt und die i-te Komponente von b(τ0 ) gleich wi ∈ Anf(P0 (c, τ0 )) für ein i ∈ [1..q] ist (σ(b(τ0 )) ↓ i = σ(wi )). Wegen der Bijektion zwischen Γ(P0 ) und Γc (P0 ) (bei festgelegter Bedingung c) sprechen wir von Bedingungen c(τ0 , i) := c(bc (τ0 ), i) ∈ Cc . Abbildung 3.5 zeigt die Struktur der Bedingungsmenge Cc für eine Bedingung c über [u] ∪ [v]. Die Bedingungen gendermaÿen deniert: Γc (P0 ) 1 Xc q i B bc (τ1 ) ... c(τ1 , j) ... c(τ0 , i) wj wi c [u] q j 1 bc (τ0 ) [v] Pc kanonische Erweiterung Abbildung 3.5: Anwendung von Wir wenden den P0 PCPP-Verizierer P0 auf eine Bedingung auf jede Bedingung c über c ∈ Ce3 [u] ∪ [v]. an, die im Robustizationsschritt erzeugt wurde. Wir erhalten für jede Bedingung einen Bedingungsgraphen liefert den Graphen Gc = h(Vc , Ec ), Σ0 , Cc i. Die Vereinigung dieser Graphen H4 := h(V4 , E4 ), Σ4 , C4 i, den wir folgendermaÿen cha- rakterisieren können: 6 Wenn die Bedingung c aus dem Kontext ersichtlich ist, lassen wir den Index bei weg. 42 bc (τ ) S • V4 = S [v] ∪ X , |V4 | = O(|V3 |), v∈V3 c∈Ce3 c • Σ4 = Σ0 , S • C4 = c∈Ce3 Cc , |C4 | = O(|Ce3 |) = O(|C3 |). Für die Erfüllbarkeitslücke gilt: β3 · SAT(H3 ) ≤ SAT(H4 ) ≤ SAT(H3 ) (3.11) S S Beweis. Es gilt: |V4 | = | v∈V3 [v]| + | c∈C3 Xc | = (l + C) · |V3 | mit C = |Xc |. Die Konstante C ist nur von P0 abhängig und l = O(log(|Σ3 |)) ist auch 7 e3 | = O(|Ce3 |), da konstant. Daraus folgt: |V4 | = O(|V3 |). Es gilt: |C4 | = |Cc |·|C die Bedingungen Cc die Ergebnisse einer PCPP-Anwendung auf Bedingungen c konstanter Gröÿe sind und können daher nur eine konstante Gröÿe haben. e3 Kodierungen via ecc von Bedingungen Ferner sind die Bedingungen c ∈ C e3 | = O(|C3 |) aus C3 . Wegen der linearen Codewortlänge von ecc gilt also |C und somit |C4 | = O(|C3 |). Die Vollständigkeit von H4 folgt unmittelbar aus der Vollständigkeit von P. Für den Beweis der Korrektheit betrachten wir wieder eine optimale Bele- σ 0 : V4 → Σ0 (SAT(H4 ) = SATσ0 (H4 )). Belegung σ : V3 → Σ3 , die wir folgendermaÿen gung σ0 Wir extrahieren aus eine denieren: ∀v ∈ V3 : σ(v) := {a ∈ Σ3 | dist σ 0 ([v]), ecc(a) = min dist σ 0 ([v]), ecc(b) } b∈Σ3 (3.12) In anderen Worten ist σ(v) der Wert von Σ3 , dessen Kodierung via ecc am 0 nächsten zu σ ([v]) ist. Die Idee ist zu zeigen, dass wenn σ eine Bedingung c verletzt, dann verletzt σ 0 einen konstanten Bruch β3 von Cc . Da die Bedingungen c gleich groÿ sind, dass die Anwendung von P0 8 können wir ohne Einschränkung annehmen, gleich groÿe Bedingungsmengen summieren über alle Bedingungen, die σ Cc liefert. Wir verletzen, und erhalten: SAT(H4 ) = SATσ0 (H4 ) ≥ β3 · SATσ (H3 ) ≥ β3 · SAT(H3 ). Sei also eine Bedingung ce ∈ C3 über eine Kante {u, v} von σ verletzt und [u] ∪ [v]. Mindestens eine der Koσ 0 ([v]) muss mindestens ρ/2-entfernt von einer 9 legalen Kodierung von u bzw. v sein. Somit ist die Eingabe [u] ∪ [v] von c mindestens ρ/4-entfernt von einer Eingabe, die c erfüllen würde. Aus der 0 Korrektheit von P0 folgt, dass s0 · ρ/4 Bedingungen aus Cc von σ verletzt werden. Mit β3 := s0 · ρ/4 = O(1) folgt die Behauptung in (3.11). c sei die entsprechende Bedingung über dierungen 7 8 9 Nur von σ 0 ([u]) |Σ|, D, t und/oder und ecc abhängig. Alle Bedingungen sind über 2l boolesche Variablen deniert. Anderenfalls könnten wir die Kodierung via dem fehlerkorrigierenden Code gieren. 43 ecc korri- 3.2.5 Verdopplung der Erfüllbarkeitslücke Nun können wir den Ausdehnungssatz 3.2 beweisen. Wir fassen die Operatio- G zusammen: Aus G erhalten wir den Graphen H1 mit H2 mit konstanter Kanten-Expansion, Graphen H3 mit erhöhter Erfüllbarkeitslücke aber vergröÿertem und schlieÿlich den Graphen pow(G) = H4 mit einem Alphabet nen auf den Graphen konstantem Grad, dann den Graphen dann den Alphabet konstanter Gröÿe. Tabelle 3.1 fasst die wichtigsten Eigenschaften dieser Graphen zusammen: Alphabet G Σ Grad SAT(H) a H1 Σ d = O(1) a1 = β0 · a H2 Σ D = O(1) a2 = β1 · a1 H3 t/2 Σ3 = ΣdD e t D√ a3 = β2 t · a2 Tabelle 3.1: Zusammenfassung von H4 = pow(G) Σ0 a4 = β3 · a3 G 7→ pow(G). Die Gröÿe des Graphen wird bei jeder Operation mit einem konstanten Faktor multipliziert, d.h. S(pow(G)) = C · S(G) und E(pow(G)) = C1 · E(G) (3.13) C1 , die von |Σ|, d0 , d1 , λ0 , λ1 , ecc und t aber nicht von der Länge n der Eingabe abhängen. Das Alphabet von pow(G) ist Σ0 , dessen Gröÿe in O(1) liegt. für Konstanten C und Die Vollständigkeit ist durch folgende Ungleichung gewährleistet: SAT(pow(G)) = SAT(H4 ) ≤ SAT(H3 ) ≤ SAT(H2 ) ≤ SAT(H1 ) ≤ SAT(G). Um die behauptete Korrektheit zu erhalten, wählen wir t := d( 2 )2 e β0 β1 β2 β3 und β2 β3 β := √ t (3.14) Dann ergibt sich: SAT(pow(G)) ≥ ≥ ≥ ≥ ≥ β3 · SAT(H √ 3) β3 · β2 √t · min(SAT(H2 ), 1t ) β3 · β2 √t · min(β1 · SAT(H1 ), 1t ) β3 · β2 t · min(β1 β0 · SAT(G), 1t ) min(2 · SAT(G), β). 44 (3.11) (3.9) (3.8) (3.1) (3.14) 3.3 PCP-Konstruktionen nach Dinur Wir werden zwei Konstruktionen von [Din05] untersuchen. Die erste Konstruktion ist rein kombinatorisch und führt zu folgender Version des PCP- Satzes: NP = PCP[O(log n), C] (3.15) Die zweite Konstruktion ist ein hybrider Ansatz, der algebraische und kombinatorische Elemente kombiniert. Das Ergebnis ist die bisher beste Variante des PCP-Satzes, nämlich Satz 1.7: NP = PCP[log n + O(log log n), O(1)]. Wir beweisen zuerst die Gleichung (3.15). Obwohl diese Variante des PCP- + Satzes schon in [ALM 92] bewiesen wurde, ist diese Konstruktion aus zweierlei Gründen für uns relevant. Einerseits stellt sie die erste rein kombinatorische Alternative zu den algebraischen Ansätzen und anderseits veranschaulicht sie die Einsetzung der Prozedur zur Ausdehnung der Erfüllbarkeit und ermöglicht einen besseren Verständnis der komplizierteren Konstruktion für den Beweis von Satz 1.7. Beweis. Wie in Abschnitt 3.1 erwähnt, müssen wir nur zeigen, dass α-GapCGS NP-schwer ist. Wir gehen aus einer CGS-Instanz G = h(V, E), Σ, Ci aus 10 mit |Σ| = 3 und |C| = n. Wir haben festgestellt, dass CGS äquivalent zu der Unterscheidung zwischen SAT(G) = 0 und SAT(G) ≥ 1/n ist. Wir wenden den Ausdehnungssatz 3.2 k = O(log n) Mal auf G an. Der resultierende 0 0 k Graph G hat eine Gröÿe S(G ) = C · S(G) = poly n · S(G) = poly n. Falls SAT(G) = 0 gilt, dann folgt SAT(G0 ) = 0, da die Ausdehnung der Erfüllbarkeitslücke die Vollständigkeit erhält. Für den Beweis der Korrektheit sei SAT(G) 6= 0, also SAT(G) ≥ 1/n. Da 2k ≥ n ist, folgt aus dem Ausdehnungssatz: SAT(G0 ) ≥ min(2k · SAT(G), β) = min(1, β) = β. r := O(log |E(G0 )|) = O(log n) 0 Münzwürfen (zufälligen Bits) eine Kante e = {u, v} ∈ E(G ), liest die Bee legungen σ(u) und σ(v) im Beweis und überprüft ob c von σ erfüllt oder verletzt ist. Seine Anfragekomplexität ist q := 2 · |Σ0 |. Durch eine konstante Anzahl Iterationen kann die Korrektheit auf jede beliebige Konstante α < 1 (z. B. α = 1/2) gebracht werden, wobei die Anfragekomplexität nur um einen konstanten nur von α und β abhängigen Faktor erhöht wird. Somit haben wir eine Instanz von CGS auf eine Instanz von α-Gap-CGS reduziert und einen entsprechenden Verizierer mit r = O(log n) und q = O(1) Ein Verizierer für diesen Graphen wählt mit konstruiert. Um eine rein kombinatorische Konstruktion zu erhalten, können 10 Durch Reduktion von 3-Col haben wir gezeigt, dass CGS mit 45 |Σ| = 3 NP-schwer ist. wir den PCPP-Verizierer P0 durch einen brute-force Algorithmus ersetzen, wenn seine Existenz anderweitig sichergestellt wird. Dies ist möglich, da die P0 Eingaben von konstant groÿ sind und P0 somit inezient (exponentiellen Aufwands) sein kann. An dieser Stelle wollen wir kurz den algebraischen und den kombinatorischen Ansatz vergleichen: Die PCPP-Anwendung P0 entspricht den inneren Verizierern von algebraischen Verizierern, die zur Reduktion der Anfragekomplexität auf Kosten der Korrektheit eingesetzt werden. Wir erhalten eine Instantiierung des Kompositionssatzes 1.5 in Abschnitt 1.1.2. Dabei ist der äuÿere Verizierer der Algorithmus, der die Erfüllbarkeit einer Bedingung in C3 Σ3 × Σ3 ) (über Σ0 von P0 PCP-Verizierers, da in ei- testet. Die Gröÿe des Alphabets ist proportional zu der Anfragekomplexität des nem Bedingungsgraphen die Belegung der Endknoten einer Kante angefragt werden. Der resultierende q0 = O(|Σ0 |) = O(1). PCP-Verizierer hat also die Anfragekomplexität Die Anzahl der notwendigen Iterationen, um eine konstante Korrektheit zu erhalten, entspricht der Anzahl der Runden vom Low-degree-Test, bis die Polynome einen konstanten Grad haben (siehe Abschnitt 2.3). In [BS05] ist diese Anzahl in und schlieÿlich zum sind Ω(log n) PCP-Satz O(log log n) und führt zum Satz 2.6 2.1. In dem obigen kombinatorischen Ansatz Iterationen notwendig. Das Ziel im nächsten hybriden Ansatz von Dinur ist genau eine Iterationsanzahl von O(log log n) zu erreichen. 3.3.1 Hybrider Ansatz: kombinatorisch und algebraisch Die Analyse der vorigen Konstruktion zeigt, dass wir mindestens Ω(log n) Iterationen des Ausdehnungssatzes 3.2 durchführen müssen, um eine konstante Korrektheit zu gewährleisten. Der Grund dafür ist die schwache untere Grenze 1/n für die anfängliche Erfüllbarkeitslücke SAT(G). Die Idee von Dinur ist von einer Bedingungsmenge mit gröÿerer Erfüllbarkeitslücke auszugehen, so dass wir weniger Iterationen brauchen, bis eine konstante Korrektheit SAT(G0 ) Der hybride PCP-Beweiser von [Din05] führt die in Algorithmus 2 angegebe- SAT(G) ≥ 1/(poly log n) 0 anfangen, erreichen wir nach k := O(log log n) Iterationen SAT(G ) ≥ β . Ein Bedingungsgraph G0 mit SAT(G0 ) ≥ 1/(poly log n) kann aus der Anwendung + des algebraischen PCPs von [BS05] bzw. [BGH 05] hergeleitet werden. erreicht wird. Wenn wir mit nen Transformationen durch: Wir werden diese Schritte einzeln analysieren und den PCP-Satz 1.7 bewei- sen. In ihrer Arbeit geht Dinur von der Konstruktion von [BS05] aus. Wir + entscheiden uns für die Konstruktion von [BGH 05], die der vorigen Konstruktion gleicht, aber in polylogarithmischer Zeit verizierbar ist. 46 Algorithmus 2 : Ablauf des PCP-Beweises von [Din05] Eingabe : 3-SAT-Instanz Φ der Länge n Ausgabe : Bedingungsgraph G0 mit SAT(G0 ) > β // PCP-Anwendung von [BGH+ 05] // Ausdehnung der Variablen // Reduktion des Alphabets // Iterationstiefe 1 Φ 7→ Ψ; 2 Ψ→ 7 Ψ0 ; 0 3 Ψ → 7 G0 ; 4 für i = 1 bis k 5 tue 6 Gi := pow(Gi−1 ); 7 // Ausdehnung der Erfüllbarkeitslücke return G0 := Gk 3.3.2 Algebraische PCP-Anwendung Φ mit n Bedingungen. Der PCP-Satz 2.2 von [BGH+ 05] kann angewandt werden, um eine Bedingungsmenge C0 mit SAT(C0 ) ≥ 1/poly log n zu erzeugen. Unser Ausgangspunkt ist eine 3-SAT-Instanz R = log n + O(log log n) die Zufälligkeit, S = 1/2 die Korrektheit und Q = poly log n die Anfragekomplexität des Verizierers von [BGH+ 05]. Die Menge der möglichen Zufallszeichenketten τ für den Ablauf einer Verikation R ist Γ(P) mit |Γ(P)| = 2 . Ferner ist Γ der Ramanujan-Expandergraphen aus Abschnitt 2.5, in den Γ(P) eingebettet wird. Sei τ ∈ Γ(P) sei P(τ ) die Ausgabe des PCP-Verizierers P(τ ) = 1, falls der Verizierer akzeptiert und 0 sonst. Sei Anf(P(τ )) := {x1 , . . . , xQ } die Menge der von P angefragten Bits bei der Wahl von τ . Jedes Bit xj stammt eigentlich aus Anf(VRS (τr )) für ein τr ∈ NΓ (τ ) (siehe Abschnitt 2.5). Für jede Zufallszeichenkette P, wenn τ die Münzwürfe des Verizierers darstellt. Es gilt Dann können wir für jede Zeichenkette τ ∈ Γ(P) eine Bedingung c(τ ) de- nieren: P(τ ) = 1 =⇒ c(τ )(x1 , . . . , xQ ) := ^ VRS (τr ) = 1 τr ∈NΓ (τ ) P(τ ) = 0 =⇒ c(τ )(x1 , . . . , xQ ) := ^ VRS (τr ) = 0 τr ∈NΓ (τ ) a1 und a2 aus Satz 2.2 bilden die Bedingungen c(τ ) eine Ψ aus m := 2R = n · (log n)a1 Bedingungen, die jeweils Für die Konstanten Bedingungsmenge über Q := (log n)a2 boolesche Variablen (Bits) deniert sind. Die Bedingungsmenge Ψ entspricht nicht einem Bedingungsgraphen, da die Q Variablen deniert sind. Wir V , ein Alphabet Σ, eine Bedingungsmenge SAT(Ψ) denieren: Bedingungen nicht über jeweils zwei sondern können aber eine Variablenmenge C und eine Erfüllbarkeitslücke 47 • V besteht aus und • C Γ(P) m · (q(VRS ) + 1) Knoten, die {Anf(P(τr )) | τr ∈ Γ(P)} darstellen, besteht aus m c(τ ), die jeweils ein τ ∈ Γ(P) mit Q {xj ∈ Anf(VRS (τr )) | τr ∈ NΓ (τ )} verbinden, Bedingungen booleschen Variablen • Σ = {0, 1}, • SAT(Ψ) = 1/2 folgt aus der Korrektheit S = 1/2 der PCP-Konstruktion + von [BGH 05]. Der nächste Schritt um einen Bedingungsgraphen zu erhalten, besteht darin, Ψ in zwei-Variablen-Bedingungen umzuwandeln. Dafür wird das Alphabet Σ zunächst aufgebläht: Für jede PCP-Anwendung werden die Bedingungen aus die angefragten Bits in einer groÿen Variable zusammengefasst. 3.3.3 Aufblähung der Variablen Pro Bedingung c(τ ) ∈ Ψ wird eine neue Variable b(τ ) über dem Alphabet {0, 1}Q eingeführt, die die Belegungen der in c(τ ) vorkommenden Variablen S Γ(P) = τ ∈Γ(P) b(τ ) die Menge dieser groÿen Variablen. Für jede Variable b(τ ) ∈ Γ(P) werden Q Bedingungen c(τ, j) eingeführt, die jeweils b(τ ) mit einer Variable xj ∈ var(τ ) verbinden. Die Bedingung c(τ, j) ist genau dann erfüllt, wenn c(τ ) erfüllt ist und die Projektion b(τ )↓j mit der Belegung von xj übereinstimmt. var(τ ) := {x1 , . . . , xQ } darstellt. Sei Ψ0 Wir erhalten die Bedingungsmenge mit V 0 = V ∪ Γ(P), |V 0 | = |V | + |C| = m + m = 2m. • der Knotenmenge • der Bedingungsmenge C0 = [ [ c(τ )∈Ψ c(τ, j) , j∈[1..Q] • |C 0 | = m · Q = n · (log n)a1 +a2 , • Σ0 = {0, 1}Q , • SAT(Ψ0 ) ≥ 1 . (log n)a2 +1 Um ein einheitliches Alphabet Σ0 zu erhalten, betten wir die kleinen Va- 0 0 riablen xj kanonisch in Σ ein. Die Bedingungsmenge Ψ lässt sich nun in 0 0 0 0 0 natürlicher Weise in einen Bedingungsgraphen H = h(V , E ), Σ , C i einbetten, da C0 aus zwei-Variablen-Bedingungen besteht, jeweils zwischen einer 48 groÿen Variable b(τ ) ∈ Γ(P) und einer kleinen Variable dung 3.6 zeigt die Struktur der Bedingungsmenge τ ∈ Γ(P) Knotenmenge kommt daher, dass jedes T (τ ) und eine kleine Variable Ψ0 . T (τ ) mit Anf(VRS (τ )) Abbil- b(τ ) τ1 gezeigt. In q(VRS ) = 1 gilt, und eine groÿe Variable induziert, wie am Beispiel von diesen einfachen Beispiel haben wir angenommen, dass haben xj ∈ var(τ ). Die Verdopplung der gleichgesetzt. b(τ4 ) T (τ1 ) τ1 b(τ1 ) τ4 b(τ3 ) τ3 T (τ4 ) τ2 T (τ3 ) T (τ2 ) b(τ2 ) Γ(P) Ψ0 Abbildung 3.6: Die Struktur von Γ(P) und Ψ0 . Ψ nicht erfüllbar, so verletzt jede Belegung σ : V → Σ mindestens m/2 Bedingungen in Ψ. Eine verfälschte Belegung einer Variable b(τ ), die die Bedingung c(τ ) erfüllen würde, weist mindestens eine Inkonsistenz mit einem der xj auf. Für jede verletzte Bedingung in Ψ gibt es also mindestens eine verletzte Bedingung 0 in Ψ . Daraus folgt: Die Korrektheit ergibt sich aus folgender Beobachtung: Ist SAT(Ψ0 ) ≥ m/2 m/2 1 = = . 0 a |C | m · (log n) 2 (log n)a2 +1 Diese Umformung verursacht einerseits die Aufblähung der Alphabets auf ΣQ 1 und anderseits die Verschlechterung der Korrektheit auf . Die näch(log n)a2 +1 ste Operation reduziert das Alphabet auf eine konstante Gröÿe. Sie liefert G0 , dessen Erfüllbarkeitslücke wir durch iteratives Ausdehnungssatzes 3.2 auf 1/2 bringen werden. einen Bedingungsgraphen Anwenden des 3.3.4 Reduktion des Alphabets Wir führen dazu den Kompositionsschritt wie im Abschnitt 3.2.4. Sei also P0 ein PCPP-Verizierer dass alle Parameter von mit Alphabet n Σ0 , Distanz δ0 und Korrektheit s, so unabhängige Konstanten sind. Die Laufzeit und 49 die Länge des Beweises sollen polynomiell in der Länge der Eingabe sein. Im Robustizationsschritt wird hier auch ein fehlerkorrigierender Code ecc mit linearer Codewortlänge und linearer Distanz eingesetzt. P0 ist eine Bedingung c ∈ Ψ0 und die Ausgabe ist ein 11 Bedingungsgraph Gc := h(Vc , Ec ), Σ0 , Cc i. Sei Yc die Menge der Hilfsvariablen von P0 . Für Konstanten a und C erhalten wir den Bedingungsgraphen G0 = h(V0 , E0 ), Σ0 , C0 i mit Die Eingabe von • der Knotenmenge [ V0 = c∈C 0 v∈V [v] ∪ 0 [ Yc , c∈C 0 e0 = S 0 Ec , E c∈C S Bedingungsmenge C0 = c∈C 0 Cc , • der Kantenmenge • der • dem Alphabet • der Erfüllbarkeitslücke • der Gröÿe Beweis. [ Vc = Σ0 , SAT(G0 ) ≥ 1 (log n)a und S(G0 ) = n · (log n)C . Wir beweisen die Erfüllbarkeitslücke und die Gröÿe des Graphen. Die konstante Korrektheit s von P0 induziert SAT(G0 ) ≥ s · SAT(Ψ0 ) = s · für eine Konstante 1 1 = a +1 (log n) 2 (log n)a (3.16) a. Für die Gröÿe des Graphen gilt: S(G) = |V0 | + |Σ0 |2 · |E0 |. Die Länge der 0 Variablen in Ψ ist Q = poly log n. Nach der Robustization ist die Länge der |[u] ∪ [v]| = 2 · r(ecc) · Q = poly log n (wegen der konstanten Coderate r(ecc) von ecc). Da P eine polynomielle Beweislänge hat, ist |Yc | und damit |Vc | in poly (poly log n) = poly log n. Das Gleiche gilt 0 0 für |Ec | = |Cc |. Das Aufsummieren über alle v ∈ V und c ∈ C ergibt: resultierenden Bedingungen S(G0 ) = |V0 | + |Σ0 |2 · |E0 | = (|Vc | · |C 0 |) + (|Σ0 |2 · |Ec | · |C 0 |) = (poly log n · n · poly log n) + (O(1) · poly log n · n · poly log n) = n · poly log n = n · (log n)C 11 u Eigentlich ist die Eingabe eine Bedingung und v. c̃ für eine Konstante über die Kodierung C. [u] ∪ [v] via ecc von An dieser Stelle vereinfachen wir die Notation, da die Komposition in Abschnitt 3.2.4 ausführlich behandelt wurde. 50 3.3.5 Ausdehnung der Erfüllbarkeitslücke G0 hat nun das gewünschte Format: Er ist ein Bedingungsgraph12 mit einem Alphabet Σ0 konstanter Gröÿe. Wir können also die Prozedur G → pow(G) aus Abschnitt 3.2 iterativ k := O(log log n) Mal anwenden. Dies ist möglich, da die Ausgabe der i-ten Anwendung der Prozedur ein Bedingungsgraph Gi mit konstantem Alphabet ist und kann als Eingabe für die (i + 1)-te Anwendung benutzt werden. Aus dem Ausdehnungssatz 3.2 schlieÿen wir, dass der resultierende Graph Gk := h(Vk , Ek ), Σk , Ck i folgende Der Graph Eigenschaften hat: • S(Gk ) = C k · S(G0 ) = poly log n · n · poly log n = n · poly log n, • SAT(Gk ) ≥ min(2k · SAT(G0 ), β) = β . Beweis. Die Gröÿe von Gk folgt aus S(pow(G)) = C · S(G) und k = O(log log n). Um die behauptete Erfüllbarkeitslücke zu erhalten, wählen wir k ≥ a · log log n, wobei a die Konstante in (3.16) ist. Daraus folgt: 2k · SAT(G0 ) ≥ 1 und somit min(2k · SAT(G0 ), β) = β . Die Ausdehnung der Erk füllbarkeitslücke um den Faktor 2 lässt sich durch einfache Induktion über k beweisen, da eine Iteration mindestens eine Verdopplung der Lücke bewirkt. 3.3.6 PCP-Protokoll nach Dinur {uk , vk } ∈ Ek auszuwählen, braucht der Verizierer r := log |Ek | = log n + O(log log n) Münzwürfe. Der Verizierer liest die Belegungen σ(uk ) und σ(vk ) im Beweis. Die Anfragekomplexität in diesem Schritt ist also 2·|Σ0 | = O(1). Der Verizierer wertet dann seinen Schaltkreis D mit der Eingabe I := σ(uk ) ∪ σ(vk ) und akzeptiert, falls D(I) = 1, und lehnt sonst ab. Der Schaltkreis D entspricht dem Test der Bedingung, die von {uk , vk } getragen wird. Um eine Korrektheit α zu erhalten, wird diese Prozedur O(1) (in Abhängigkeit von α und β ) Mal wiederholt und die Teilergebnisse Di (I) Um eine Kante konjugiert (UND-verknüpft). Durch Recycling der zufälligen Zeichenketten kann der Test mit der selben Zufälligkeit und mit einer Anfragekomplexität q := O(1) realisiert werden. Φ auf eine α-Gap-CGSα-Gap-CGS NP-schwer ist und einen Verizierer mit r = log n+O(log log n) und q = O(1) entworfen. Somit ist der PCP-Satz 1.7 bewiesen. Der Algorithmus 2 reduziert also eine 3-SAT-Instanz Instanz. Mit dieser Reduktion hat Dinur gezeigt, dass 12 Alle Bedingungen sind über zwei Variablen deniert und können somit von Kanten getragen werden. 51 be des Beweisers ist eine Instanz dingungsmenge C) über eine x : V → {0, 1}, die auf die Eingabe x Φ B Φ PCP-Konstruktion. Die Eingan Klauseln (die BeVariablenmenge V und eine Variablenbelegung Nun betrachten wir den Beweiser dieser von 3-SAT mit erfüllen soll. Der Beweiser liefert einen Orakelzugri Gk . Um eiB Folgendes und auf die Variablenbelegung des Graphen ne gültige Variablenbelegung von Gk liefern zu können, muss berechnen: 1. die Auswertungstabellen für die PCP-Verikation + von [BGH 05], 2. die Variablenbelegung für die Knotenmengen aller Graphen Gi (i = 0, . . . , k ), 3. die Variablenbelegung für die Knotenmengen aller Zwischengraphen Hi,j (i = 0, . . . , k und j = 1, . . . , 4).13 Der implizit beschriebene Verizierer für die PCP-Konstruktion in [Din05] führt folgendes Protokoll aus: • Bilde den Bedingungsgraphen • wähle eine zufällige Bedingung Gk , c ∈ Ck , die von einer Kante {uk , vk } getragen wird, • stelle den Schaltkreis D • frage die Belegungen σ(uk ) • werte den Schaltkreis • akzeptiere, falls auf, der die Erfüllbarkeit von und σ(vk ) D(σ(uk ), σ(vk )) D(σ(uk ), σ(vk )) = 1 c testet, im Beweis ab, für die Bedingung c aus, ist, und lehne sonst ab. n · poly log n, da S(Gk ) = Gk auszuwerten, baut der Verizierer den ganzen Graphen Gk und S(Gk ) = poly log n. Im nächsten Kapitel modi- Die Laufzeit dieses Verizierers ist mindestens n · poly log n. Um eine Bedingung in zieren wir diese Konstruktion, um einen Verizierer mit polylogarithmischer Laufzeit zu erhalten. Ein solcher Verizierer kann nicht den ganzen Graphen Gk bauen. Stattdessen konstruiert er den Schaltkreis D einer Bedingung c ∈ Ck mit Informationen (involvierten Knoten) aus einem polylogarithmisch groÿen Teilgraphen von Gk . 13 Diese Graphen stammen aus der iterativen Anwendung der Prozedur zur Ausdehnung der Erfüllbarkeitslücke und werden im nächsten Kapitel formal deniert. 52 Kapitel 4 Hybrider PCP-Verizierer mit polylogarithmischer Laufzeit Unser Ziel in diesem Abschnitt ist der Entwurf eines Verizierers mit der selben Anfragekomplexität und Zufälligkeit wie [Din05], der aber eine polylogarithmische anstatt polynomielle Laufzeit hat. Wir optimieren also die drei wichtigsten Parameter r = log n + O(log log n), q = O(1) und T = poly log n des Verizierers in einer durch vorhergehende Arbeiten unerreichten Weise. Wir beweisen den folgenden Hauptsatz: Satz 1.8 Für jedes NP-vollständige Problem gibt es einen PCP-Verizierer mit Zufälligkeit r = log n + O(log log n), Anfragekomplexität q = O(1), Beweislänge S = n · poly log n, Korrektheit s = 1/2, Vollständigkeit c = 1 und Laufzeit T = poly log n. Dazu gehen wir von der in Abschnitt 3.3.1 vorgestellten hybriden Konstruktion [Din05] aus. Die Grundidee ist die Bedingungsgraphen derart zu strukturieren, dass der Verizierer einen Teilgraphen bilden kann, der einerseits genügend Informationen enthält (um die Korrektheit zu gewährleisten) und anderseits klein genug ist, so dass der Schaltkreis für eine Bedingung in polylogarithmischer Zeit aufzustellen und auszuwerten ist. In Abschnitt 4.1 stellen wir den Verizierer und sein Protokoll vor. In Abschnitt 4.2 untersuchen wir die Strukturierung des Beweises, die eine polylogarithmische Laufzeit ermöglicht. In Abschnitt 4.3 entwerfen wir eine Knotenadressierung, die auf der eben genannten Struktur basiert und eine implizite Kodierung der Bedingungen induziert. Ferner zeigen wir, wie sich die Verikationsaufgabe auf die Berechnung von Knotenadressen reduzieren lässt. In Abschnitt 4.4 analysieren wir die Parameter des resultierenden Verizierers, insbesondere seine Laufzeit. 53 4.1 Aufbau des Verizierers Bevor wir mit dem Entwurf unseres Verizierers beginnen, vereinbaren wir einige Notationen, die den Entwurf und die Analyse erleichtern werden. In Abschnitt 4.1.2 präsentieren wir dann das Protokoll zur Verikation von 3SAT und stellen den Schaltkreis des Verizierers in Abschnitt 4.1.3 auf. 4.1.1 Notationen Die Prozedur zur Verdopplung der Erfüllbarkeitslücke wenden wir iterativ k := O(log log n) Mal an, bis wir den Graphen Gk erhalten. Wir brauchen eine einheitliche Notation für die Zwischengraphen, die gebildet werden. In Algorithmus 1 (G 7→ pow(G)) gehen wir von einem Bedingungsgraphen G H1 bis H4 . Jeder Graph entspricht einer Operation auf Bedingungsgraphen: H1 entsteht durch Knoten-Duplizierung, H2 durch Expandisierung, H3 durch Powering und H4 := pow(G) durch Komaus und konstruieren Graphen position. In Algorithmus 2 (PCP-Beweis nach [Din05]) gehen wir von einer 3-SAT Instanz Φ aus, die wir in eine Bedingungsmenge Ψ überführen (PCP-Anwendung + nach [BGH 05]). Durch Aufblähung der Variablen erhalten wir die Bedin- Ψ0 und durch anschlieÿende Komposition mittels P0 den Bedingungsgraphen G0 . Von G0 ausgehend überführen wir in der i-ten Iteration den Graphen Gi−1 in Gi := pow(Gi−1 ) für i = 1 bis k . Wir bezeichnen mit Hi,0 den Graphen Gi−1 , mit Hi,1 , Hi,2 , Hi,3 und Hi,4 = Hi+1,0 = Gi die entsprechenden Zwischengraphen. Es bezeichne Vi,j , Ei,j bzw. Ci,j die Knoten-, Kanten- bzw. Bedingungsmengen der Graphen Hi,j für i = 1, . . . , k − 1 und j = 0, . . . , 4. Für die in der i-ten Iteration eingeführten BedingungsmenId und C void führen wir auch entsprechende Indizes i. Für den letzgen C ten Graphen Gk = Hk,4 brauchen wir keine doppelte Indizierung, da keine Operationen weiter ausgeführt werden. Wir setzen Gk := h(Vk , Ek ), Σk , Ck i. gungsmenge Abbildung 4.1 skizziert die Konstruktionsvorschrift dieser Graphen. Wie in der Einleitung angedeutet, bildet der Verizierer nur einen Teilgraphen von Gk . Dieser Teilgraph wird mit einer zu aufgestellt. Es bezeichne e i,j H Gk analogen Konstruktionsvorschrift die entsprechenden Teilgraphen von Hi,j , die vom Verizierer gebildet werden. PCP-Anwendung P von R = log n + O(log log n), eine Anfragekomplexität Q = poly log n und eine Laufzeit T = poly log n hat. Sei Γ(P) die Menge R a der möglichen Zufallszeichenketten für P . Es gilt: |Γ(P)| = 2 := n·(log n) 1 a 2 und Q := (log n) für Konstanten a1 und a2 . Die PCPP-Anwendung P0 aus Q Abschnitt 3.3.4 (Reduktion des Alphabets von {0, 1} auf Σ0 ) und die PCPPDdt/2 e auf Σ ) können einAnwendungen (Reduktion des Alphabets von Σ0 0 heitlich betrachtet werden: Für i = 0, . . . , k setzen wir PCPP-Konstruktionen Aus Satz 2.2 in Abschnitt 2.6 wissen, wir dass die + [BGH 05] eine Zufälligkeit 54 Φ PCP-Anwendung P Ψ Aufblähung der Variablen Ψ0 PCPP-Anwendung P0 G 7→ pow(G) Gi = Hi,0 G0 Gi+1 = Hi,4 Gk Komposition (Pi ) Knoten-Duplizierung Hi,1 Hi,2 Expandisierung Hi,3 Powering Abbildung 4.1: Visualisierung des Ablaufs von Algorithmus 2. Pi voraus, die für eine Eingabe der Länge m folgende Eigenschaften aufwei- sen: • Länge • Zufälligkeit ri = O(log m) =⇒ |Γ(Pi )| = 2ri = poly m, • Korrektheit si = O(1), • Anfragekomplexität • Laufzeit Si = poly m, qi = O(1) und Ti = poly m. PCPP-Konstruktion, die diese Anforderungen erfüllt, wird in [BGH+ 04] 1 explizit beschrieben. Vor den PCPP-Anwendungen wird jeweils die Robustization mittels ecc durchgeführt, wobei ecc ein fehlerkorrigierender Code mit linearer Distanz δ(ecc) und konstanter Rate r(ecc) ist. Für P0 ergibt sich r0 = O(log Q), da P0 Eingaben der Länge 2 · r(ecc) · Q = O(Q) hat. Für Pi (i > 0) ist m = O(1) und somit 2ri · qi = O(1). Eigentlich können wir die selbe Anfragekomplexität qi und Korrektheit si := 1/2 voraussetzen. Wir Eine 1 + Einfachere Konstruktionen werden in [PS94] und [ALM 92] implizit beschrieben 55 unterscheiden die qi nur um zu zeigen, welche PCPP-Anwendung Pi gemeint ist. In diesem Kapitel ist die Schreibweise Γ(Pi ) mit l ∈ [1..|Γ(Pi )|]. τi ∈ Γ(Pi ) eine Abkürzung von τi,l ∈ Damit ersparen wir uns weitere doppelte Indi- zierungen und betonen die Zugehörigkeit einer Zufallszeichenkette zu der PCPP-Anwendung, in der sie eingesetzt wird. Falls Zweideutigkeiten auftre- PCPP-Anwendung τi ∈ Γ(Pi ) charakte0 risiert und wird mit Pi (c, τi ) bezeichnet. Die Bedingung c ist in Ψ für P0 und in Ci,3 für Pi (i > 0). Zu jeder Zufallszeichenkette τi gehören eine groÿe 2 Variable bc (τi ) ∈ Γc (Pi ), die Anf(Pi (c, τi )) darstellt, und qi kleine Variablen xj , die jeweils ein Bit aus Anf(Pi (c, τi )) darstellen. ten können, werden wir die Notation Pi c ist durch eine Bedingung Die τi,l (|V (Hi,2 )|, d1 , λ1 )-Expandergraphen, i-ten benutzen. Jede und eine Zeichenkette die im Expandisierungsschritt der Iteration angewandt werden, bezeichnen wir mit und die Schranke λ1 Expi . Der Grad d1 für den zweiten Eigenwert sind die universellen Kon- stanten, die in Abschnitt 3.2.2 deniert wurden. Die Expandergraphen, die bei der Knoten-Duplizierung erzeugt werden, bezeichnen wir weiterhin mit X(dv ) für Knoten v ∈ Vi,0 mit Grad Nachbarschaft eines Knotens {w ∈ V | {v, w} ∈ E}. v dv in Hi,0 . NG (v) die G = (V, E), d.h NG (v) := Ferner bezeichne in einem Graphen Um die Indizierung zu vereinfachen, werden wir an manchen Stellen den Index i, j eines Knotens in Hi,j weglassen. Aus dem Kontext wird ersichtlich sein, um welche Graphen es sich handelt. 4.1.2 Das Protokoll des Verizierers Um einen polylog-Verizierer zu erhalten, werden wir den Schaltkreis für eine Bedingung Teilgraphen von • c ∈ Ck bilden und auswerten, aber wir werden nur einen Gk betrachten. Dabei müssen wir Folgendes beachten: Der Verizierer muss für die Bedingung c den selben Schaltkreis bilden, c bilden den ein uneingeschränkter Verizierer bzw. der Beweiser für würde. • Die Korrektheit muss erhalten bleiben: Ein unehrlicher Beweiser darf durch die Einschränkung des Verizierers keinen Vorteil erhalten, um die Erfüllbarkeit unerfüllbarer Bedingungen vorzutäuschen. Wir gliedern die Eingabe des PCP-Verizierers in zwei Teile: einen explizi- ten und einen impliziten Teil. Die explizite Eingabe speziziert die Länge der zu verizierenden 3-SAT-Instanz Φ. n Die implizite Eingabe besteht aus dem Beweis und dem Theoremkandidaten, welcher eine angeblich Φ erfül- lende Variablenbelegung ist. Auf diesen Teil der Eingabe hat der Verizierer 2 Anf(Pi (c, τi )) ist die Menge der qi angefragten Bits bei der Anwendung 56 Pi (c, τi ) nur einen Orakel-Zugri: Die Belegung von jedem Bit kann im Beweis gelesen werden, wird aber in der Anfragekomplexität des Verizierers gerechnet. Diese Einteilung der Eingaben entspricht eigentlich der Einteilung für einen PCPP-Verizierer. Der Theoremkandidat wird aber mit einem fehlerkorri- x∈L und x ∈ / L ist dann äquivalent zu der Unterscheidung zwischen x ∈ L und x mindestens δ -weit von L. Somit stimmen die Begrie PCP und PCPP in gierenden Code mit Distanz δ kodiert. Die Unterscheidung zwischen unserem Kontext überein. x, die Φ erfüllen soll. Der Beweis x erfüllt wird, und besteht aus einer Variablenbelegung x) für die Knotenmenge Vk , die alle Bedingungen in Ck Der Kandidat ist eine Variablenbelegung bezeugt, dass σ Φ von (Erweiterung von erfüllen soll. Eigentlich sollte der Beweis Auswertungstabellen für die Bedingungen in Ck enthalten, da aber der Beweiser in jedem Fall behaupten würde, dass alle Bedingungen erfüllt sind, können wir ihm und uns (als Verizierer) diese Tabellen ersparen. Der Beweis enthält auch Hilfstabellen für die Belegungen der Knotenmengen Vi,j (i = 1, . . . , k und j = 0, . . . , 4), die im Algorithmus 2 gebildet werden. Ck zu konstruieren, die eine gewisse c ∈ Ck soll durch einen Schaltkreis mo- Unser Ziel ist eine Bedingungsmenge Lokalität aufweist: Jede Bedingung delliert werden, der von einer polylogarithmischen Anzahl von Variablen abhängt, und durch die Abfrage von konstant vielen Bits in polylogarithmischer Zeit verizierbar sein. Hier ist es wichtig, zwischen der Variablenanzahl des Schaltkreises, und der Anfragekomplexität zu unterscheiden. Die Variablenanzahl bestimmt die Gröÿe des Schaltkreises und beeinusst seine Laufzeit. Es wird aber nicht die Belegung aller Variablen angefragt, sondern nur die uk und vk . Dabei sind uk und vk die Endknoten c vom Verizierer berechnet wurde. Wir könpoly log n → ΣO(1) vergleichen: einer Projektion Σ Belegung von zwei Variablen der Kante, deren Bedingung nen diesen Sachverhalt mir Der Schaltkreis für diese Projektion hat eine polylogarithmische Eingabe, braucht aber nur O(1) Werte zu berechnen. An dieser Stelle müssen wir die Entstehungsgeschichte einer Bedingung in Ck untersuchen. Bis jetzt haben wir nämlich nur die Überführung von Bedin- gungsgraphen in andere Bedingungsgraphen betrachtet. Wir haben also ganze Bedingungsmengen auf andere abgebildet. Nun müssen wir untersuchen, wie der Schaltkreis einer einzigen Bedingung aus rithmischer Verizierer V Ck in Algorithmus 2. Aber statt den ganzen Graphen V einen Teilgraphen fk G aussieht. Unser polyloga- hat ein ähnliches Protokoll wie Dinurs Verizierer Gk zu konstruieren, bildet und konstruiert aus diesem Teilgraphen den Schalt- kreis einer einzigen Bedingung aus Ck . Im folgenden Protokoll interessieren wir uns zunächst nur für die Variablen (Knoten) der zu bestimmenden Bedingungen und für den Ablauf des Verizierers. Die Schaltkreise für diese Bedingungen werden im nächsten Abschnitt 4.1.3 erläutert. 57 1. Der erste Schritt ist die PCP-Anwendung, die der Beweiser B ausführt, ≥ 1/poly log n zu um eine Bedingungsmenge mit Erfüllbarkeitslücke erhalten. Dinur geht von der Konstruktion [BS05] aus, welche einen Verizierer mit polynomieller Laufzeit erzeugt. Wegen der angestrebten polylogarithmischen Laufzeit des Verizierers betrachten wir eine ähnliche PCP-Konstruktion + [BGH 05], die jedoch die Laufzeit des Ve- rizierers polylogarithmisch beschränkt (siehe Satz 2.2 in Abschnitt 2.6). Durch die Wahl einer Zufallszeichenkette τ ∈ Γ(P) V eine BeAnf(P(τ )) := wählt dingung c(τ ) ∈ Ψ aus, die über die Variablenmenge {x1 , . . . , xQ } deniert ist, wobei Q = poly log n die Anfragekomplexität von P ist. Der Schaltkreis für c(τ ) kann in polylogarithmischer Zeit aufgestellt werden. 2. Der nächste Schritt ist die Aufblähung der Variablen. Der Verizierer bildet eine neue Variable b(τ ) über dem Alphabet {0, 1}Q , die die Anf(P(τ )) darstellt. Durch die Wahl einer Variable xj ∈ Anf(P(τ )) erhält V eine Bedingung c(τ, j) ∈ Ψ0 , die über der Kante {b(τ ), xj } deniert ist. Die Belegung der kleinen Variable xj Q wird kanonisch in das groÿe Alphabet {0, 1} eingebettet. Variablenmenge c(τ, j) wird mittels eines fehlerkorrigierenden Codes ecc PCPP-Verizierer P0 verwendet (Komposition). Statt den ganzen Teilgraphen Gc zu bilden, der durch die Anwendung von P0 auf c(τ, j) mit allen möglichen Zufallszeichenketten aus Γ(P0 ) entsteht, wählt V eine zufällige Zeichenkette τ0 ∈ Γ(P0 ). Das Ergebnis ist eine Bedingung c(τ, j, τ0 ), die eine groÿe Variable b(τ0 ) mit der Variablenmenge Anf(P0 (c(τ, j), τ0 )) ver3 bindet. Um eine zwei-Variablen-Bedingung zu erhalten, wählt V zufällig einen Index l ∈ [1..q0 ], der eine Variable xl ∈ Anf(P0 (c(τ, j), τ0 )) 3. Die Bedingung kodiert (Robustization) und als Eingabe für den speziziert. := c(τ, j, τ0 , l) ∈ {b(τ0 ), xl } deniert ist. Auf diese Bedingung wer(G 7→ pow(G)) iterativ anwenden. Wir erhalten am Ende dieses Schrittes eine Bedingung c0,0 G0 = H0,0 , die über den wir den Schritt Der Einfachheit halber identizieren wir Teilgraphen im Folgenden mit ihren Kantenmengen. Die Wahl einer Kante Bedingung cj , ej induziert gleichzeitig die Wahl einer {u, v} die Kante, die c0,0 trägt. Nun wiederholt der k (Iterationstiefe in Algorithmus 2) Folgendes:4 3 4 e0,0 := i = 1 bis die über die Endknoten dieser Kante deniert ist. Sei Da die Bedingung c(τ, j) Verizierer für festgelegt ist, entfällt der Index in b(τ0 ) = bc(τ,j) (τ0 ). Um die Lesbarkeit zu erhöhen, verzichten wir teilweise in der folgenden Aufzählung auf die doppelte Indizierung der Kanten und Knoten. 58 • Knoten-Duplizierung: Wähle eine Kante e1 := {u1 , v1 } im Teilgraphen e i,1 := ei,0 ∪ X(du ) ∪ X(dv ). H • Expandisierung: Wähle eine Kante e i,2 := e2 = {u2 , v2 } im Teilgraphen H e1 ∪ NExpi (u1 ) ∪ NExpi (v1 ) ∪ {u1 , u1 } ∪ {v1 , v1 }. • Powering: Wähle eine Kante Ei,2 Pfaden in besteht, die e3 e2 im Teilgraphen enthalten. Um e i,3 , H e3 tV der aus allen zu erhalten, geht folgendermaÿen vor: 1. Wähle s ∈ [0..t − 1].5 2. Führe in s und sei Ei,2 ab u2 einen zufälligen Spaziergang Π(u2 ) der Länge u3 der Endknoten von Π(u2 ). 3. Führe in Ei,2 t−s−1 und 4. Setze Ei,2 v2 einen zufälligen Spaziergang Π(v2 ) sei v3 der Endknoten von Π(v2 ). ab e3 := {u3 , v3 }, wobei e3 dem der Länge t-Pfad (Π(u2 ), e2 , Π(u3 )) in entspricht. (Siehe Abbildung 4.2) u3 v3 Π(u2 ) Π(v2 ) e3 u2 v2 Abbildung 4.2: Bestimmung von • Komposition: Wähle eine Kante • Setze ei+1,0 := e4 , u := u4 und v := v4 e Hi+1,1 := ei+1 ∪ X(du ) ∪ X(dv ) fort. Hk,4 = Gk , d.h. durch zufällige Spaziergänge in k und fahre mit dem Graphen e k,4 ⊂ V also eine Kante ek = {uk , vk } ∈ H σ(uk ) und σ(vk ) im Beweis ab und wertet Iterationen wählt fragt die Werte von √ e2 in ihrem √ mittleren Segment enthalten, t, t/2 + t] vor. Diese Einschränkung wird In [Din05] werden nur Pfade betrachtet, die e2 Ei,2 . e i,4 . Diee4 = {u4 , v4 } im Teilgraphen H ser Teilgraph resultiert aus der PCPP-Anwendung Pi auf die mittels eines fehlerkorrigierenden Codes kodierte Bedingung c3 , welche von e3 getragen wird. Für die Wahl von e4 wählt V ein zufälliges τi ∈ Γ(Pi ) und einen Index li ∈ [1..qi ] eines Bits in Anf(Pi (c3 , τi )), wobei qi die Anfragekomplexität von Pi ist. Am Ende der 5 e3 kommt an einer Stelle s + 1 ∈ [t/2 − aber in [Rad05] aufgehoben. 59 dann den Schaltkreis D(σ(uk ), σ(vk )) aus. Im nächsten Abschnitt untersuD, der die Erfüllbarkeit von c := cek ∈ Ck testet. Die chen wir den Schaltkreis Knotenadressierung und die Berechnung der Kanten, die im obigen Protokoll bestimmt wurden, werden in Abschnitt 4.3 erläutert. 4.1.3 Bausteine des Schaltkreises Zuerst entwerfen wir die Bausteine, aus denen der Schaltkreis D des Veri- zierers besteht. Der Verizierer bestimmt eine Reihe von Schaltkreisen, deren Kombination D liefert. An dieser Stelle gehen wir davon aus, dass V die Ein- gabe jeder Bedingung bestimmen kann und untersuchen den Aufwand der einzelnen Berechnungen. Die Aufgabe des Verizierers besteht darin, einen Schaltkreis zu entwerfen, c ∈ Ck testet. Der Schaltkreis D entPCPP-Anwendung Pk . Dafür muss die Eingabe von Pk , nämlich eine Bedingung ck,3 ∈ Ck,3 , bekannt sein. Die Bedingung ck,3 ist wiederum eine Konjunktion von den Bedingungen aus Ck,2 , die durch die t/2-Nachbarschaften von uk,3 und vk,3 in Vk,2 induziert werden, wobei ck,3 von der Kante {uk,3 , vk,3 } getragen wird. Diese Bedingungen aus Ck,2 lassen sich in zwei Sorten gliedern: der die Erfüllbarkeit einer Bedingung spricht der Ausführung der letzten • Triviale, immer erfüllte Bedingungen aus Kanten Expanderkanten aus • Bedingungen aus oder Selbstschleifen sind. die sich auch in zwei Klassen einteilen lassen: Gleichheitsbedingungen aus für Ck,1 , Expk Ckvoid , falls die entsprechenden CkId für die Expanderkanten aus X(dv ) v ∈ Vk,0 . bi,0 , Ck,0 = Ck−1,4 für die externen Kanten ebi,0 ∈ E Kanten ei,0 ∈ Ei,0 = Ei−1,4 sind. Bedingungen aus die Kopien von G0 erreic0 ∈ C0 resultiert von der PCPP-Anwendung P0 auf 0 = einer Bedingung c(τ, j) ∈ Ψ . Diese Bedingung ist die Konjunktion c(τ ) ∧ c einer Bedingung c(τ ) ∈ Ψ, die der PCP-Anwendung P auf der 3-SAT-Formel Φ entspricht, und einer Gleichheitsbedingung c= (b(τ )↓j, xj ) ∈ Ψ= zwischen der Projektion b(τ )↓j der groÿen Variable auf die j -te Komponente und der = kleinen Variable xj . Dabei bezeichne Ψ die Menge dieser Gleichheitsbedingungen für alle τ ∈ Γ(P) und j ∈ [1..Q]. Nun fahren wir mit dieser Reduktion fort, bis wir die Ebene von chen. Eine Bedingung c ∈ Ck auf eine Menge von Be= Bedingungsmengen Ci,j ∪ Ψ ∪ Ψ zurückführen. Auf diese Art können wir die Bedingung dingungen aus den früheren Unser Ziel ist diese Bedingungsmenge ezient zu ermitteln und daraus den Schaltkreis für c aufzustellen. 60 Zunächst werden wir die Arten der Bedingungen festlegen und den Aufwand für ihre Berechnung untersuchen: 1. Ψ: Die PCP-Anwendungen aus [BGH+ 05] auf Φ ergeben Bedingungen c(τ ), deren Schaltkreise P(τ ) in polylogarithmischer Zeit konstruierbar sind (siehe Abschnitt 2.6). 2. Ψ= : Die Projektion der groÿen Variable b(τ ) auf das j -te Bit kann in poly log n Zeit veriziert werden: Da |b(τ )| = poly log n gilt, braucht der Verizierer O(log log n) Zeit, um den Index j zu berechnen und in b(τ ) das j -te Bit zu bestimmen. Die kleine Variable xj wird bei der Anwendung VRS (τr ) des Basis-Verizierers VRS angefragt (τr ∈ NΓ (τ )) und kann auch in polylogarithmischer Zeit berechnet werden (siehe Abschnitt 2.6). Der Vergleich von b(τ ) ↓ j mit xj kann in konstanter Zeit ausgeführt werden. 3. PCPP-Anwendung P0 : Der Schaltkreis für eine Bedingung c0 ∈ C0 ist eine Konjunktion P0 (c(τ, j0 ), τ0 , l) := P0 (c(τ, j0 ), τ0 ) ∧ c= (b(τ0 )↓l, xl )). • P0 (c(τ, j0 ), τ0 ) ist das Ergebnis einer PCPP-Verikation, deren Schaltkreis polynomiell in der Länge der Eingabe ist. Wie wir in Abschnitt 3.3.4 gesehen haben, ist die Länge der Eingaben von P0 polylogarithmisch und somit der Aufwand für P0 auch poly- logarithmisch. • c= (b(τ0 )↓l, xl ) ist eine Gleichheitsbedingung mit xl ∈ Anf(P0 (c(τ, j0 ), τ0 )). = Die Bedingung c kann in konstanter Zeit ausgeführt werden, da |Σ0 | = q0 = O(1), wobei q0 = |Anf(P0 (c, τ0 ))| die Anfragekomplexität von P0 ist. 4. CiId : Die Gleichheitsbedingungen überprüfen, ob die Endknoten einer Kante die selbe Belegung haben und können ebenfalls in konstanter Zeit ausgeführt werden, da wir Knotenmengen über konstante Alphabete betrachten. 5. Civoid : Diese Bedingungen sind immer erfüllt und verursachen daher einen konstanten Aufwand. Sie werden mit einem Schaltkreis D1 mo- delliert, dessen Ausgang immer 1 ist. 6. PCPP-Anwendungen Pi : Diese Schaltkreise sind analog zu den kreisen P0 (c(τ, j0 ), τ0 , l) konstruiert. Wir erhalten Schaltkreise Schalt- Pi (ci,3 , τi , l) := Pi (ci,3 , τi ) ∧ c= (b(τi )↓l, xl ) mit ci,3 ∈ Ci,3 , τi ∈ Γ(Pi ), l ∈ [1..qi ] und xl ∈ Anf(Pi (ci,3 , τi )). Der Aufwand für die Auswertung eines Schaltkreises ist polynomiell in der 61 Länge der Eingabe. Da für die Auswertung von Wir haben gesehen, wie V |Σi,3 | = Ddt/2e = O(1) gilt, Pi gleich poly Dt = O(1). eine Bedingung c ∈ Ck ist der Aufwand in eine Menge Bed(c) von Bedingungen aus den vorigen Bedingungsgraphen zerlegen kann. Der Schalt- D ergibt sich also aus der Kombination von mehreren Schaltkreisen: Die 0 Schaltkreise von Ψ sind die Eingaben für P0 und die Schaltkreise für Ci,3 sind die Konjunktion von Schaltkreisen für Ci,2 und sind selber die Eingaben von Schaltkreisen für Pi , usw. Der Schaltkreis für die Bedingung c besteht also aus der Verschachtelung der Schaltkreis für Bed(c). kreis Wichtig an dieser Stelle ist nochmal den Unterschied zwischen der Variablenanzahl des Schaltkreises und der Anfragekomplexität des Verizierers: Der poly log n Variablen deniert werden. Für seine Auswertung werden aber nur O(1) Anfragen benötigt. Dieser Sachverhalt ist wie vorher erläutert mit einer Extraktion von O(1) Werten aus polylogarithmisch groÿen Menge. Nun müssen wir untersuchen, wir V die Bedingungsmenge Bed(c) für ein zufälliges c ∈ Ck gemäÿ dem Protokoll in Abschnitt Schaltkreis soll über 4.1.3 ezient bestimmen kann. Dafür bestimmen wir zuerst die Anforderungen an die Struktur des Beweises, die eine eziente (polylogarithmische) Verikation ermöglichen. 4.2 Strukturierung des Beweises Um einen polylog-Verizierer zu erhalten muss eine Fülle von Teilaufgaben V zufällige Kanten in den e i,j . Die Wahl einer Kante ist äquivalent zu der zufälligen FestH ezient gelöst werden. In seinem Protokoll wählt Teilgraphen legung eines Knotens und der zufälligen Bestimmung eines seiner Nachbarn. Die Bestimmung eines Knotens besprechen wir in Abschnitt 4.3, in dem wir die Knotenadressierung festlegen. An dieser Stelle lösen wir folgende Aufgaben: • Wie kann die Nachbarschaft G • NG (v) eines Knotens in einem Graphen ermittelt werden? NG (v) so geordnet werden, dass v (l ∈ [1..|NG (v)|]) bestimmen können? Wie kann wir den l -ten Nachbarn von 4.2.1 Nachbarschaft eines Knoten Die Bestimmung der Nachbarschaft eines Knotens hängt von den Teilgraphen ab, die in einem Graphen auftreten. In unserem Kontext gibt es verschiedene Arten von Teilgraphen, die wir jetzt im Einzelnen betrachten werden: 62 Ψ: Wie in Abschnitt 2.5 erläutert, ist die AnfragekomP von [BGH+ 05] gleich Q = q(VRS ) · dRam := (log n)a2 für eine Konstante a2 , wobei dRam = poly log n der Grad des Ramanujan-Expandergraphen Γ = G(Γ(P)) und q(VRS ) = O(1) die Anfragekomplexität des Basis-Verizierers VRS ist. 1. Nachbarschaft in plexität des Verizierers Γ hat 2R = n · (log n)a1 Knoten, die Γ(P) darstellen, und · dRam )/2 Kanten. Die Konstanten a1 und a2 kann der Verizierer aus n gemäÿ einer Vereinbarung mit dem Beweiser errechnen. Die Kanten verbinden Zufallszeichenketten von Γ unter einander. An dieser Der Graph (2R Stelle treten die angefragten Bits noch nicht auf. Sie sind implizit in- Anf(VRS (τr )) duziert, als Elemente von diese Bits erst in Da Γ Ψ0 für τr ∈ NΓ (τ ). Explizit treten auf. als Cayley-Graphen implementiert werden kann, ist die Nach- barschaft eines Knotens in Generatormenge Gen(Γ) Ψ durch die Angabe der Q-elementigen festgelegt. Wie wir in Abschnitt 1.2.2 gese- hen haben, kann die Nachbarschaft in einem Cayley-Graphen in polylogarithmischer Zeit ermittelt werden. Der Verizierer verfüge dafür über eine Abbildungsvorschrift (d, n) 7→ {h1 , . . . , hd }, die für einen d-regulären Cayley-Graphen G über n Knoten die Generatormenge Gen(G) = {h1 , . . . , hd } ermittelt. Die Abbildungsvorschrift kann mit dem Beweiser vereinbart werden und als Teil der expliziten Eingabe gegeben werden. 2. Nachbarschaft in Ψ0 : neue groÿe Variable Für jede Zufallszeichenkette b(τ ) τ ∈ Γ(P) wird eine eingeführt. In diesem Abschnitt setzen wir Anf(VRS (τr )) über τr adressierbar sind. Diese Annahme ist berechtigt, da |Anf(VRS (τr ))| = q(VRS ) = O(1) gilt. Dadurch können diese Bits einfach bestimmt werden, wenn τr gegeben ist. Deswegen führen wir hier eine neue Notation ein: T (τr ) := Anf(VRS (τr )). Die Nachbarschaft in Ψ0 eines Knotens xj ∈ T (τr ) ist durch die Nachbarschaft von τr in Γ bestimmt. voraus, dass die Bits von b(τ ) ist ihre hitter-Menge, die durch die Ramanujanτ induziert wird, d.h. [ NΨ0 (b(τ )) = T (τr ) (4.1) Die Nachbarschaft von Nachbarschaft NΓ (τ ) von τr ∈NΓ (τ ) xj ∈ T (τr ) können wiederum nur in den hitter-Mengen der Knoten auftreten, die in NΓ (τr ) liegen. Sie sind mit dRam groÿen Variablen verbunden, die b(τs ) für τs ∈ NΓ (τr ) darstellen. An die- Kleine Variablen ser Stelle erinnern wir an die Bijektion zwischen den groÿen Variablen b(τ ) ∈ V (Ψ0 ) = Γ(P) und den Zufallszeichenketten τ ∈ Γ(P). Wir kön0 nen also die Nachbarschaften in Ψ mit den Nachbarschaften in Γ iden0 tizieren, obwohl V (Ψ ) aus kleinen Variablen xj ∈ T (τr ) und groÿen 63 Variablen b(τ ) besteht und Γ(P) aus Zufallszeichenketten. Abbildung 4.3 zeigt anhand eines einfachen Ramanujan-Graphen vom Grad 3 die Γ und den Nachbarschaften Ψ0 . Die Knotenanzahl und die Kantenanzahl haben sich verdoppelt: Zum Beispiel nden wir die Verbindung zwischen τ3 und τ4 (dick an0 gezeichnet in Γ) in den Kanten {b(τ3 ), T (τ4 )} und {b(τ4 ), T (τ3 )} in Ψ wieder. Wieder ist q(VRS ) = 1 und T (τr ) eine 1-elementige KnotenBijektion zwischen den Nachbarschaften in in menge. b(τ4 ) T (τ1 ) τ1 b(τ1 ) τ4 b(τ3 ) τ3 T (τ4 ) τ2 T (τ3 ) T (τ2 ) b(τ2 ) Ψ0 Γ Abbildung 4.3: Bijektion zwischen den Nachbarschaften in Γ und in Ψ0 . G0 : wird zusammen mit der Nachbarschaft in Vi,4 = Vi+1,0 untersucht, da beide Graphen das Ergebnis einer PCPP-Anwendung 3. Nachbarschaft in sind. Vi,1 : Die Kanten in Ei,1 sind entweder externe Kanten, Ei,0 sind, oder Kanten aus den (dv , d0 , λ0 )Expandergraphen X(dv ) für Knoten v ∈ Vi,0 . Jeder Knoten in Vi,1 hat genau einen externen Nachbarn und d0 Expandernachbarn. Letztere lassen sich mittels der Generatormenge von X(dv ) berechnen. Dafür muss der Verizierer den Grad dv von v berechnen. Externe Nachbarn werden wie in Vi,0 = Vi−1,4 ermittelt, wie wir in Kürze sehen werden. 4. Nachbarschaft in die Kopien von Kanten aus 5. Nachbarschaft in Vi,2 : An dieser Stelle werden zu den Knoten von Vi,1 Selbstschleifen und die Kanten eines (|Vi,1 |, d1 , λ1 )-Expandergraphen Expi Expi eingefügt. muss V 6 Für die Ermittlung der Nachbarn eines Knotens in die Kardinalität |Vi,1 | berechnen können. Aus Abschnitt 3.2 wissen wir: (3.13) |Vi,1 | = 2|Ei,0 | = 2C1 · |Ei−1,0 | = 2C1i · |E0 |. 6 Abbildung 3.2 in Abschnitt 3.2.2 zeigt die Struktur des Graphen 64 V2 . 2r0 groÿen Variablen b(τ0 ) mit q0 7 kleinen Variablen verbunden ist. Da r0 = O(r(ecc) · Q) gilt, kann der Verizierer |E0 | aus Q, r(ecc) und q0 berechnen. Somit kann V mit Gen(Expi ) die Nachbarschaft in Expi und mit den Vorschriften für Vi,0 und Vi,1 die Nachbarschaft in Vi,2 ermitteln. Es gilt |E0 | = 2r0 · q0 , Vi,3 : 6. Nachbarschaft in v ∈ Vi,3 da jede der Die Bestimmung der Nachbarn eines Knotens entspricht der Berechnung aller ausgehen. Die Nachbarn von 7. Nachbarschaft in Vi,4 : in Ei,2 , die aus v sind dann die Endknoten dieser Pfade. Wie wir in Abschnitt 3.2.4 gesehen haben, wen- [u] ∪ [v] deniert sind, wobei u und v Knoten in Vi,3 sind und [u] bzw. [v] die Kodierung via ecc von u 8 bzw. v bezeichnet. Für jede Bedingung c ∈ Ci,3 erzeugt der Beweiser einen Graphen Gc = h(Vc , Ec ), Σ0 , Cc i, der alle Anwendungen Pi (e c, τi ) für τi ∈ Γ(Pi ) darstellt. Da e c eigentlich nur die Kodierung von c ist, setzen wir der Einfachheit halber e c := c. den wir Pi v t-Pfade auf Bedingungen B die Menge O(1)). Diese Bits Sei Hilfsvariablen ist e c, die über [u] ∪ [v] (m = r(ecc) · log |Σ3 | = Pi (c, ·) dar. Die Menge der Xc := Γc (Pi ) ∪ Pc , wobei die Menge Pc die Bits des der 2m Bits von stellen die Eingabe von Beweises bezeichnet und [ Γc (Pi ) = Anf(Pi (c, τi )) = τi ∈Γ(Pi ) Die Knotenmenge B := [ Vi,4 [ bc (τi ). τi ∈Γ(Pi ) B ∪ P ∪ Γ(Pi ), [ Γ(Pi ) := Γc (Pi ). besteht aus den Mengen [v], P := v∈Vi,3 [ Pc c∈Ci,3 und wobei c∈Ci,3 Cc , die Bedingungsmenge des Graphen Gc , der aus der Pi auf c resultiert. Eine Bedingung c4 ∈ Cc ⊂ Ci,4 verbindet einen Knoten bc (τi ) ∈ Γc (Pi ) mit einem Knoten xl ∈ B ∪ Pc . Da die Anfragekomplexität von Pi gleich qi ist, liefert jede Wahl von τi ∈ Γ(Pi ) qi Bedingungen P(c, τi , xl ) mit xl ∈ Anf(P(c, τi )) und l ∈ [1..qi ]. Betrachten wir Anwendung von Wir wollen bestimmen, wie die Nachbarschaft eines Knotens w ∈ Vi,4 ermittelt werden kann. Wir unterscheiden drei Fälle: (a) w ∈ Γc (Pi ): Anf(Pi (c, τi )) darstellt. Die w ist eine groÿe Variable bc (τi ), die τi ∈ Γ(Pi ) und eine Bedingung c ∈ Ci,3 Nachbarn von w sind die qi Bits aus B ∪ Pc in Der Knoten für ein Anf(Pi (c, τi )). 7 8 Siehe Abschnitt 4.1.1. Dabei ist Rate ecc ein fehlerkorrigierender Code mit linearer Distanz δ(ecc) und konstanter r(ecc). 65 (b) w ∈ Pc : Der Verizierer simuliert alle PCPP-Anwendungen Pi (c, τi,r ) τi,r ∈ Γ(Pi ) und vermerkt, bei welchen Anwendungen w gelesen wurde. Die Simulation einer PCPP-Anwendung beinhaltet für alle nicht das Lesen der Bits, sondern nur die Bestimmung der anzufragenden Bits. Diese Unterscheidung ist entscheidend für die angestrebte konstante Anfragekomplexität des resultierenden Verizierers. Somit erhält V Diese groÿen Variablen sind die (c) b(τi,r ) mit w ∈ Anf(Pi (c, τi,r )). Nachbarn von w in Vi,4 . eine Liste der w ∈ B : Die Überlegung ist analog zum Fall w ∈ P , aber hier müsPCPP-Anwendungen betrachtet werden. Die Menge B ist die Kodierung der Endknoten u und v einer Kante {u, v}, über die eine Bedingung c deniert ist. Ohne Einschränkung sei w ∈ [u]. Der Verizierer simuliert alle möglichen PCPP-Anwendungen Pi (cm , τi,r ), in denen [u] als Eingabe auftritt. Dabei werden die Bedingungen cm über Bitmengen [u] ∪ [um ] deniert, wobei um ∈ NVi,3 (u) gilt. Der Index r durchläuft alle möglichen Zufallszeichenketten τi,r ∈ Γ(Pi ). Hier müssen wir beachten, dass jede Kante {u, um }, die eine Bedingung cm trägt, eine Menge Γcm (Pi ) groÿer Variablen und eine Menge Pcm von Beweisbits induziert. sen mehr In Abbildung 4.4 zeigen wir die Struktur eines Teilgraphen von Hi,0 , in dem der Knoten u involviert ist. Die Menge B enthält die Kodierungen von u und seinen Nachbarn u1 und u2 . Die Bedingung c1 über {u, u1 } (gestrichelte Linie) induziert einen Beweis Pc1 und eine Menge Γc1 (Pi ) groÿer Variablen bc1 (τi,r ) (analog für c2 ). Der Knoten w ist einerseits das l-te Bit in Anf(Pi (c1 , τi,r )) und 0 andererseits das l -te Bit in Anf(Pi (c2 , τi,r 0 )) (fett angezeichnete Kanten). |Γ(Pi )| = 2ri = poly log |Σ3 | = poly Dt . Insgesamt gibt es also poly Dt = O(1) PCPP-Anwendungen, in denen u involviert ist. Ein Bit aus [u] kann also von höchstens so vielen PCPP-Anwendungen gelesen werden. Nach der Simulation dieser Anwendungen kann V die Nachbarschaft von jedem Knoten in Vi,4 bestimmen. Tabelle 4.1 zeigt die zu durchlaufenden Mengen NVi,3 (u), Γ(Pi ) und [1..qi ]. Ein Kreuz in der Spalte von w bedeutet, dass w von der entsprechenden PCPP-Anwendung Der Grad von u in Vi,3 ist Dt und gelesen wurde. Für die PCPP-Anwendung P0 ergibt sich eine analoge Analyse: (a) w ∈ Γ(P0 ): Groÿe Variablen b(τ0 ) haben q0 Nachbarn, die Anf(P0 (c, τ0 )) 0 für eine Bedingung c ∈ Ψ darstellen. (b) w ∈ B ∪P : Die Nachbarschaft dieser kleinen Variablen wird durch die Simulation aller PCPP-Anwendungen, die diesen Knoten enthalten können, und anschlieÿendes Vermerken der Anfragen be- 66 Γc1 (Pi ) 1 q l bc1 (τi,r ) c(τi,r , l) c1 B [u1 ] w [u] c2 P Pc1 c(τi,r0 , l0 ) [u2 ] Pc2 1 l0 bc2 (τi,r0 ) q Γc2 (Pi ) Abbildung 4.4: Struktur des Bedingungsgraphen Hi,4 NVi,3 (u) Γ(Pi ) [1..qi ] w ∈ [u] u0 τ0 l0 × u00 τ 00 l00 × ... ... ... ... um den Knoten u. Tabelle 4.1: Simulation der PCPP-Anwendungen um den Knoten u. stimmt. Der Aufwand der Berechnung ist aber nicht mehr kon- P0 polylogarithmisch groÿ ist: Die Länge L der Eingabe ist linear in der Gröÿe des Alphabets {0, 1}Q von Ψ0 , wobei Q = poly log n die Anfragekomplexität von P ist. Es erstant, da die Eingabe für gibt sich aber nur ein polylogarithmischer Aufwand: Jeder Knoten v ∈ V (Ψ0 ) hat Q Nachbarn (NΓ (v)). Ein Knoten w ∈ [v] kann also nur in Q PCPP-Anwendungen auftreten und der Aufwand jeder Anwendung ist polynomiell in der Länge der Eingabe, also auch polylogarithmisch groÿ. Insgesamt lässt sich die Nachbarschaft in G0 in Q · poly L = poly log n Zusammengefasst kann V Zeit berechnen. die Nachbarschaft von jedem Knoten bestimmen, wenn er mit dem Beweiser vereinbart, wie die Graphen gebildet werden. Für PCPP-Anwendungen muss V PCPP-Verikationen) und die- die Bestimmung der Nachbarschaften nach den eine Nebenrechnung führen (Simulation der 67 jenigen Anwendungen vermerken, die ein bestimmtes Bit lesen würden. Für die Expandergraphen X(dv ) muss V die Kardinalität des Teilgraphen ken- nen: Bei der Knoten-Duplizierung wird der Grad eines Knotens in der eben genannten Nebenrechnung ermittelt. Für die nung machen, die für jeden i ∈ [0..k] Expi s kann V eine globale Rech|Vi,1 | liefert. Nun be- die Kardinalität schäftigen wir uns mit der zweiten Frage: Welche Ordnungen sind notwendig, um die Nachbarschaften ezient zu indizieren? 4.2.2 Kanonische Ordnungen Der Verizierer muss bei der Ausführung des Protokolls aus Abschnitt 4.1.2 eine Menge von neuen Knoten bestimmen. Die Wahl einer Kante in einem Bedingungsgraphen reduzieren wir im nächsten Abschnitt 4.3 auf die Berechnung der Adresse beider Endknoten. Die Grundidee ist eine Strukturierung der Knotenmengen, die eine partielle Ordnung der Knoten ergibt: die Nach- NG (v) v in einem Graphen G ist so geordnet, dass l ∈ [1..|NG (v)|] eineindeutig einen Nachbarn w von v sowie die über die Kante {v, w} denierte Bedingung festlegt. Dafür fordern wir vom Beweiser B folgende Ordnungen zu beachten: barschaft jedes Knotens die Angabe des Indexes • Γ(P): Wir identizieren die Elemente τ von Γ(P) mit h(τ ) ∈ H des Cayley-Ramanujan-Graphen G(Γ(P)) := C(H, S), der in Abschnitt 2.5 eingesetzt wird. Dabei ist H eine |Γ(P)|elementige Gruppe und S eine d-elementige Generatormenge, wobei d := dRam der Grad von Γ ist. Diese Gruppenelemente können bijektiv auf N abgebildet werden, so dass sich eine kanonische Ordnung auf H Ordnung von den Elementen ergibt. • Anf(P(τ )): Die Wahl einer Kante in Ψ ist äquivalent τ ∈ Γ(P) (groÿe Variable b(τ )) und eines der Q Nachbarn von τ (kleine Variable xj ). Wir müssen aus τ und j die kleine Variable xj ∈ Anf(P(τ )) berechnen. Wie wir in Abschnitt 2.5 gesehen haben, ist xj ∈ T (τr ) = Anf(VRS (τr )) für τr ∈ NΓ (τ ). Wir müssen also τr berechnen und dann xj in T (τr ) adressieren. Die zweite Aufgabe ist trivial, da |T (τr )| = O(1) gilt, und T (τr ) kanonisch geordnet werden kann. Wir behandeln also die erste Aufgabe: die Bestimmung von τr Ordnung von zu der Wahl eines Bei der Berechnung von P(τ ) bestimmen wir die hitter-Menge NΓ (τ ). r das r- Diese Menge muss kanonisch geordnet werden, so dass wir aus te Element in NΓ (τ ) bestimmen können. Dies ist mit einem ezienten Cayley-Graphen wie in Abschnitt 1.2.2 möglich: Die Generatormenge S = {h1 , . . . hd } sei also so geordnet, dass r eindeutig ein Element h(r) ∈ S festlegt. Aus h(τ ) + h(r) erhalten wir ein Element h ∈ H , das wir eindeutig auf ein Element τr ∈ Γ(P) abbilden können. 68 • Ordnung von Γ(Pi ): zu der Ordnung von • Die Ordnung von Γ(Pi ) (i = 0, . . . , k ) ist analog Γ(P). P0 um einen Knoten w ∈ V0 , die v ∈ Ψ0 ist entweder eine groÿe Variable Variable xj ∈ T (τ ) für ein τ ∈ Γ. In beiden Ordnung der Anwendungen von simuliert werden: Ein Knoten b(τ ) oder eine kleine v Fällen ist Γ mit Knoten verbunden, die durch seine Nachbarschaft in bestimmt sind: Im ersten Fall induziert fragten Q NΓ (τ ) die hitter-Menge, die Menge der ange- Bits, wie sie in Gleichung (4.1) deniert wurde. Im zweiten Fall wird ein Knoten angefragt, wenn P xj ∈ T (τ ) genau dann vom PCP-Verizierer P τ 0 ∈ NΓ (τ ) ausgeführt wird, d.h mit einem xj ∈ Anf(P(τ 0 ) ↔ xj ∈ T (τ ) und τ ∈ NΓ (τ 0 )). NΓ (τ ) entspricht dann einer Menge von groÿen Variablen 0 b(τ ). Wir können also die kanonische Ordnung von NΓ (τ ) für alle τ ∈ Γ Die Menge übernehmen und erhalten daraus eine Ordnung der Anwendungen von P0 : • Betrachte den Vater v ∈ Ψ0 Ordne die Nachbarn von w ∈ V0 . u ∈ NΓ (v). {u, v} entspricht einer Bedingung c ∈ Ψ0 . Für jede Ber dingung c gibt es 2 0 PCPP- Anwendungen P0 (c, τ0 ) (τ0 ∈ Γ(P0 )), die wir nach der Ordnung von Γ(P0 ) ordnen können. auf den kleinen Variablen entsprechen (m0 ∈ [1..q0 ]). Jede Kante Anf(Pi (c, τi )): Ordnung von Konstante qi . Die Anfragekomplexität von Wir ordnen die Bits von Anf(Pi (c, τi )) Pi ist eine nach der Reihen- folge, in der sie vom Verizierer gelesen werden. • [v] für alle v ∈ G0 : Jeder Knoten v ∈ G0 wird dv Mal dupliziert und ergibt die Knotenmenge [v]. Die Knoten von [v] werden mit einem (dv , d0 , λ0 )-Cayley-Expandergraphen X(dv ) mit Generatormen9 ge Gen(X(dv )) vernetzt. Aus vl ∈ [v] gehen d0 Expanderkanten und eine einzige externe Kante {vl , wm } aus, die einer Kante {v, w} ∈ E0 entspricht und deren Bedingung trägt. Die Kopien müssen von 1 bis dv so geordnet werden, dass ein bestimmter Wert l ∈ [1..dv ] eindeutig die externe Kante {vl , wm } festlegt (siehe Abbildung 4.5). Ordnung von bc (τ0 ) (c ∈ Ψ0 ) übernehmen wir die Ordnung Anf(P0 (c, τ0 )). Die l-te Kopie von bc (τ0 ) ist dann mit der Für groÿe Variablen von Kopie einer kleinen Variable verbunden. Diese Kopie entspricht dem l -ten angefragten Bit in 9 dv ist der Grad von v in G0 . 69 Anf(P0 (c, τ0 )). [w] [v] ?? wm vl Abbildung 4.5: Ziel der Ordnung von [v] für Knoten Für kleine Variablen aus einem Beweis Ordnung von Γc (P0 ) Pc v ∈ V0 . übernehmen wir die und erhalten nach der oben genannten Simulation eine geordnete Liste der groÿen Variablen bc (τ0,r ), die mit dieser Variable verbunden sind. B übernehmen wir die PCPP-Anwendungen P0 und die Ordnung von Für kleine Variablen aus der Eingabe Ordnungen der Anf(P0 (c, τ0 )), die wir oben deniert haben und erhalten eine Ordnung der Nachbarschaft eines Knotens in Die Ordnungen auf V0 . NΓ (τ ), Γ(P0 ) und Anf(P0 (c(τ, j), τ0 )) [v] (siehe Tabelle4.2). ergeben also eine kanonische Ordnung auf Γ(P) |NΓ (P)| Γ(P0 ) [1..q0 ] u ∈ [v] ... ... ... ... ... τ0 j0 τ00 l00 × 1 ... ... ... ... ... τ 00 j 00 τ000 l000 × 2 ... ... ... ... ... ... Tabelle 4.2: Ordnung von • Ordnung von [v] für Knoten v l ∈ [1..du ] aus der Eingabe. NVi,1 (v): An erster Stelle kommt der externe Nachbar von v und dann die Expandernachbarn, geordnet nach der Generatormenge Gen(X(du )), wobei v ∈ [u] für einen Knoten u ∈ Vi,0 . • Ordnung von NExpi (v): Die Graphen Expi sind (|V (Hi,1 )|, d1 , λ1 )-Expander- graphen, die auch als Cayley-Graphen implementiert werden. Die Ord- Gen(Expi ) ergibt eine Ordnung auf der Nachi = 1 bis k . nung der Generatormenge barschaft in • Expi für Vi,2 : Aus v ∈ Vi,2 gehen d0 Kanten aus X(dv ), d1 Kanten aus dem Expandergraphen Ordnung der Nachbarschaft in dem Expandergraphen Expi , eine Selbstschleife und eine externe Kante, die eine Bedingung 70 von Ci,0 trägt. Wir ordnen die Nachbarschaften in Vi,2 folgendermaÿen: zuerst der Knoten selbst (Selbstschleife), dann die Nachbarn in Vi,1 Expi , wobei wir die eben vorgestellten Vi,1 und in Expi übernehmen. und schlieÿlich die Nachbarn in Ordnungen für die Nachbarschaft in • Pfadbildung: Im Powering-Schritt werden Kanten in Ei,3 t-Pfade in Ei,2 gebildet, um zu erhalten. Hier brauchen wir eine Ordnung der Nach- v ∈ Vi,3 . Wir werden diese Ordnung brauchen, PCPP-Anwendung Pi in einer kanonischen Reihenfolge simulieren zu können (analog zu der Ordnung der Anwendungen von P0 ). Ein t−1 Nachbarn. Jeder Knoten deniert mit v einen Knoten v ∈ Vi,3 hat D eindeutigen t-Pfad in Ei,2 . Wir brauchen also eine kanonische Ordnung barschaft eines Knotens um die für die Bildung dieser Pfade. Dafür wählen wir eine Durchlaufstrategie der Kanten von Ei,2 Die Pfade, die aus v, v ab v, nämliche die Tiefensuche. ausgehen, bilden einen Baum Verzweigungsfaktor D und Tiefe t. Tree(v) mit Wurzel Die Blätter des Baumes sind die Endknoten der t-Pfade. Die Tiefensuche wird durch folgende Rekursion realisiert: v1 1. Markiere der ersten Sohn 2. Bilde den Teilbaum von v, Tree(v1 ), 3. Weiter mit dem nächsten Sohn von Tree(v1 ) Bei dem Bilden des Teilbaumes v. betrachten wir zuerst seinen ersten Sohn und den Teilbaum, der aus ihm ausgeht, usw. Für die Ordnung der Söhne eines Knotens beachten wir, dass die Söhne eines Knotens seine Nachbarn in Vi,2 sind. Wir können also die Ord- nung übernehmen, die wir im letzten Absatz deniert haben. Diese Durchlaufstrategie ergibt eine Nummerierung der Knoten (nach der Reihenfolge, in der sie besucht werden). Insbesondere ergibt sich eine Nummerierung der Blätter des Baumes. Letztere induziert eine parti- Vi,3 . Dabei verschiedene t-Pfade elle Ordnung auf die Nachbarschaften in kann ein Knoten mehrfach vorkommen. Da aber verschiedene Be- Ci,3 dingungen in induzieren, hat ein Knoten auf verschiedenen Pfaden unterschiedliche semantische Bedeutungen. Äquivalent können wir eine D-adische Darstellung der Knoten mit t-elementigen Tupeln benutzen und die Ordnung dieser Tupel übernehmen. • Ordnung von [x] für alle x ∈ Vi+1,0 = Vi,4 : Falls x eine groÿe Variable oder ein Beweisbit ist, lösen wir das Problem analog zum Fall Ansonsten ist für 10 w ∈ Vi,3 . x ein Bit aus der Kodierung der Eingabe, d.h v ∈ G0 . x ∈ [w] 10 Hier liegt eine Polymorphie vor: Aus dem Kontext müssen wir unterscheiden zwischen 71 PCPP-Anwendungen Pi ordnen, in denen In diesem Fall müssen wir die der Vater w von x enthalten ist. Dafür übernehmen wir die Ordnung PCPP-Anwendungen {w, w0 } (w0 sei der ji -te Nachbar von w) nach den Zufallszeichenketten τi ∈ Γ(Pi ). Schlieÿlich wenden wir die Ordnung von Anf(Pi (c, τi )) an, um den Index li des angefragten Bits x zu bestimmen. Wir erhalten eine Bijektion zwischen dx Tupeln der Form (ji , τi , li ) und [1..dx ] (Siehe Tabelle 4.3). Für Bits aus dem Beweis der Nachbarschaft in Vi,3 . Dann ordnen wir die über eine bestimmte Kante bzw. für groÿe Variablen ergibt sich die Ordnung aus den Ordnungen für Γ(Pi ) bzw. Anf(Pi (c, τi )). NVi,3 (x) Γ(Pi ) [1..qi ] u ∈ [x] ... ... ... ... ji0 τi0 li0 × 1 ... ... ... ... ji00 τi00 li00 × 2 ... ... ... ... ... Tabelle 4.3: Ordnung von [x] ⊂ Vi,1 l ∈ [1..du ] für Knoten x ∈ Vi,0 . Diese Ordnungen werden wir einsetzen, um eine Knotenadressierung zu entwerfen, die eine eziente Bestimmung der Nachbarn eines Knotens ermöglicht, obwohl der Verizierer nur einen polylogarithmisch groÿen Teilgraphen bilden darf. 4.3 Adressierung der Knoten Das Ziel in diesem Abschnitt ist der Entwurf einer vollständigen und korrekten Knotenadressierung: Jeder Knoten soll erreichbar (adressierbar) sein und jeder erreichte Knoten soll semantisch korrekt sein. Wir wollen aber zuerst dieses Vorhaben motivieren. Das Ziel der Einführung der Expandergraphen Expi ist die Verteilung der Informationen (Knotenbelegungen) durch den Graphen, so dass eine globale Verstreuung resultiert. Es werden Knoten verbunden, die nicht lokal korreliert sind. Zum Beispiel sind Knoten korreliert, dass sie aus der selben u und v τ (u) = τ (v) dadurch P(τ ) stammen. Ein un- mit PCP-Anwendung ehrlicher Beweiser kann durch eine geringfügige Fälschung des Beweises von P(τ ) beide Informationen über schiedenen τ u und v verfälschen. Für Knoten mit ver- 0 und τ muss der Beweiser beide Beweise P(τ ) und P(τ 0 ) ver- fälschen. Umso mehr Korrelationen zwischen entfernten Knoten entstehen, [x] als Knotenmenge, die aus der Duplizierung ecc eines Knotens w (Robustization). 72 von x resultiert, und [w] als Kodierung via um so schwieriger ist eine Fälschung seitens des Beweisers. Durch Bündelung der Bedingungen im Powering-Schritt erhöht sich somit die Wahrscheinlichkeit, dass der Verizierer auf Inkonsistenzen im Beweis stöÿt. Dies ist der Grund für die Ausdehnung der Erfüllbarkeitslücke, wir wir in Abschnitt 3.2 gesehen haben. Eine vollständige und korrekte Knotenadressierung und die Cayley-Eigenschaft der Expandergraphen ermöglichen einerseits die freie und andererseits eine blinde Bewegung in dem ganzen Graphen Gi : Es reichen die Adresse eines Knotens und ein Element aus der Generatormenge, um einen Nachbarn zu bestimmen und gleichzeitig seine ganze Entstehungsgeschichte zu erhalten. Der Verizierer kann ab diesem Knoten weiterlaufen (im Rahmen der zufälligen Spaziergänge im Powering-Schritt) und hat alle nötigen Informationen, um die Nachbarschaft dieses erreichten Knotens und die mit ihm verbundenen Bedingungen zu bestimmen. v ∈ Hi,j Wir können uns die Adresse eines Knotens als eine Zeichenkette vor- stellen, die in Abschnitte unterteilt werden kann. Wir vereinbaren folgende Notationen: • v ∈ Hi+1,j (i = 0, . . . , k − 1, j = 1, . . . , 3) sei Adr(vi ) = (p0 , . . . , pi , 000), wobei die Abschnitte pm für m = 0, . . . , i Die Adresse eines Knotens zu spezizieren sind. 11 Wir entscheiden uns für diese Notation, weil die Vi+1 das Ergebnis von Operationen ist, die in der i-ten Iteration stattnden und von dem Abschnitt pi charakterisiert werden. Knotenmenge in Das Feld hat eine später zu bestimmende polylogarithmische Länge und wird für i<k mit Nullen aufgefüllt. • Ein Abschnitt einer Adresse wird auch in der Form • Es bezeichne a(v) den Abschnitt (a) in (a1 , a2 , . . . ) notiert. Adr(v) = (. . . , a, . . . ). 4.3.1 Struktur der Knotenadressen Wir wollen die Adresse eines Knotens in Abschnitte teilen, die Auskunft über seine Herkunft geben. Dabei müssen wir die Vorgänger dieses Knoten in den vorigen Bedingungsmengen kennen. Die Vorgänger eines Knotens können Knoten (wie bei der Knoten-Duplizierung) oder Bedingungen (wie bei den PCPP-Anwendungen Pi ) sein. Im letzten Fall können die Endknoten der Kante, die eine Bedingung trägt, als Vorgänger eines Knotens betrachtet werden. Die Adressenabschnitte eines Knotens werden wir stückweise gemäÿ dem Algorithmus 2 festlegen, in dem die Graphen Hi,j gebildet werden. Die Adressierung basiert auf den Ordnungen aus dem vorigen Abschnitt: Die 11 Die Adressierung der Knoten von Hi,0 und Begründung folgt später in diesem Abschnitt. 73 Hi,4 wird beabsichtigt ausgelassen. Die Bezeichner (τi , ji , usw.) können mit ihren Indizes identiziert werden, die sich aus den obigen Ordnungen ergeben. Wir verfolgen nochmal dem Ablauf dieses Algorithmus und denieren in jedem Schritt eine Knotenadressierung: 1. 2. 3. Ψ: Eine Bedingung τ ∈ Γ(P) bestimmt. in Ψ wird eindeutig durch die Festlegung eines Knoten müssen nicht explizit adressierbar sein. Ψ0 : Eine Bedingung τ ∈ Γ(P) mit einer Ψ0 b(τ ) für ein j ∈ [1..Q], wobei Q 0 die Anfragekomplexität von P ist. Die Variablen von Ψ werden nicht 0 explizit betrachtet, sondern nur die Bedingungen von Ψ als Eingabe für die PCPP-Anwendung P0 . Eine Bedingung ist durch die Angabe von τ und j eindeutig festgelegt. in verbindet eine groÿe Variable kleinen Variable xj für ein G0 : Die Bedingungen in G0 entstehen durch die Anwendungen von P0 auf die Bedingungen aus Ψ0 . Da ein Knoten in Ψ0 mit Q Knoten verbunden ist, kann ein Knoten in G0 bis zu |Γ(P0 )| · Q Nachbarn haben. Hier können wir nicht mehr von einer eindeutigen Herkunft eines Knotens sprechen: Der selbe Knoten kann in verschiedenen Anwendungen auf verschiedenen Bedingungen aus Ψ0 PCPP- auftreten. Wie wir bei der Bestimmung der Nachbarschaft gesehen haben, muss der Verizierer alle V PCPP-Anwendung simulieren, in denen ein Knoten v 0 ∈ (Ψ0 ) beteiligt ist. Wir müssen also Folgendes spezizieren können: • Zuerst die Bedingungen in Ψ0 , die v 0 enthalten. Diese Bedingungs- 0 menge C(v ) wird von folgender Kantenmenge getragen E(v 0 ) := {u0 , v 0 } | u0 ∈ NΓ (v 0 ) . Eine Bedingung in E(v 0 ) ist also eindeutig durch ein Paar (τ, j0 ) festgelegt. • dem C(v 0 ) • τ0 ∈ Γ(P0 ), mit denen wir P0 nach 0 Robustizationsschritt mittels ecc auf jede Bedingung c ∈ Alle Zufallszeichenketten anwenden. B0 Ob Knoten in kleine oder groÿe Variablen sind und welche Nachbarn sie haben. Ein Tripel (τ, j0 , τ0 ) charakterisiert eine PCPP-Anwendung P0 (c(τ, j0 , τ0 )). Hier unterscheiden wir zwischen groÿen Variablen mit dem Eintrag l0 = 0 und kleinen Variablen mit einem Eintrag Variablen stellen die q0 l0 = 1. Die Groÿen Bits, die bei einer Anwendung angefragt wer- den. Die kleinen Variablen stellen die Bits aus der Eingabe und aus dem Beweis für P0 . Wegen des mehrfachen Vorkommens von Bits aus der Eingabe in verschiedenen PCPP-Anwendungen 74 können wir keine einheitliche Adressierung der Knoten von V0 vornehmen. Dieses Pro- blem wird aber auf natürlicher Weise in dem nächsten Schritt gelöst, nämlich bei der Duplizierung der Knoten, die zum Graphen 4. • τ, j0 {b(τ ), xj0 }. Das Paar Der Wert c0 • • τ0 speziziert eine Bedingung c0 ∈ Ψ0 über die Kante speziziert eine Zufallszeichenkette, mit der P0 auf angewandt wird. Der Wert l0 ist gleich 1 Wert 0 für groÿe Variablen und nimmt sonst den an. Der Wert m0 legt die externe Kante fest, die aus w ausgeht: Falls w eine groÿe Variable b(τ0 ) darstellt, dann speziziert der Wert m0 ∈ [1..q0 ] das m0 -te angefragte Bit bei der zugrunde liegenden PCPP-Anwendung P0 (c(τ, j0 ), τ0 ). Falls w eine kleine Variable darstellt, dann ist er mit der Kopie der groÿen Variable bc (τ0 ) verbunden, die durch c := c(τ, j0 ) und τ0 festgelegt ist. Der Wert m0 ∈ [1..q0 ] besagt dann, dass w die m0 -te kleine Variable in Anf(P0 (c, τ0 )) ist. Hi,2 , Hi,3 : Die Knotenmengen dieser Graphen sind gleich der Knoten- menge von 6. führt. H1,1 : An dieser Stelle müssen die Kopien w ∈ [v0 ] eines Knotens v0 ∈ G0 adressiert werden. Wir vergeben jedem Knoten w ∈ [v0 ] einen Eintrag p0 := (τ, j0 , τ0 , l0 , m0 ), der folgende Werte festlegt: • 5. H1,1 Hi,1 , die wir im Folgenden betrachten werden. Hi,4 = Hi+1,0 : Die Graphen Hi+1,0 für i = 1, . . . , k − 1 entstehen durch die PCPP-Anwendungen Pi auf die Bedingungsmengen Ci,3 . Jede Anwendung Pi (ci , τi ) ist durch eine Bedingung ci ∈ Ci,3 und eine Zeichenkette τi ∈ Γ(Pi ) charakterisiert. Die Knoten von Hi,4 unterteilen sich in groÿe Variablen mit einem Eintrag li = 0 und in kleine Variablen mit einem Eintrag li = 1. Hier entsteht das selbe Adressierungsproblem wie bei G0 : Bits können mehrfach in PCPP-Anwendungen vorkommen. Dieses Problem lösen wir analog im Duplizierungsschritt. 7. i = 1, . . . , k − 1: Wir betrachten die Kopie v ∈ Vi+1,1 eiw ∈ Vi+1,0 = Vi,4 , d.h. v ∈ [w]. Sei {v, v 0 } die externe Kante in Ei+1,1 , die aus v ausgeht. Diese Kante entspricht einer Kante {w, w0 } ∈ Ei,4 . Wir müssen die Knoten in Vi+1,1 so adressieren, dass diese Kante aus der Adresse von v eindeutig festzulegen sei. Wir vergeben v einen Eintrag (p0 , . . . , pi−1 , pi ) mit pi := (ji , τi , li , mi ), so dass Hi+1,1 für nes Knotens folgende Bedingungen erfüllt werden: • Die Werte Ci,3 . (p0 , . . . , pi−1 ) und ji spezizieren eine Bedingung Diese Bedingung ist über die Kante 75 {u, u0 } ci ∈ deniert mit Adr(u) = (p0 , . . . , pi−1 ) und u0 ist der ji -te Nachbar von u in Vi,3 . Da der Grad von Vi−1,3 gleich Dt ist, nimmt ji einen Wert t in [1..D ] an. • Der Wert τi speziziert eine Zufallszeichenkette, mit der Pi auf ci angewandt wird. • Der Wert li ist gleich • Der Wert log zu mi m0 0 bzw. 1 für groÿe bzw. kleine Variablen. legt die externe Kante, die aus ist mi ein Wert in [1..qi ], ausgeht fest: Ana- der den Index der kleinen bc (τi ) darstellt, dann Anf(Pi (c, τi )) verbunden. Falls v 0 eine kleine Variable darstellt, dann ist er mit der Kopie v einer groÿen Variable bc (τi ) verbunden und v ist die mi -te Variable in Anf(Pi (c, τi )) für die Bedingung c, die durch pi−1 und ji charakterisiert ist. Die Abschnitte li (v) und mi (v) charakterisieren also Variable festlegt. Falls ist v mit der mi -ten v v eine groÿe Variable Variable in die Art (groÿe oder kleine Variable) eines Knotens und seinen externen Nachbar. Abbildung 4.6 zeigt ein Muster der Adressierung eines Knoten. Der Vorteil dieser Adressierung liegt darin, dass die Adresse eines Knotens sowohl Aufschluss über seine Vergangenheit als auch seine Zukunft gibt. pi p0 τ j0 τ0 Bevor wir in l0 m0 ...... ji τi li mi 000 Abbildung 4.6: Musteradresse eines Knoten. Abschnitt 4.3.3 die eigentliche Berechnung der Knotenadressen behandeln, analysieren wir die Komplexität dieser Adressierung und ihre Kompatibilität mit unserer angestrebten polylog-Verikationszeit. 4.3.2 Komplexität der Knotenadressierung p0 = (τ, j0 , τ0 , l0 , m0 ) und k = O(log log n) Abschnitte pi = (ji , τi , li , mi ) (i = 1, . . . , k ). Der letzte Abschnitt pk speziziert eigentlich Knoten in dem nicht konstruierten Graphen Hk+1,1 . Wir können aber die Knoten in Gk = Hk,4 nicht explizit adressieren. Deswegen führen wir gedanklich die Knoten-Duplizierung aus, die den Graphen Gk+1,1 erEin Adressenfeld umfasst zeugt, und wählen in ihm eine Kante aus. Für diesen Schritt büÿen wir nur einen Faktor 0 < β0 < 1 in der Erfüllbarkeitslücke (siehe Gleichung (3.1)). 76 Der Einfachheit halber sprechen wir aber weiter von der Wahl einer Kante in Ck . Als Datenstruktur können wir uns ein Array vorstellen, in dem auf einen Eintrag über seinem Index zugegrien wird. Wir untersuchen jetzt die Länge der Teilarrays, die wir für jeden Abschnitt reservieren werden. Es bezeichne Arr(a) die Länge des Teilarrays für einen Adressenabschnitt die Länge des Arrays für die Adresse eines Knotens • Arr(τ ) = R = log n + O(log log n), Verizierer P ist. wobei R (a) und Arr(v) v: die Zufälligkeit vom PCP- • Arr(j0 ) = dlog Qe = O(log log n), da |NΓ (τ )| = Q, wobei Q = poly log n die Anfragekomplexität von P ist. • Arr(τ0 ) = r0 = O(log log n), r(ecc) = O(1). • Arr(ji ) = dlog Dt e, denn da ein Knoten in • Arr(τi ) = ri = O(log(|Σ0 |D dt/2e r0 = O(log(2 · r(ecc) · Q)) Vi,3 genau Dt Nachbarn hat. )) für i = 1, . . . , k . Da |Σ0 |, D t uniArr(τi ) = und verselle Konstanten sind, können wir eine einheitliche Länge O(1) und vereinbaren. • Arr(li ) = 1 für i = 0, . . . , k : Dieses Bit speziziert nur, ob ein Knoten einer groÿen oder einer kleinen Variable entspricht. • Arr(mi ) = dlog qi e = O(1) für i = 0, . . . , k . Arr(v) des Arrays für eine Knotenadresse. Da i < k = O(log log n) mit Nullen ausgefüllt einheitliche Länge und gleicht Arr(vk ) für vk ∈ Hk,j . Es Analysieren wir jetzt die Länge das Feld für Knoten in wird, ist Arr(v) eine Hi,j mit gilt: Arr(v) = Arr(p0 ) + k · Arr(pi ) = Arr(τ ) + Arr(j0 ) + Arr(τ0 ) + Arr(l0 ) + Arr(m0 ) + k · (Arr(ji ) + Arr(τi ) + Arr(li ) + Arr(mi )) = log n + O(log log n) + k · O(1) = log n + O(log log n). Nun müssen wir untersuchen, wie der Verizierer die Adressen der Knoten berechnen kann, die er im Laufe seines Protokolls betrachtet. 4.3.3 Berechnung der Knotenadressen Wir zeigen in diesem Abschnitt, wie der Verizierer die Adressen der von ihm besuchten Knoten berechnen kann, ohne die ganzen Bedingungsgraphen 77 bilden zu müssen. Wir setzen die Ordnungen aus dem Abschnitt 4.2.2 voraus. Ferner verfügt der Verizierer über eine Prozedur, die in poly log n Zeit das i-te Element der Generatormenge eines (n, d, λ)-Expandergraphen bestimmt (siehe Abschnitt 1.2.2). Wir betrachten nochmal die möglichen Nachbarschaften eines Knoten, die wir in Abschnitt 4.2.1 deniert haben: 1. Nachbarschaft in Ψ bzw. Ψ0 : In beiden Bedingungsmengen sind die Nachbarn eines Knotens durch seine Ramanujan-Nachbarschaft in dem Γ := G(Γ(P)) bestimmt. Der Graph Γ ist ein Cayley-Graph C(H, S) mit H eine Gruppe der Gröÿe |H| = |Γ(P)| und S := Gen(Γ) eine Generatormenge von H mit |S| = dRam . Graphen jr ∈ [1..dRam ] 0 und jq ∈ [1..q(VRS )] und speziziert damit eine Bedingung in Ψ : Der Wert jr speziziert ein τr ∈ NΓ (τ ) und jq speziziert ein Bit x in Anf(VRS (τr )). Wir fassen diese zwei Schritte zusammen und sagen, dass V einen Wert j0 ∈ [1..Q] auswählt und damit eine Bedingung c(τ, j0 ) ∈ Ψ0 bestimmt. Zur Erinnerung: Q = dRam · q(VRS ) = |Anf(P)|. Der Verizierer wählt ein Die groÿe Variable P(τ ) b(τ ) τ ∈ Γ(P) und zwei Werte wird bei der Simulation der deniert. Die kleine Variable die Ramanujan-Nachbarschaft in zwischen den Elementen von S Γ xj0 PCP-Anwendung ergibt sich folgendermaÿen: Da geordnet ist, gibt es eine Bijektion und den Indizes der Nachbarn, d.h jr ∈ [1..dRam ] entspricht eindeutig einem Element s ∈ S . Die Ordnung von H induziert eine Ordnung von Γ(P), so dass es auch eine Bijektion zwischen H und Γ(P) gibt. Es bezeichne h(τ ) das eindeutige Element in H , das τ entspricht. Die Summe h(τ ) + s ergibt einen Wert hr ∈ H , das einem Element τr ∈ Γ(P) entspricht. Die kleine Variable xj ist dann das jq -te Element in Anf(VRS (τr )). Vi+1,1 : Der Verizierer verfüge über die Adresse Adr(u) = (p0 , . . . , pi = (ji , τi , li , mi )) eines Knotens u ∈ Vi+1,1 . Der Knoten u hat d0 Expandernachbarn vj (j = 1, . . . , du ) in dem (du , d0 , λ0 )Expandergraphen X(du ) und einen externen Nachbarn v0 . Der Graph X(du ) ist ein Cayley-Graph mit Gruppe H (|H| = du ) und Generatormenge S (|S| = d0 ). Wir unterscheiden zwei Fälle: 2. Nachbarschaft in (a) li = 0 (u • ist die Kopie einer groÿen Variable bc (τi )): Der externe Nachbar ist die kleine Variable mit dem Index mi in Anf(Pi (c, τi )), wobei die ji deniert ist. Wir erhalten: Bedingung c durch pi−1 und Adr(v0 ) = Adr(u) ⊕ li = (p0 , . . . , pi−1 , pi (v0 ) = (ji , τi , 1, mi )) . • vj sind Kopien von b(τi ), die mit anderen Variablen aus Anf(Pi (c, τi )) verbunden sind. Der Index Die Expandernachbarn 78 j ∈ [1..d0 ] und mi (u) ∈ [1..qi ] (du = qi ) liefern eindeutige Elemente sj ∈ S und h(u) ∈ H . Die Summe h(u) + sj deniert ein Element h(vj ) ∈ H , das bijektiv auf einen Wert m ∈ [1..qi ] abgebildet werden kann. Die Adresse von vj ist dann Adr(vj ) = (p0 , . . . , pi−1 , pi (vj ) = (ji , τi , 0, m)) . (b) li = 1 (u • ist eine kleine Variable vl ): Der externe Nachbar ist die groÿe Variable Index und ji mi in Anf(Pi (c, τi )), b(τi ) mit dem c durch pi−1 wobei die Bedingung deniert ist. Wir erhalten: Adr(v0 ) = Adr(u) ⊕ li = (p0 , . . . , pi−1 , pi (v0 ) = (ji , τi , 0, mi )) . • deren vj sind Kopien von u, die von anPCPP-Anwendungen Pi gelesen wurden. Der Grad du u wurde in Abschnitt 4.2.2 berechnet, in dem auch eine Die Expandernachbarn von (e j, τe, m) e und s ∈ [1..du ] deniert wurde. Der Index j ∈ [1..d0 ] und der Tripel (ji , τi , mi ) liefern eindeutige Elemente sj ∈ S und h(u) ∈ H . Die Summe h(u) + sj deniert ein Element h(vj ) ∈ H , das bijektiv auf einen Wert e j ∈ [1..du ] abgebildet werden kann. Dieser Wert charakterisiert eindeutig eine PCPP-Anwendung Pi (e c, τe, m) e , e wobei e c durch pi−1 und j deniert ist. Die Adresse von vj ist Bijektion zwischen Tupeln 12 dann Adr(vj ) = p0 , . . . , pi−1 , pi (vj ) = (e j, τe, 1, m) e . Expi : Wir betrachten einen Knoten u ∈ Vi,1 und den Cayley-(|Vi,1 |, d1 , λ1 )-Expandergraphen Expi := C(H, S) mit |H| = |Vi,1 | und |S| = d1 . Der Verizierer wählt ein Element s ∈ S und interpretiert Adr(u) als Element von H . Die Summen Adr(u) + s ergibt einen Wert h(v). Dieser Wert wird als Adresse Adr(v) gemäÿ den Abschnitten (p0 , . . . , pi ) interpretiert. An dieser Stelle müssen wir uns 3. Nachbarschaft in fragen, ob die erhaltene Adresse immer semantisch sinnvoll ist, d.h, ob diese Adresse einem tatsächlichen Knoten in Vi,1 entspricht. Dafür müssen wir die Knotenadressierung auf Korrektheit untersuchen: Ist jede binäre Zeichenkette der Länge Arr(v) die Adresse eines Knoten? Das Feld einer Adresse ist in Abschnitte fester Länge unterteilt. Wir zeigen, dass jede Belegung eines Feldes eine semantisch korrekte Interpretation hat. Davor müssen wir ein kleines technisches Problem lösen: 12 In Abschnitt 4.2.2 heiÿen die Tupel (ji , τi , li ) zu verwechseln). 79 (nicht mit dem li in diesem Abschnitt |Γ(P)|, |Γ(Pi )| Die Werte und |li | (i = 0, . . . , k) sind Zweierpotenzen. Ihre Teilarrays sind also vollständig belegt: Jede binäre Zeichenkette entspricht einem Wert in den jeweiligen Domänen. Dagegen sind die Kardinalitäten der Wertebereiche [1..qi ] für mi (für j0 ), [1..Dt ] (für ji ) und keine Zweierpotenzen. Daher wird die Länge der entspre- chenden Teilarrays aufgerundet: und [1..Q] Arr(mi ) = dlog qi e. Arr(j0 ) = dlog Qe, Arr(ji ) = dlog Dt e Diese Teilarrays sind also nicht vollständig belegt. Für dieses Problem gibt es zwei Lösungen: Dt • Wir fordern, dass • Wir kodieren diese Werte mit einem fehlerkorrigierenden Code Q, qi und Zweierpotenzen seien. ecc mit linearer Rate und Codewortlänge, so dass die Kardinalität des Coderaums eine Zweierpotenz sei (ecc : Σ → {0, 1}l ). Wir können also voraussetzen, dass jedes Teilarray vollständig belegt ist. Die Adresse Adr(w) = (p0 , . . . , pi−1 , pi = (ji , τi , li , mi )) kann fol- gendermaÿen rekursiv interpretiert werden: • (p0 , . . . , pi−1 ) • v Sei Ci,3 • Sei in Vi−1,3 . ji -te Nachbar von u in Vi−1,3 von {u, v} getragen wird. die Bedingung tion auf die • u der die e sei ein Knoten Der Wert li mi -te Pi (c, τi , mi ) und c (entspricht die Bedingung aus Pi (c, τi ) mit Projek- Variable.) legt fest, ob w die kleine oder die groÿe Variable in dieser Bedingung ist. Wegen der vollständigen Belegung existieren alle behaupteten Werte und jede binäre Zeichenkette der Länge Knotens in Vi+1,1 . Arr(w) ist die Kodierung eines Somit hat der Verizierer eine globale Adressierung der Knoten und kann die Adressen der Expandernachbarn durch eine einfache Gruppenaddition berechnen, obwohl er keine Informationen über die Entstehungsgeschichte dieser Nachbarn hat. 4. Powering: In diesem Schritt geht der Verizierer von einer Kante {u2 , v2 } ∈ Ei,2 aus und bildet einen zufälligen t-Pfad in Ei,2 , der einer Kante {u3 , v3 } ∈ Ei,3 entspricht. Die Adressen von u3 und v3 lassen sich mit der Vorschrift für die Adressbestimmung in den zwei vorigen Absät- V einen Knoten w erreicht, wählt er zufällig ein M (w) := Gen(Expi ) ∪ Gen(X(dv )) ∪ self ∪ ext, wobei die Elemente self bzw. ext für die Wahl einer Selbstschleife bzw. einer externen Kante (entspricht einer Kante in Ei,0 ) stehen. Bei jeder Wahl 0 kann V aus Adr(w) die Adresse Adr(w ) des nächsten Knotens auf dem t-Pfad berechnen. zen berechnen: Wenn Element aus Adr(u3 ) und Adr(v3 ) muss V über {u3 , v3 } deniert ist. Zur Nach der Berechnung von aus Ci,3 berechnen, die 80 die Bedingung Erinnerung ist eine Bedingung u3 und v3 ce (σ(u), σ(v)) ∈ Ci,3 durch die t/2-Nachbarschaft von induziert und ist genau dann erfüllt, wenn 1. ∀eu ∈ {w1 , w2 } ∈ Ei,2 | w1 , w2 ∈ Nt/2 (u) : ceu (σu (w1 ), σu (w2 )) = T 2. ∀ev ∈ {w1 , w2 } ∈ Ei,2 | w1 , w2 ∈ Nt/2 (v) : cev (σv (w1 ), σv (w2 )) = T 3. ∀e ∈ {w1 , w2 } ∈ Ei,2 | w1 ∈ Nt/2 (u), w2 ∈ Nt/2 (v) : ce (σu (w1 ), σv (w2 )) = T Der Verizierer berechnet zu erst die Adresse aller Knoten in Nt/2 (u3 ) ∪ Nt/2 (v3 ). Die Adressbestimmung der Knoten in N N := N0 und Adr(w0 ). Bei jedem Schritt wählen wir aber nicht ein zufälliges Element aus M (w), sondern wir berechnen die Adresse aller Nachbarn von w in Ei,2 , d.h wir führen die Berechnung für alle Elemente in M (w) durch. ist analog zu der obigen Berechnung von Danach bestimmt knoten in N V die Kantenmenge, die aus allen Kanten mit End- besteht. Nun kann V die obige Fallunterscheidung durch- führen und die Eingaben der Bedingungen festlegen, die durch ziert werden. Eigentlich entscheidet u3 den Knoten bzw. V N indu- für die Endknoten jeder Kante v3 , dessen Meinung σu3 bzw. σ v3 zu beachten ist. Die Schaltkreise dieser Bedingungen werden in den Adressen der Endknoten implizit kodiert: Bedingungen über Selbstschleifen und Expanderkanten Expi sind trivial. Die Bedingungen über Expanderkanten aus der Knoten-Duplizierung (X(dv )) sind Gleichheitsbedingungen. Externe Kanten tragen Bedingungen, die durch PCPP-Anwendungen der vo- rigen Iteration deniert sind. 5. PCPP-Anwendung Pi : Die Variablen, die aus einer PCPP-Anwendung resultieren, lassen sich durch einen Tupel (ji , τi , li , mi ) vollständig charakterisieren, wie wir in dem Absatz Nachbarschaft in Expi gesehen haben. Gleichzeitig wird die Bedingung bestimmt, die diesen Knoten mit seinem externen Nachbarn verbindet: c= (b c (τi )↓mi , xmi ), wobei Wir haben gesehen, wie V c durch pi−1 und Pi (c, τi , mi ) := Pi (c, τi ) ∧ ji deniert wird. die Adressen der von ihm erreichten Knoten be- rechnen kann und wie er aus diesen Adressen die induzierten Bedingungen berechnen kann. Auf diese Art kann der Verizierer den Schaltkreis für eine Bedingung in Ck aufstellen. Im nächsten Abschnitt analysieren wir die Ei- genschaften des resultierenden Verizierers, insbesondere seine Laufzeit und seine Korrektheit. 4.4 Analyse des Verizierers V : Der Verizierer e wählt sukzessiv eine Kante e im Teilgraphen Hi,j (i ∈ [0..k], j ∈ [1..4]) bis e k,4 wählt. In jedem Schritt kann V den Schaltkreis für er eine Kante ek ∈ H Zunächst erinnern wir erst kurz an das Protokoll von 81 die Auswertung dieser Kante berechnen: Er reduziert jede Bedingung auf die Kombination von Bedingungen, die sich in drei Klassen einteilen lassen: • Triviale Bedingungen: auf Selbstschleifen und Expanderkanten aus • Gleichheitsbedingungen: auf den Expanderkanten aus Expi . X(du ) (Knoten- Duplizierung) und bei den Projektionen der groÿen Variablen auf kleine Variablen (σ(b(τi ))↓l • PCP- ! = σ(xl )). PCPP-Anwendungen: Ausführung von P bzw. Pi . bzw. auf den externen Kanten nach der Wir haben in Abschnitt 4.1.3 den Aufwand für jede Art Bedingungen bestimmt. Nun müssen wir den Gesamtaufwand für eine Verikation berechnen. In Abschnitt 4.4.2 analysieren wir anschlieÿend die übrigen Parameter des PCP-Verizierers. 4.4.1 Analyse der Laufzeit In diesem Abschnitt beweisen wir die Hauptaussage der vorliegenden Arbeit: Wir zeigen, dass die Laufzeit des entworfenen Verizierers polylogarithmisch ist. Sei T (c) der Zeitaufwand für die Berechnung einer Bedingung Ziel ist eine worst-case Abschätzung für T (c) für c ∈ Ck c. Unser zu berechnen. k = O(log log n) Iterationen des Ausdehnungssatzes 3.2 durch. In der i-ten Iteration ist die Bedingung ci,4 das Ergebnis einer PCPPAnwendung Pi (ci,3 , τi , mi ) mit einem Aufwand T (ci,4 ) = T (Pi ) + T (ci,3 ) = poly |ci,3 | + T (ci,3 ) = K + T (ci,3 ) für eine Konstante K = poly Dt , da D und t Konstanten sind. Der Verizierer führt Die Eingabe ci,3 für Pi Der Aufwand für die Berechnung von Eine Bedingung in Ci,2 ci,3 ist hat entweder einen konstanten Aufwand (Expander- kante oder Selbstschleife) oder sie stammt aus C · T (ci,1 ) O(Dt ) Bedingungen aus Ci,2 . t also T (ci,3 ) = O(D ) · T (ci,2 ). ist die Konjunktion von für eine Konstante C = O(Dt ). Ci,1 . Also bisher gilt: T (ci,3 ) = ci,1 ist wiederum Eine Bedingung entweder eine Gleichheitsbedingung mit konstantem Aufwand oder stammt aus Ci,0 = Ci−1,4 . Wir haben eine Rekursionsvorschrift erhalten um T (ci,4 ) zu berechnen, näm- lich T (ci,4 ) = K + C · T (ci−1,4 ). Daraus schlieÿen wir: T (c) = T (ck,4 ) = K · Ck − 1 + C k · T (c0,0 ) C −1 82 (4.2) Da P0 PCPP-Anwendung eine polynomielle ist und P eine polylogarithmi- sche Laufzeit hat (siehe Abschnitt 2.6), ist der Aufwand für eine Bedingung in C0,0 gleich T (c0,0 ) = T (P0 )+T (c= )+T (P) = poly log n. Für k = O(log log n) k ist C = poly log n. Für c ∈ Ck ergibt sich also ein Gesamtaufwand von: T (c) = O(1) · poly log n + poly log n · poly log n = poly log n Der Verizierer braucht also poly log n Zeit, um eine Bedingung (4.3) c ∈ Ck zu berechnen. Im nächsten Abschnitt geben wir die restlichen Parameter an: Zufälligkeit, Anfragekomplexität, Beweislänge, Korrektheit und Vollständigkeit. 4.4.2 Analyse der übrigen Parameter Die Analyse der Zufälligkeit, Anfragekomplexität, Korrektheit und Vollständigkeit des Verizierers verläuft ganz analog zu der Analyse von Dinurs Verizierer, den wir in Abschnitt 3.3 vorgestellt haben. • r: log n + O(log log n) Bits O(log log n) Bits wählt V 0 einen j0 ∈ [1..Q], um eine Kante in Ψ festzulegen. Die Wahl von τ0 ∈ Γ(P0 ) benötigt auch r0 = O(log log n) Bits. Für m0 ∈ [1..q0 ] reichen O(1) Münzwürfe. In dem iterativen Schritt Gi 7→ Gi+1 braucht V in t jeder Iteration O(1) Bits, um ji ∈ [1..D ], τi ∈ Γ(Pi ) und mi ∈ [1..qi ] auszuwählen. Bei k = O(log log n) Iterationen ergeben sich O(log log n) Bits. Die Zufälligkeit von V ist also r := log n + O(log log n). Die Zufälligkeit eine Zeichenkette • Der Verizierer wählt mit τ ∈ Γ(P). Mit weiteren q : Der Verizierer liest die Belegung von zwei uk und vk , die über einem Alphabet Σ0 deniert sind. Er liest also 2 · |Σ0 | = 2 · qk = O(1), wobei qk die konstante Anfragekomplexität von Pk ist. Der Beweiser würde behaupten, dass alle Bedingungen erfüllt sind, insbesondere c(σ(uk ), σ(vk )) = 1. Deswegen erübrigt sich eine weitere Abfrage im Beweis. Um eine Korrektheit s = 1/2 zu erhalten kann die Prozedur O(1) Mal wiederholt werden und die Die Anfragekomplexität Variablen Anfragekomplexität vergröÿert sich um einen konstanten Faktor. Die Anfragekomplexität von • • Die Beweislänge S Die Vollständigkeit der Abbildung pow V ist also ist gleich q := O(1). 2r · q = n · poly log n. c: ergibt sich aus der Vollständigkeit von P, P0 und aus Abschnitt 3.2. Wir haben nämlich P P pow 0 SAT(Φ) = 0 =⇒ SAT(Ψ) = 0 =⇒ SAT(G0 ) = 0 =⇒ SAT(Gk ) = 0. Falls der Theoremkandidat x die 3-SAT-Formel kann der Beweiser einen Bedingungsgraphen 83 Gk Φ erfüllt (x ∈ L), aufstellen, so dass alle Bedingungen in Ck erfüllt sind, insbesondere die Bedingung auswählt und auswertet. Sei von V c, die V die Menge der Zufallszeichenketten (seiner privaten Münzwürfe). Es gilt: x ∈ L =⇒ • Γ(V) die Korrektheit s: Pr [D(σ(uk ), σ(vk )) = 1] = 1 (4.4) τ ∈Γ(V) Die Analyse der Korrektheit dieses Verizierers ver- läuft analog zu der Analyse in Abschnitt 3.3 von Dinurs Verizierer. Wir müssen nur gewährleisten, dass D auswählt und einen Schaltkreis V eine zufällige Bedingung entwirft, der c korrekt auswertet. Das Protokoll in Abschnitt 4.1.2 liefert eine zufällige Kante Jede Kante in Ek c ∈ Ck ek ∈ Ek : hat die selbe Wahrscheinlichkeit, ausgewählt zu wer- den. Die Zufälligkeit von ek ergibt sich aus der Zufälligkeit der Wahl in jedem Schritt des Protokolls: Wahl von Ψ0 zu bestimmen, Wahl von τ0 , m 0 τ, j0 um eine Bedingung in für eine Bedingung in C0 , usw. Die Zufälligkeit wird auch durch die Struktur der Knotenadressen er- Arr(v) entspricht einem uk ∈ Vk . Der Nachbar vk dieses Knoten ist eindeutig durch (pi ) Adr(uk ) bestimmt: groÿe Variablen sind mit kleinen Variablen ver- sichtlich: jede binäre Zeichenkette der Länge Knoten in bunden und umgekehrt. Da die Felder für Knotenadressen vollständig belegt sind, kann der Verizierer folgendes Protokoll ausführen: Wähle eine zufällige Zeichenkette Interpretiere Setze a als Adresse Adr(uk ) Adr(vk ) := Adr(uk ) ⊕ lk Berechne den Schaltkreis Akzeptiere, falls D = 1, a D der Länge Arr(v), eines Knoten uk , (invertiere das Bit lk ), für die Bedingung c über {uk , vk }. und lehne sonst ab. Die Berechnung des Schaltkreises folgt dann der Vorgehensweise in Abschnitt 4.1.3, aber in umgekehrter Richtung: statt eine Bedingung aus Ck in kleine Schaltkreise zu zerlegen, wird der Schaltkreis aus kleinen Bausteinen zusammengestellt, die der Verizierer ezient aufstellen kann. Das Protokoll in Abschnitt 4.1.2 veranschaulicht lediglich die Logik hinter der Wahlen des Verizierers. Wir haben mit den obigen Analysen den Beweis von unserem Hauptsatz 1.8 beendet. Im nächsten Abschnitt fassen wir die wichtigsten Ergebnisse zusammen und sprechen einige oene Probleme an. 84 Kapitel 5 Fazit und Ausblick Nach der formalen Denition von PCPs und einiger Hilfsmittel aus der Graphen- und Kodierungstheorie haben wir den bisher ezientesten algebraischen mit dem ersten kombinatorischen Ansatz zur PCP-Verikation von NP-Sprachen PCP- untersucht, um die Vorzüge jedes Ansatzes in einer best-of-both Konstruktion zu kombinieren. • Aus [Din05] übernehmen wir die informationstheoretische Ezienz von Expandergraphen: Mittels Expandisierung bzw. Powering werden die Informationen (Variablenbelegungen) global bzw. hinreichend über den Bedingungsgraphen verteilt. Diese Zerstreuung erschwert die Aufgabe eines unehrlichen Beweisers und erhöht somit die Korrektheit des Verizierers, die sich als Erfüllbarkeitslücke von Bedingungsgraphen ausdrücken lässt. • + Aus [BGH 05] übernehmen wir die schnelle Auswertung und den efzienten Low-degree-Test von Polynomen, die über gut strukturierten Körpern deniert sind (Eigenschaften von Fn und hωn i in Kapitel 2). Diese algebraische Eigenschaften liefern polylogarithmische BasisVerizierer VRS , die als Grundbausteine unserer Konstruktion dienen. Ferner haben wir durch geeignete Strukturierung den Beweiser stark eingeschränkt: Die Platzierung von Kanten und Knoten, die durch Operationen auf Graphen entstehen, soll einer vorgegebenen kanonischen Ordnung unterliegen. Wir erreichen dadurch zwei wichtige Ziele: Einerseits haben wir die Möglichkeiten für Täuschungsmanöver eines unehrlichen Beweisers reduziert, und andererseits kann der Verizierer blind aber frei in den Bedingungsgraphen spazieren. Es genügt ihm also die Bildung eines Teilgraphen anstelle des ganzen Bedingungsgraphen Gk , um seinen Schaltkreis aufzustellen. Diese Strukturierung kommt hauptsächlich an folgenden Stellen zum Vorschein: 85 • Implementierung der Expandergraphen Γ, Expi und X(du ) als Cayley- Graphen, die eine lokale Berechnung der Nachbarschaft eines Knotens und somit eine eziente Erzeugung von Teilgraphen ermöglichen. • Ordnung der Nachbarschaft eines Knoten und der t-Pfade, die aus ei- nem Knoten ausgehen. • Ordnung der Ausführungen von PCPP-Anwendungen und der jeweils angefragten Bits. Das Ergebnis dieser Arbeit ist der Entwurf des theoretisch bisherigen besten PCP-Verizierers mit Anfragekomplexität q = O(1), Zufälligkeit r = log n + O(log log n), Beweislänge S = n · poly log n und Laufzeit T = poly log n. Dieser PCP-Verizierer erreicht die theoretischen unteren Grenzen der Pa1 rameter q, S und T : Jeder Verizierer muss mindestens O(1) Bits lesen, braucht mindestens poly log n-Zeit um in dem Beweis und in der Eingabe die anfragten Bits zu indizieren und den Schaltkreis D auszuwerten. Betreend der Beweislänge gibt es keinen informationstheoretischen Beweis für die Optimalität von S = n · poly log n. Wir zitieren aber folgende Vermutung aus + [BGH 05]: In terms of the length of the proof, a polylogarithmic factor is perhaps the best one can hope, given our current inability to get tighter completeness results for non-deterministic computation: E.g., even in a classical reduction to SAT, one looses a polylogarithmic factor in the length of the proof. Abschlieÿend wollen wir noch kurz einige weiterführende Fragestellungen ansprechen, die als Leitfaden für zukünftigen Forschungsarbeiten dienen könnten. 1. Gibt es eine rein kombinatorische PCP-Konstruktion mit den selben Parametern wie unsere? Die astronomischen Konstanten aus den al- PCPP-Anwendungen Pi und PCP-Anwendung P enthalten (S(VRS ) = n · (log n)C mit C = 7.007·1010 ) und führen nach wie vor zu praktisch nicht einsetzbaren gebraischen Konstruktionen sind in den in der hybriden Konstruktionen wie unsere und Dinurs. Eine rein kombinatorische Konstruktion könnte kleinere Konstanten induzieren. 2. Warum nehmen wir den Umweg iterativen Schritt 1 Gi−1 → Gi P bevor wir den ausführen? In der vorliegenden Arbeit PCP-Konstruktionen werden die Exponenten der polylogarithO-Kalkül betrachtet: Alle Funktionen mit poly log n (inklusiv log n) gehören zu der selben Klasse. In der Literatur über mischen Funktionen, wie die Konstanten im Laufzeit P Φ → Ψ → Ψ0 →0 G0 , 86 ist unser Ziel einen PCP-Verizierer mit polylogarithmischer Laufzeit zu entwerfen. Dafür ist die Cayley-Struktur des Ramanujan-Graphen Γ, in den Γ(P) eingebettet wurde, unentbehrlich. Dieser Graph tritt P(τ ) VRS (hit(τ )) := aber erst bei dem hitter-Algorithmus Q deniert. Daher haben wir den genannten Umweg τi ∈NΓ (τ ) VRS (τi ) auf, der als genommen. Wenn wir uns aber mit einer polynomiellen Laufzeit begnügen, könnten wir direkt Φ in G0 überführen: Der algebraische Basis-Verizierer VRS hat nämlich eine konstante Anfragekomplexität und eine Korrektheit 1/poly log n. Seine Anwendung mit allen τ ∈ Γ(VRS ) und eine anschlieÿende Variablenaufblähung auf einem konstantem Alphabet der Gröÿe |Σ0 | = q(VRS ) = O(1) erzeugt einen Bedingungsgraphen G0 mit den Parametern |Σ0 | = O(1) und SAT(G0 ) ≥ 1poly log n. Diese sind die Parameter von G0 , wenn der oben genannte Umweg genommen wird. Für VRS einen polynomiellen Verizierer wäre die Konstruktion mit Φ → G0 also einfacher und ezienter. PCP-Konstruktion mit den selben Parametern wie VRS (q = O(1), s = 1/poly log n und T = poly log n), die aber strukturier- 3. Gibt es eine ter wäre? In anderen Worten soll jedes Bit aus der Eingabe und aus dem Beweis eine lokal berechenbare Nachbarschaft haben. Eine solche Konstruktion würde uns den Umweg P die polylogarithmische Laufzeit einzubüÿen. 87 P Φ → Ψ → Ψ0 →0 G0 sparen, ohne Literaturverzeichnis [AC88] Noga Alon and Fan R. K. Chung. Explicit construction of linear sized tolerant networks. + [ALM 92] Discrete Math., 72(1-3):1519, 1988. 11 Sanjeev Arora, Carsten Lund, Rajeev Motwani, Madhu Sudan, and Mario Szegedy. Proof verication and hardness of approximation problems. In puter Science, IEEE Symposium on Foundations of Com- pages 1423, 1992. 1, 3, 4, 5, 6, 8, 9, 21, 45, 55 [Alo86] Noga Alon. Eigenvalues and expanders. Combinatorica, 6:8396, 1986. 12 [AM84] Noga Alon and Vitali D. Milman. Eigenvalues, expanders and superconcentrators. Computer Science, [AS92] 25th Annual Symposium on Foundations of pages 320322, 1984. 11 Noga Alon and Joel Spencer. The Probabilistic Method. John Wiley, 1992. 12 [Ber68] Elwyn R. Berlekamp. Algebraic coding theory. McGraw-Hill, New York, 1968. 16 [BFLS91] László Babai, Lance Fortnow, Leonid A. Levin, and Mario Sze- STOC '91: Proceedings of the twenty-third annual ACM symposium on Theory of computing, pages 2132. ACM Press, 1991. 7, 8, 21, gedy. Checking computations in polylogarithmic time. In 27 + [BGH 04] Eli Ben-Sasson, Oded Goldreich, Prahladh Harsha, Madhu Sudan, and Salil Vadhan. Robust PCPs of proximity, shorter PCPs STOC '04: Proceedings of the thirty-sixth annual ACM symposium on Theory of computing, and applications to coding. In pages 110, New York, NY, USA, 2004. ACM Press. 5, 6, 8, 55 + [BGH 05] Eli Ben-Sasson, Oded Goldreich, Prahladh Harsha, Madhu Sudan, and Salil Vadhan. Short PCPs veriable in polylogarithmic 88 time. In plexity, Proc. 20th IEEE Conference on Computational Com- pages 120134, San Jose, California, 1215 June 2005. 8, 16, 17, 18, 27, 28, 46, 47, 48, 52, 54, 58, 61, 63, 85, 86 [BS05] Eli Ben-Sasson and Madhu Sudan. Simple PCPs with poly- STOC '05: Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, log rate and query complexity. In pages 266275, New York, NY, USA, 2005. ACM Press. 5, 8, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 46, 58 [Coo71] Stephen A. Cook. The complexity of theorem-proving procedu- STOC '71: Proceedings of the third annual ACM symposium on Theory of computing, pages 151158, New York, NY, res. In USA, 1971. ACM Press. 2 [Din05] Irit Dinur. The PCP theorem by gap amplication. Techni- cal Report TR05-046, Electronic Colloquium on Computational Complexity (ECCC), 2005. 8, 9, 12, 16, 17, 23, 29, 31, 40, 45, 46, 47, 52, 53, 54, 59, 85 + [FGL 91] U. Feige, S. Goldwasser, L. Lovász, S. Safra, and M. Szegedy. Approximating clique is almost np-complete (preliminary version). Proceedings of the 32nd annual symposium on Foundations of computer science, pages 212, Los Alamitos, CA, USA, 1991. In IEEE Computer Society Press. 7 [Fri03] Joel Friedman. A proof of Alon's second eigenvalue conjecture. STOC '03: Proceedings of the thirty-fth annual ACM symposium on Theory of computing, pages 720724, New York, NY, In USA, 2003. ACM Press. 12 [Gol97] Oded Goldreich. A sample of samplers: A computational perspective on sampling. Technical Report TR97-020, Electronic Colloquium on Computational Complexity, May 1997. 12, 25, 26 [Gur04] Venkatesan Guruswami. and expander graphs. [Kol68] Guest column: error-correcting codes SIGACT News, Andrei Nikolaevich Kolmogorov. Three approaches to the quantitative denition of information. on 1, [Lin44] 35(3):2541, 2004. 13 Problems Inform. Transmissi- pages 662664, 1968. 1 U. V. Linnik. On the least prime in an arithmetic progression. I. the basic theorem. Mat. Sbornik, 89 15(57):139178, 1944. 19 [LR04] Zeph Landau and Alexander Russell. Random cayley graphs are expanders: a simple proof of the alon-roichman theorem. J. Comb., [PS94] Electr. 11(1), 2004. 13 Alexander Polishchuk and Daniel A. Spielman. Nearly-linear size In STOC '94: Proceedings of the twentysixth annual ACM symposium on Theory of computing, pages holographic proofs. 194203, New York, NY, USA, 1994. ACM Press. 8, 22, 55 [Rad05] Jaikumar Radhakrishnan. Comment: Gap amplication using lazy random walks. Technical report, Electronic Colloquium on Computational Complexity (ECCC), 2005. 59 [Sch80] Jacob T. Schwartz. Fast probabilistic algorithms for verication of polynomial identities. [Sud97] Madhu Sudan. J. ACM, 27(4):701717, 1980. 8, 22 Decoding of Reed Solomon codes beyond the error-correction bound. Journal of Complexity, 13(1):180193, 1997. 15 [Sud99] Madhu Sudan. Vorlesung 16 im kurs 6.893: Approximabili- ty of optimization problems. http://theory.lcs.mit.edu/ ma- dhu/FT99/course.html, 1999. 19 90