Optimization problems, Approximation Algorithms

Yüklə 0,52 Mb.
 tarix 28.06.2018 ölçüsü 0,52 Mb. #52235

• many hard problems (especially NP-hard) are optimization problems

• e.g. find shortest TSP tour
• e.g. find smallest vertex cover
• e.g. find largest clique
• may be minimization or maximization problem
• “opt” = value of optimal solution

• often happy with approximately optimal solution

• warning: lots of heuristics
• we want approximation algorithm with guaranteed approximation ratio of r
• meaning: on every input x, output is guaranteed to have value
• at most r*opt for minimization
• at least opt/r for maximization

• Example approximation algorithm:

• Recall:
• Vertex Cover (VC): given a graph G, what is the smallest subset of vertices that touch every edge?
• NP-complete

• Approximation algorithm for VC:

• pick an edge (x, y), add vertices x and y to VC
• discard edges incident to x or y; repeat.

• Proof:

• an optimal VC must include at least one endpoint of each edge considered
• therefore 2*opt  actual

• some examples:

• (min) Vertex Cover: 2
• MAX-3-SAT (find assignment satisfying largest # clauses): 8/7
• (min) Set Cover: ln n
• (max) Clique: n/log2n
• (max) Knapsack: (1 + ε) for any ε > 0

(max) Knapsack: (1 + ε) for any ε > 0

• (max) Knapsack: (1 + ε) for any ε > 0
• called Polynomial Time Approximation Scheme (PTAS)

• algorithm runs in poly time for every fixed ε>0
• poor dependence on ε allowed

• A job for complexity: How to explain failure to do better than ratios on previous slide?

• just like: how to explain failure to find poly-time algorithm for SAT...
• first guess: probably NP-hard
• what is needed to show this?

• r-gap-producing reduction:

• f computable in poly time
• x  L1  opt(f(x))  k
• x  L1  opt(f(x)) > rk
• for max. problems use “ k” and “< k/r”
• Note: target problem is not a language

• promise problem (yes  no not all strings)
• “promise”: instances always from (yes  no)

• Main purpose:

• r-approximation algorithm for L2 distinguishes between f(yes) and f(no); can use to decide L1
• NP-hard to approximate to within r”

• Example gap-preserving reduction:

• reduce MAX-k-SAT with gap ε
• to MAX-3-SAT with gap ε’
• “MAX-k-SAT is NP-hard to approx. within ε  MAX-3-SAT is NP-hard to approx. within ε’ ”

• Missing link: first gap-producing reduction

• history’s guide
• it should have something to do with SAT
• Definition: MAX-k-SAT with gap ε

• instance: k-CNF φ
• YES: some assignment satisfies all clauses
• NO: no assignment satisfies more than (1 – ε) fraction of clauses

• k-SAT NP-hard  for any language L  NP proof system of form:

• given x, compute reduction to k-SAT: x
• expected proof is satisfying assignment for x
• verifier picks random clause (“local test”) and checks that it is satisfied by the assignment
• x  L  Pr[verifier accepts] = 1
• x  L  Pr[verifier accepts] < 1

• MAX-k-SAT with gap ε NP-hard  for any language L  NP proof system of form:

• given x, compute reduction to MAX-k-SAT: x
• expected proof is satisfying assignment for x
• verifier picks random clause (“local test”) and checks that it is satisfied by the assignment
• x  L  Pr[verifier accepts] = 1
• x  L  Pr[verifier accepts] ≤ (1 – ε)
• can repeat O(1/ε) times for error < ½

• can think of reduction showing MAX-k-SAT with gap ε NP-hard as designing a proof system for NP in which:

• verifier only performs local tests
• invalidity of proof* evident all over: “holographic proof” and an  fraction of tests notice such invalidity

• Probabilistically Checkable Proof (PCP) permits novel way of verifying proof:

• pick random local test
• query proof in specified k locations
• accept iff passes test

• PCP[r(n),q(n)]: set of languages L with p.p.t. verifier V that has (r, q)-restricted access to a string “proof”

• V tosses O(r(n)) coins
• V accesses proof in O(q(n)) locations
• (completeness) x  L   proof such that
• Pr[V(x, proof) accepts] = 1
• (soundness) x  L   proof*
• Pr[V(x, proof*) accepts]  ½

• Two observations:

• PCP[1, poly n] = NP
• proof?
• PCP[log n, 1]NP
• proof?

• Corollary: MAX-k-SAT is NP-hard to approximate to within some constant .

• using PCP[log n, 1] protocol for, say, VC
• enumerate all 2O(log n) = poly(n) sets of queries
• construct a k-CNF φi for verifier’s test on each
• note: k-CNF since function on only k bits
• “YES” VC instance  all clauses satisfiable
• “NO” VC instance  every assignment fails to satisfy at least ½ of the φi  fails to satisfy an  = (½)2-k fraction of clauses.

• Elements of proof:

• arithmetization of 3-SAT
• we will do this
• low-degree test
• we will state but not prove this
• self-correction of low-degree polynomials
• we will state but not prove this
• proof composition
• we will describe the idea

• Two major components:

• NPPCP[log n, polylog n] (“outer verifier”)
• we will prove this from scratch, assuming low-degree test, and self-correction of low-degree polynomials
• NPPCP[n3, 1] (“inner verifier”)
• we will not prove

NP  PCP[log n, polylog n] (“outer verifier”)

• NP PCP[log n, polylog n] (“outer verifier”)
• NP PCP[n3, 1] (“inner verifier”)
• composition of verifiers:

• reformulate “outer” so that it uses O(log n) random bits to make 1 query to each of 3 provers
• replies r1, r2, r3 have length polylog n
• Key: accept/reject decision computable from r1, r2, r3 by small circuit C

NP  PCP[log n, polylog n] (“outer verifier”)

• NP PCP[log n, polylog n] (“outer verifier”)
• NP PCP[n3, 1] (“inner verifier”)
• composition of verifiers (continued):

• final proof contains proof that C(r1, r2, r3) = 1 for inner verifier’s use
• use inner verifier to verify that C(r1,r2,r3) = 1
• O(log n)+polylog n randomness
• O(1) queries
• tricky issue: consistency

• NP  PCP[log n, 1] comes from

• repeated composition
• PCP[log n, polylog n] with PCP[log n, polylog n] yields
• PCP[log n, polyloglog n]
• PCP[log n, polyloglog n] with PCP[n3, 1] yields
• PCP[log n, 1]

• 2. PCP for QE:

• proof = all quadratic functions of a soln. x
• verification = check that a random linear combination of equations is satisfied by x

• ii bi Xi + c = 0

• = { systems of quadratic equations over F2 that have a solution (assignment to the X variables) }

• Proof: clearly in NP; reduce from CIRCUIT SAT

• circuit C an instance of CIRCUIT SAT
• QE variables = variables + gate variables

• intended proof:

• F the field with 2 elements
• given x 2 Fn, a solution to instance of QE
• fx: Fn ! F2 all linear functions of x
• fx(a) = i ai xi
• gx: Fn x n ! F2 includes all quadratic fns of x
• gx(A) = i, j A[i,j]xixj
• KEY: can evaluate any quadratic function of x with a single evaluation of fx and gx

If prover keeps promise to supply all quadratic fns of x, a solution of QE instance…

• If prover keeps promise to supply all quadratic fns of x, a solution of QE instance…
• Verifier’s action:

• query a random linear combination R of the equations of the QE instance
• Completeness: obvious
• Soundness: x fails to satisfy some equation; imagine picking coeff. for this one last
• Pr[x satisfies R] = 1/2

• To “enforce promise”, verifier needs to perform:

• linearity test: verify f, g are (close to) linear
• self-correction: access the linear f’, g’ that are close to f, g
• consistency check: verify V = u ­ u

• pick random a,b; check if h(a) + h(b) = h(a+b); repeat O(1) times
• do this for functions f and g supplied by prover

• Self-correction:

• Pra [h’(a) = h(a)] ¸ 1 – O(±)
• to access h’(a), pick random b; compute
• h(b) + h(a+b)
• with prob. at least 1 – 2¢O(±), h(b) = h’(b) and h(a+b) = h’(a+b); hence we compute h’(a)

• pick random a, b 2 Fn; check that
• f’(a)f’(b) = g’(abT)
• completeness: if V = u ­ u
• f’(a)f’(b) = (iaiui )(ibiui) = i,j aibjV[i,j] = g’(abT)

• soundness: claim that if V  u ­ u
• Pr[(iaiui )(ibiui) = i,j aibjV[i,j] ] · 3/4
• Pr[(uuT)b  Vb] ¸ 1/2
• Pr[aT(uuT)b  aTVb] ¸ ½¢½ = ¼

Yüklə 0,52 Mb.

Dostları ilə paylaş:

Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

Ana səhifə