Ressourcen: Beweisbits nur für Funktionsauswertungen benötigt. Stelle sicher, dass jedes Teilmodul nur konstant viele Funktionsauswertungen verwendet. Zufall nur zur Auswahl von zufälligen Eingaben für Funktionsauswertungen (abgesehen vom Beweisverifizierer). Dann O(n3) Zufallsbits insgesamt. Fehlerabschätzung: Für wohlgeformte Beweise alle Module immer korrekt. Ansonsten Fehlerwahrscheinlichkeit für jedes Modul beschränkt durch Konstante kleiner 1. Überall Wahrscheinlichkeiten so justieren (Probability-Amplification), dass insgesamt im negativen Fall Fehlerwahrscheinlichkeit höchstens 1/2. 399 Details zum Linearitätstest Lineare Algebra: f linear :⇔ (1) Für alle Vektoren x, y aus dem Vektorraum: f (x + y) = f (x) + f (y). (2) Für alle Vektoren x, Skalare a: f (a · x) = a · f (x). m Hier Körper Z2 und f : Z2 → Z2. Damit Eigenschaft (2) trivialerweise erfüllt: • a = 1: f (1 · x) = 1 · f (x); • a = 0: f (0 · x) = f (0m) = 0, folgt aus (1). 400 Konkretisierung von fast linearen“ Funktionen: ” Definition: f , g : Zm 2 → Z2 heißen δ-nah, falls X −m Prx∈Zm {f (x) 6= g(x)} = 2 [f (x) 6= g(x)] ≤ δ. 2 x∈Zm 2 (Anders ausgedrückt: Hammingabstand, d. h. Anzahl bitweiser Unterschiede, zwischen Wertetabellen höchstens δ · 2m.) Identifiziere fast lineare Funktionen mit solchen, die δ-nah sind zu irgendeiner linearen Funktion. Dabei δ > 0 später fixierte Konstante. 401 Modul Linearitätstest: Eingabe: Funktionstabelle einer Funktion f : Zm 2 → Z2 . 1. Wähle unabhängig gemäß Gleichverteilung x, y ∈ Zm 2. 2. Akzeptiere, falls f (x + y) = f (x) + f (y). Offensichtlich reichen drei Funktionsauswertungen und Wahl von zwei zufälligen Argumenten. Lemma A: • f linear: Linearitätstest akzeptiert mit Wahrscheinlichkeit 1. • f zu keiner linearen Funktion δ-nah für δ < 1/3: Linearitätstest akzeptiert mit Wahrscheinlichkeit höchstens 1 − δ/2. 402 Beweis von Lemma A: Erster Teil trivial, nur zweiter zu zeigen. Beweis indirekt. Behauptung: Prx,y {f (x + y) 6= f (x) + f (y)} ≤ Dann gibt es g : m Z2 δ ⇒ 2 → Z2 linear und δ-nah zu f . Vorteil dieser Formulierung: Es reicht, g explizit anzugeben und die Eigenschaften nachzuweisen. Definition von g: Sei g(a) der Wert, der unter allen Werten f (a + b) − f (b), b ∈ Zm 2, am häufigsten ist (= 0, falls 0 und 1 beide gleich häufig). Bemerkung: f linear ⇒ g = f . 403 Z.-Beh. 1: f und g sind δ-nah. Beweis von Z.-Beh. 1: δ Voraussetzung: Prx,y {f (x + y) = 6 f (x) + f (y)} ≤ . 2 δ 2 ≥ Prx,y {f (x + y) − f (y) 6= f (x)} ≥ Prx,y {f (x + y) − f (y) = g(x) ∧ g(x) 6= f (x)} = 2 −m X [g(x) 6= f (x)] · 2 x ≥ = | −m y [f (x + y) − f (y) = g(x)] {z } = Pry {f (x + y) − f (y) = g(x)} ≥ 1/2, wegen Def. von g X 1 −m ·2 [g(x) 6= f (x)] 2 x 1 · Prx {g(x) 6= f (x)}. 2 Also Prx {g(x) 6= f (x)} ≤ δ. X (Beweis der Z.-Beh. 1) 2 404 Z.-Beh. 2: g ist linear. Beweis von Z.-Beh. 2: Definiere p(a) := Prx {g(a) = f (a + x) − f (x)}. Wegen Definition von g: p(a) ≥ 1/2 für alle a. Zeige später, dass sogar: p(a) ≥ 1 − δ für alle a. Zunächst Anwendung für Z.-Beh. 2. . . 405 Wende p(a) ≥ 1 − δ dreimal an: (1) Prx {g(a) = f (a + x) − f (x)} = p(a) ≥ 1 − δ; (2) Prx {g(b) = f (b + a + x) − f (a + x)} = p(b) ≥ 1 − δ; (3) Prx {g(a + b) = f (a + b + x) − f (x)} = p(a + b) ≥ 1 − δ. m zuf ällig ⇒ a + x ∈ Z (Beachte: x ∈ Zm 2 zufällig.) 2 Alle drei Gleichungen auf den linken Seiten gelten zusammen mit Wskt. ≥ 1 − 3δ. Dann auch (1) + (2) − (3)“, liefert: ” Prx {g(a) + g(b) − g(a + b) = 0} ≥ 1 − 3δ. Da nach Voraussetzung δ < 1/3: Prx {g(a) + g(b) = g(a + b)} > 0. Ereignis unabh. von x: Es gilt immer g(a) + g(b) = g(a + b). Also g linear. 406 Noch zu zeigen: p(a) ≥ 1 − δ für alle a. δ 2 Voraussetzung: Prx,y {f (x) + f (y) 6= f (x + y)} ≤ . Zweimal anwenden liefert: δ (1) Prx,y {f (x + a) + f (y) 6= f (x + a + y)} ≤ ; 2 δ (2) Prx,y {f (x) + f (a + y) 6= f (x + a + y)} ≤ . 2 Vereinigung beider Ereignisse hat Wskt. ≤ δ, daher für Komplement Wskt. ≥ 1 − δ: Prx,y {f (x + a) + f (y) = f (x + a + y) ∧ f (x) + f (a + y) = f (x + a + y)} ≥ 1 − δ. ⇒ Prx,y { f| (x + a) + f (y) {z = f (x) + f (y + a)} } ≥ 1 − δ ⇔ f (x + a) − f (x) = f (y + a) − f (y) Jetzt Unabhängigkeit von x und y auszunutzen. . . 407 Weiter mit der Rechnung: 1 − δ ≤ Prx,y {f (x + a) − f (x) = f (y + a) − f (y)} X = Prx,y {f (x + a) − f (x) = z, z = f (y + a) − f (y)} z∈{0,1} (Unabhängigkeit) X = Prx {f (x + a) − f (x) = z} · Pry {f (y + a) − f (y) = z} z∈{0,1} (x und yXhaben selbe Verteilung) = Prx {f (x + a) − f (x) = z}2 | {z } z∈{0,1} = p(a) für z = g(a) und = 1 − p(a) für z 6= g(a) = p(a)2 + (1 − p(a))2 (p(a) ≥ 1/2 gem. Def von g, also 1 − p(a) ≤ p(a)) 2 ≤ p(a) + p(a) · (1 − p(a)) = p(a). Also p(a) ≥ 1 − δ. (Bew. Z.-Beh. 2 und Lemma A) 2 408 Falls Linearitätstest für f erfolgreich also: f linear oder f δ-nah zu linearer Funktion g. Tatsächlich dann nur eine mögliche lineare Funktion, falls δ klein genug. Benutze folgendes Lemma: Lemma B: f , g verschiedene lineare Funktionen vom Typ Zm 2 → Z2 : Dann gilt Prx {f (x) 6= g(x)} = 1/2. Also: f δ-nah zu linearen Funktionen g1, g2 für δ < 1/4: Dann (Dreiecksungleichung) auch g1, g2 2δ-nah und damit (Lemma B) g1 = g2. 409 Beweis von Lemma B: Betrachte d = f − g: Lineare Funktion, außerdem d 6= 0. P 6 I ⊆ {1, . . . , m}. d (x1, . . . , xm) = i ∈I xi , wobei ∅ = Es gilt (mit sehr wichtigem Lemma“): ” 1 2 Prx {d (x) 6= 0} = . Also folgt auch 1 2 Prx {f (x) 6= g(x)} = . (Beweis von Lemma B) 2 410 Im Folgenden δ < 1/4. Für f δ-nah zu linearer Funktion g: Nach Lemma B g eindeutig, nenne g die zu f gehörige lineare Funktion. Diese Funktion liegt nicht explizit vor. Können aber trotzdem randomisiert Funktionswerte berechnen. Modul Robuster Funktionsauswerter: Eingabe: Funktionstabelle einer Funktion f : Zm 2 → Z2 ; Eingabe a ∈ Zm 2. m Z2 gemäß Gleichverteilung. 1. Wähle x ∈ 2. Berechne fb(a) = f (x + a) − f (x). Ressourcen: Anzahl Funktionsauswertungen und zufällige Argumente offensichtlich wieder konstant. 411 Lemma C: • f linear: fb(a) = f (a) mit Wahrscheinlichkeit 1. • f δ-nah zu linearer Funktion g: Prx {fb(a) 6= g(a)} ≤ 2δ. Beweis: f und g δ-nah ⇒ Prx {f (x) 6= g(x)} ≤ δ; Prx {f (x + a) 6= g(x + a)} ≤ δ. Wskt. für Vereinigung ≤ 2δ, also für Komplement ≥ 1 − 2δ: Prx { f| (x) = g(x) ∧ f (x {z+ a) = g(x + a)} } ≥ 1 − 2δ. ⇒ f (x + a) − f (x) = g(x + a) − g(x) g linear = g(a) Also Prx {f (x + a) − f (x) = g(a)} ≥ 1 − 2δ. (Beweis von Lemma C) 2 412 Modul Konsistenztest: Eingabe: Funktionstabellen von Funktionen f1, f2, f3 mit Eingabelängen n, n2 bzw. n3, jeweils linear oder δ-nah zu linearer Funktion mit δ ≤ 1/24. ′ ′′ 1. Wähle unabhängig gleichverteilt x, x , x ∈ 2. Definiere n2 x ⊗ x ∈ Z2 durch (x ⊗ x ′)i ,j := xi ′′ ′′ n3 x ⊗ y ∈ Z2 durch (x ⊗ y)i ,j,k := ′ n Z2 , y∈ n2 Z2 . · xj′ ; ′′ xi · yj,k . ( a ⊗ b“: Lies a Tensor b“, Tensorprodukt.) ” ” 3. Berechne mit robustem Funktionsauswerter: ′ ′′ ′ ′′ fb1(x), fb1(x ), fb1(x ), fb2(x ⊗ x ), fb2(y) und fb3(x ⊗ y). 4. Akzeptiere, wenn: ′ ′ ′′ ′′ fb1(x) · fb1(x ) = fb2(x ⊗ x ) und fb1(x ) · fb2(y) = fb3(x ⊗ y). 413 Ressourcen: Anzahl Funktionsaufrufe und zufällige Argumente konstant. Lemma D: a a a (1) f1 = L1, f2 = L2 , f3 = L3: Konsistenztest akzeptiert mit Wskt. 1. (2) Es gibt kein a, sodass fi δ-nah zu Lai für i = 1, 2, 3: Konsistenztest akzeptiert mit durch Konstante kleiner 1 beschränkter Wahrscheinlichkeit. 414 Beweis von Lemma D: Teil (1): Voraussetzung: f1 = La1, f2 = La2 , f3 = La3 . Alle Funktionsauswertungen sind korrekt. X X aj ak yj,k ai xi′′ · fb1(x ′′) · fb2(y) = La1 (x ′′) · La2 (y) = = = = Xi i ,j,k X j,k ai aj ak · xi′′yj,k ai aj ak · (x ′′ ⊗ y)i ,j,k i ,j,k La3 (x ′′ ′ ′ Analog folgt fb1(x) · fb1(x ) = fb2(x ⊗ x ). ⊗ y) = fb3(x ′′ ⊗ y). 415 Teil (2): Es gibt kein a, sodass fi δ-nah zu Lai für i = 1, 2, 3. Da δ ≤ 1/24 und Fehlerwskt. für einzelnen Aufruf von robuster Funktionsauswertung höchstens 2δ ≤ 1/12: Mit Wskt. mindestens 1/2 alle sechs Aufrufe korrekt. Im Folgenden alles unter der Bedingung, dass dies der Fall. Betrachte den Fall, dass f1 δ-nah zu La1 und f2 δ-nah zu linearer Funktion g2 6= La2 . X Sei g2(y1,1, . . . , yn,n) = bi ,j yi ,j . 1≤i ,j ≤n Restlicher Fall f1 δ-nah zu La1 , f2 δ-nah zu La2 und f3 δ-nah zu linearer Funktion g3 6= La3 in den Übungen. 416 a Sei A = (ai ,j ) mit ai ,j = ai · aj (Koeffizienten von L2). Sei B = (bi ,j ) (Koeffizienten von g2 6= La2 ). Dann gilt A 6= B. Konsistenztest überprüft (u. A.), ob ? fb1(x) · fb1(x ′) = fb2(x ⊗ x ′). In Matrixschreibweise: L. S. = La1(x) R. S. = X · La1 (x ′) = X ai aj xi xj′ = x ⊤Ax ′, i ,j ⊤ ′ bi ,j xi xj′ = x Bx . i ,j Also äquivalent zu Test, ob x ⊤Dx ′ = 0, mit D := A − B 6= 0n×n. 417 Sei Dj die j -te Spalte der Matrix D und es sei Dj 6= 0n. Dann folgt (mit welchem Lemma wohl?): Prx {x ⊤Dj 6= 0} = 1/2. Damit: Prx {x ⊤D 6= 0n} ≥ 1/2. und (wieder mit dem altbekannten Lemma): ⊤ ′ Prx,x′ {x Dx 6= 0} ≥ 1/4. Also entdeckt der Konsistenztest den Fehler mindestens mit Wahrscheinlichkeit 1/4. (Beweis von Lemma D) 2 418 Damit haben wir alle Module beschrieben. • Festlegen von δ: Für Linearitätstest: δ < 1/3; Für Eindeutigkeit der linearen Korrektur: δ < 1/4. Für Konsistenztest: δ ≤ 1/24. Also reicht insgesamt δ := 1/24 . • Es bleibt noch (wie in der Grobplanung festgestellt), die Einzelwahrscheinlichkeiten zu justieren. Probability-Amplification führt zu Erhöhung der Anzahl von Funktionsaufrufen und Beweisbits um konstanten Faktor. • Obere Schranke für die (konstante) Gesamtanzahl Beweisbits in den Übungen. (Tipp: Lösung 6= 42.) (Beweis von Satz 12.2.2) 2 419 Klassischer Beweis für komplettes PCP-Theorem: • Logarithmisch viele Zufallsbits: Θ(n3 ) Beweise polynomieller Länge statt 2 hier. Dazu: Lineare Funktionen über Z2 → Polynome von kleinem Grad d (n) über Fq(n). • Mit diesen Ideen: Zweiter Beweisverifizierer, der NP ⊆ PCP(log n, polylog n) zeigt. • Kompositionslemma, das beide Verifizierer verbindet. Einige Zutaten haben Eigenleben bekommen – Stichworte: Locally testable / decodable codes, Property testing. Neuer Beweis für komplettes PCP-Theorem (Dinur 2005): Graphtheorie (speziell Expandergraphen) statt Algebra, Beweisverifizierer aus Beweis von Satz 12.2.2 als Teilmodul. 420 New York Times, 7.4.1992: In a discovery that overturns centuries of mathematical ” tradition, a group of graduate students and young researchers has discovered a way to check even the longest and most complicated proof by scrutinizing it in just a few spots . . .“ . . . Using this new result, the researchers have already made ” a landmark discovery in computer science. They showed that it is impossible to compute even approximate solutions for a large group of practical problems that have long foiled researchers. . .“ 421 12.3 Das PCP-Theorem und Nichtapproximierbarkeitsresultate Hier PCP-Theorem NP = PCP(log n, 1) anwenden. Nach altem Plan: Ausnutzen der Lückentechnik für Nichtapproximierbarkeitsergebnisse. Als Beispiele hier: Nichtapproximierbarkeit von MAX-3-SAT (geeignet als Basisproblem) und MAX-CLIQUE. 422 Alter Plan jetzt detaillierter: Haben 3-SAT ∈ PCP(log n, 1), also rand. Beweisverifizierer für 3-SAT mit entsprechenden Restriktionen. Beweisverifizierer übernimmt Rolle der polynomiellen NTM für NP-Problem aus dem Beweis des Satzes von Cook. Jetzt: Polynomielle Reduktion von 3-SAT auf MAX-3-SAT. Konstruiere MAX-3-SAT-Formel ψ, sodass für Konstante δ > 0 gilt: • ϕ ∈ 3-SAT ⇒ Alle Klauseln in ψ erfüllbar. • ϕ 6∈ 3-SAT ⇒ Höchstens (1 − δ)-Anteil aller Klauseln in ψ gleichzeitig erfüllbar. NP-schweres ((1 − δ)m, m)-Lückenproblem! 423 Nach Bemerkung 8.3.1: P 6= NP ⇒ MAX-3-SAT nicht in Polynomialzeit bis auf Faktor kleiner als m/((1 − δ)m) = 1/(1 − δ) approximierbar. Wiederholung am konkreten Beispiel: Wähle Konstante ε > 0 so, dass 1 + ε = 1/(1 − δ). Approximationsalgorithmus der Güte kleiner als 1 + ε: Anteil der vom Algorithmus erfüllten Klauseln sei α. • α > 1 − δ: Dann muss ψ erfüllbar sein. • α ≤ 1 − δ: Dann in optimaler Lösung Anteil erfüllter Klauseln kleiner als (1 − δ) · 1 = 1, 1−δ also ψ nicht erfüllbar. Insgesamt damit beide Fälle unterscheidbar. 424 Satz 12.3.1: Es existiert Konstante ε > 0, sodass P 6= NP impliziert, dass MAX-3-SAT nicht in Polynomialzeit mit Güte kleiner als 1 + ε approximierbar. Hatten in Kapitel 8.2 gezeigt: MAX-3-SAT ∈ APX(7/8). Folgerung 12.3.2: P 6= NP ⇒ MAX-3-SAT ∈ APX − PTAS. Beweis von Satz 12.3.1: Polynomielle Reduktion von 3-SAT auf MAX-3-SAT. PCP-Theorem: Es gibt rand. Beweisverifizierer für 3-SAT, sodass für Instanz mit n Variablen: • maximal r = r(n) = ⌊c log n⌋ Zufallsbits, c > 0 Konstante; • maximal k Beweisbits, k ∈ N Konstante (k ≥ 3). O. B. d. A. immer genau r Zufallsbits und k Beweisbits. 425 Beweis formatieren: N := 2r = 2⌊c log n⌋ verschiedene Zufallsbitstrings, für jeden werden k verschiedene Positionen adressiert. Also insgesamt maximal kN Beweispositionen adressiert. O. B. d. A. Beweise der Länge genau kN und Menge aller Beweise = {0, 1}kN . Codierung des Beweisverifizierers für 3-SAT-Instanz (1/3): Fixiere 3-SAT-Instanz: Formel ϕ = c1 ∧ · · · ∧ cm, Klauseln c1, . . . , cm der Länge höchstens 3, n Variablen. 426 Codierung des Beweisverifizierers (2/3): kN Definiere zu ϕ Funktionen fz : {0, 1} → {0, 1}, 0 ≤ z ≤ N − 1, wobei Index z ↔ Zufallsbitstring z ∈ {0, 1}r . • Zufallsbitvektor z fest ⇒ Beweispositionen im Beweisverifizierer fest. • fz (y) = 1, falls Beweisverifizierer mit Zufallsbits z und Beweis y ∈ {0, 1}kN feste Eingabe ϕ akzeptiert. Wichtig: fz hängt formal von y = (y1, . . . , ykN ) ab, essenziell abhängig aber nur von k Bits in y. D. h.: Funktion vom Typ {0, 1}k → {0, 1}. Funktionen f0, . . . , fN−1 codieren Verhalten des Beweisverifizierers auf 3-SAT-Instanz ϕ. 427 Codierung des Beweisverifizierers (3/3): Eigenschaften der Funktionen f0, . . . , fN−1 (aus Definition von PCP-Beweisverifizierern): • ϕ erfüllbar: Es gibt Beweis y ∈ {0, 1}kN , sodass für alle Zufallsbitstrings z: fz (y) = 1. ′ kN • ϕ nicht erfüllbar: Für alle Beweise y ∈ {0, 1} : Höchstens Hälfte aller Zufallsbitstrings z erfüllt fz (y ′) = 1. Das ist die benötigte Lückeneigenschaft! Noch zu tun: Funktionen f0, . . . , fN−1 durch MAX-3-SAT-Formel ausdrücken. Muss das auch effizient tun können (polynomielle Reduktion). 428 Polynomielle Reduktion 3-SAT → MAX-3-SAT: Für jedes z = 0, . . . , N − 1, N = 2r = 2⌊c log n⌋ = poly(n) und Funktion fz vom Typ {0, 1}k → {0, 1}, k = O(1): 1. Wertetabelle aus Beweis y ∈ {0, 1}kN generieren. Beweispositionen durch effizienten Verifizierer bestimmen, nur k = O(1) viele in Beweis der Länge kN = poly(n). 2. KNF für fz aus Wertetabelle generieren. Maximal 2k Minterme der Länge k. 3. Polynomielle Reduktion SAT → 3-SAT anwenden: ∗ k = max{1, k − 2} Klauseln der Länge 3 für jede ursprüngliche Klausel, insgesamt also ≤ k ∗ · 2k für fz . Sei ψ Konjunktion aller erhaltenen Klauseln, insgesamt höchstens N · k ∗ · 2k Stück. 429 Was passiert mit der Lücke zwischen positiven und negativen Eingaben? Lückeneigenschaft: • ϕ erfüllbar: Für jedes fz alle Klauseln erfüllbar. • ϕ nicht erfüllbar: Mindestens N/2 Werte z mit fz (y) = 0. Für festes z: fz (y) = 0, dann mindestens eine der 2k Klauseln in der KNF und auch mindestens eine der 3-SAT-Klauseln nicht erfüllbar. Also insgesamt mindestens N/2 nicht erfüllte Klauseln, von höchstens N · k ∗ · 2k vielen Klauseln in ψ. N/2 1 > 0, konstant. = Definiere δ := ∗ k k+1 N ·k ·2 max{1, k − 2} · 2 Dann höchstens (1 − δ)-Anteil aller Klauseln erfüllt. 2 430 Bemerkungen: • Beweis zeigt, dass Anzahl k gelesener Beweispositionen essenziell für Lücke und damit die ausschließbare Güte. • Was passiert für k = 2? Dann Klauseln der Länge 2. Aber damit erzeugte SAT-Instanz effizient lösbar und P = NP! Vermutung also: k ≥ 3 notwendig. • Konstanter Faktor bei Zufallsbits geht nur in Exponenten des Rechenzeitpolynoms für Reduktionsalgorithmus ein. 431