170 likes | 298 Views
Umans Complexity Theory Lectures. Lecture 13: The complexity of counting. New Topic. The complexity of counting. Counting problems. So far, we have ignored function problems given x, compute f(x) important class of function problems: counting problems
E N D
UmansComplexity Theory Lectures Lecture 13: The complexity of counting
New Topic The complexity of counting
Counting problems • So far, we have ignored function problems • given x, compute f(x) • important class of function problems: counting problems • e.g. given 3-CNF φ how many satisfying assignments are there?
Counting problems • #P is the class of function problems expressible as: input x f(x) = |{y : (x, y) R}| where R P. • compare to NP(decision problem) input x f(x) = y : (x, y) R ? where R P.
Counting problems • examples • #SAT: given 3-CNF φ how many satisfying assignments are there? • #CLIQUE: given (G, k) how many cliques of size at least k are there?
Reductions • Reduction from function problem f1 to function problem f2 • two efficiently computable functions Q, A x (prob. 1) Q y (prob. 2) f1 f2 A f2(y) f1(x)
Reductions • problem fis #P-complete if • f is in #P • every problem in #P reduces to f • “parsimonious reduction”: preserves the number of solutions • many standard NP-completeness reductions are parsimonious • therefore: if #SAT is #P-complete we get lots of #P-complete problems Q x (prob. 1) y (prob. 2) f1 f2 A f2(y) f1(x)
#SAT #SAT: given 3-CNF φ how many satisfying assignments are there? Theorem: #SAT is #P-complete. • Proof: • clearly in #P: (φ, A) R A satisfies φ • take any f #P defined by R P
#SAT …x… …y… • add new variables z, produce φ such that z φ(x, y, z) = 1 C(x, y) = 1 • for (x, y) such that C(x, y) = 1 this z is unique • hardwire x • # satisfying assignments = |{y : (x, y) R}| f(x) = |{y : (x, y) R}| C CVAL reduction for R 1 iff (x, y) R
Relationship to other classes Question: is #P hard because it entails findingNP witnesses? …or is countingdifficult by itself?
Cycle Covers • cycle cover: collection of node-disjoint directed cycles that touch every node • #CYCLE-COVER: given directed graph G = (V, E) how many cycle covers does it have? Theorem(Valient): #CYCLE-COVER is #P-complete. • implies #MATCHING is #P-complete
Bipartite Matchings • Definition: • G = (U, V, E) bipartite graph with |U| = |V| • aperfect matching in G is a subset M E that touches every node, and no two edges in M share an endpoint
Bipartite Matchings • Definition: • G = (U, V, E) bipartite graph with |U| = |V| • aperfect matching in G is a subset M E that touches every node, and no two edges in M share an endpoint
Bipartite Matchings and Cycle Covers • Given bipartite graph G = (U, V, E) with |U| = |V| where U = V = {1,…,n}, • Let G’ be the graph (V,E’) where (u,v) in E’ iff u in U, v in V and (u,v) in E
Cycle Covers • Claim: 1-1 correspondence between cycle covers in G’ and perfect matchings in G • #MATCHING and #CYCLE-COVER parsimoniously reducible to each other 2 3 1 2 3 4 5 1 4 1 2 3 4 5 5 G = (U, V, E) G’ = (V, E’)
Bipartite Matchings • #MATCHING: given a bipartite graph G = (U, V, E) how many perfect matchings does it have? Theorem(Valiant)#MATCHING is #P-complete. • But… can find a perfect matching in polynomial time! • counting itself must be difficult
Relationship to other classes • To compare to classes of decision problems, usually consider P#P which is a decision class… • easy: NP, coNP P#P • easy: P#P PSPACE Toda’s Theorem :PH P#P.