PCP and CSP A (gap) problem has a PCP iff can be reduced to CSP Variables are the bits of the proofs: assignment is a proof Constraints are the verifier program with different random tapes: constraint is satisfied by the assignment if the verifier accepts the proof Verifier accepts w/ prob. = 1 ↔ All constraints satisfied Verifier accepts w/ prob. < 1/2 ↔ Less than half satisfied qCSP with m constraints: each constraint involves q variables PCP(log m,q): q-query (non-adaptive) verifier, tosses at most log m coins 6
Decision Problem to Gap Problem L instances G instances 7
Decision Problem to Gap Problem Reducing a decision problem (language) L to a gap problem G L instances G instances 7
Decision Problem to Gap Problem Reducing a decision problem (language) L to a gap problem G “Separating” Yes and No L instances G instances 7
Decision Problem to Gap Problem Reducing a decision problem (language) L to a gap problem G “Separating” Yes and No If L is hard, and can do the reduction efficiently, then approximating the function L instances G instances underlying G should be hard 7
Decision Problem to Gap Problem Reducing a decision problem (language) L to a gap problem G “Separating” Yes and No If L is hard, and can do the reduction efficiently, then approximating the function L instances G instances underlying G should be hard 7
Decision Problem to Gap Problem Reducing a decision problem (language) L to a gap problem G “Separating” Yes and No If L is hard, and can do the reduction efficiently, then approximating the function L instances G instances underlying G should be hard 7
PCP Theorem 8
PCP Theorem Can reduce any NP language to qCSP 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP With m = poly(n) constraints and q = O(1) 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP With m = poly(n) constraints and q = O(1) Since qCSP has a PCP (with r=log m, and q=q), any NP language has a PCP 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP With m = poly(n) constraints and q = O(1) Since qCSP has a PCP (with r=log m, and q=q), any NP language has a PCP NP ⊆ PCP(log n, 1) 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP With m = poly(n) constraints and q = O(1) Since qCSP has a PCP (with r=log m, and q=q), any NP language has a PCP Class of languages PCP(r,q): with r-coin, q-query NP ⊆ PCP(log n, 1) PCP verifiers 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP With m = poly(n) constraints and q = O(1) Since qCSP has a PCP (with r=log m, and q=q), any NP language has a PCP Class of languages PCP(r,q): with r-coin, q-query NP ⊆ PCP(log n, 1) PCP verifiers Note: PCP(log n, *) ⊆ NP 8
PCP Theorem A gap problem, with gap=1/2 Can reduce any NP language to qCSP With m = poly(n) constraints and q = O(1) Since qCSP has a PCP (with r=log m, and q=q), any NP language has a PCP Class of languages PCP(r,q): with r-coin, q-query NP ⊆ PCP(log n, 1) PCP verifiers Note: PCP(log n, *) ⊆ NP So, NP = PCP(log n, 1) 8
Hardness of Approximation 9
Hardness of Approximation By PCP theorem, Max-qCSPSat is hard to approximate within a factor of 1/2 9
Hardness of Approximation By PCP theorem, Max-qCSPSat is hard to approximate within a factor of 1/2 How about Max-3SAT? Max-CLIQUE? Other NP-hard functions? 9
Hardness of Approximation By PCP theorem, Max-qCSPSat is hard to approximate within a factor of 1/2 How about Max-3SAT? Max-CLIQUE? Other NP-hard functions? Reduce Max-qCSPSat to these problems 9
Hardness of Approximation By PCP theorem, Max-qCSPSat is hard to approximate within a factor of 1/2 How about Max-3SAT? Max-CLIQUE? Other NP-hard functions? Reduce Max-qCSPSat to these problems Such that approximation for them imply approximation for Max-qCSPSat 9
Gap-preserving Reductions 10
Gap-preserving Reductions From gap problem G 1 to G 2 10
Gap-preserving Reductions From gap problem G 1 to G 2 G 1 instances G 2 instances 10
Gap-preserving Reductions From gap problem G 1 to G 2 G 1 instances G 2 instances 10
Gap-preserving Reductions From gap problem G 1 to G 2 G 1 instances G 2 instances 10
Gap-preserving Reductions From gap problem G 1 to G 2 If G 1 is hard to solve and reduction is efficient, then G 2 is hard to solve G 1 instances G 2 instances 10
Gap-preserving Reductions From gap problem G 1 to G 2 If G 1 is hard to solve and reduction is efficient, then G 2 is hard to solve Then function underlying G 2 is hard to approximate (within a factor of its gap) G 1 instances G 2 instances 10
Gap-preserving Reductions From gap problem G 1 to G 2 If G 1 is hard to solve and reduction is efficient, then G 2 is hard to solve Then function underlying G 2 is hard to approximate (within a factor of its gap) G 1 instances G 2 instances The bigger the gap in G 2 the larger the approximation factor shown hard 10
Max-qCSP to Max-3SAT 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) At most 2 q q-clauses 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) At most 2 q q-clauses Collect all clauses from all constraints 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) At most 2 q q-clauses Collect all clauses from all constraints So far gap is preserved up to a factor of 1/2 q 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) At most 2 q q-clauses Collect all clauses from all constraints So far gap is preserved up to a factor of 1/2 q Now turn each q-clause into a collection of 3-clauses 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) At most 2 q q-clauses Collect all clauses from all constraints So far gap is preserved up to a factor of 1/2 q Now turn each q-clause into a collection of 3-clauses Adding at most q auxiliary var.s to get at most q 3-clauses 11
Max-qCSP to Max-3SAT Write each constraint as an exponential sized CNF (AND-OR) formula, of clauses with q vars (q-clauses) At most 2 q q-clauses Collect all clauses from all constraints So far gap is preserved up to a factor of 1/2 q Now turn each q-clause into a collection of 3-clauses Adding at most q auxiliary var.s to get at most q 3-clauses Gap preserved up to a factor of 1/(q2 q ) 11
Max-3SAT to Max-CLIQUE 12
Max-3SAT to Max-CLIQUE Recall 3SAT to CLIQUE: Clauses → Graph 12
Max-3SAT to Max-CLIQUE Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) Clauses → Graph (w ∨ y) (w ∨ x ∨ ¬z) 12
Max-3SAT to Max-CLIQUE Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) Clauses → Graph vertices: each clause’ s (w ∨ y) sat assignments (for its variables) (w ∨ x ∨ ¬z) 12
Max-3SAT to Max-CLIQUE Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) Clauses → Graph vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* 0*1* (w ∨ x ∨ ¬z) 12
Max-3SAT to Max-CLIQUE Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) Clauses → Graph vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* 0*1* (w ∨ x ∨ ¬z) 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* 0*1* (w ∨ x ∨ ¬z) 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* 0*1* (w ∨ x ∨ ¬z) 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* 0*1* 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 (w ∨ x ∨ ¬z) 10*0 111 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 k-clique iff k clauses (w ∨ x ∨ ¬z) 10*0 111 satisfiable 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 k-clique iff k clauses (w ∨ x ∨ ¬z) 10*0 111 satisfiable 011 01*0 10*1 11*0 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 k-clique iff k clauses (w ∨ x ∨ ¬z) 10*0 111 satisfiable 3-Clique 1*1* 011 *110 01*0 10*1 11*0 11*0 ---- sat assignment 1110 12
Max-3SAT to Max-CLIQUE *000 Recall 3SAT to CLIQUE: (x ∨ ¬y ∨ ¬z) *111 *100 Clauses → Graph *010 *101 *110 *001 vertices: each clause’ s (w ∨ y) sat assignments (for its variables) 1*0* 1*1* edges between 0*1* consistent assignments 00*0 k-clique iff k clauses (w ∨ x ∨ ¬z) 10*0 111 satisfiable 3-Clique 1*1* 011 *110 01*0 10*1 11*0 Gap preserved 11*0 ---- sat assignment 1110 12
Proving the PCP Theorem 13
Recommend
More recommend