Presentation is loading. Please wait.

Presentation is loading. Please wait.

Umans Complexity Theory Lectures

Similar presentations


Presentation on theme: "Umans Complexity Theory Lectures"— Presentation transcript:

1 Umans Complexity Theory Lectures
The complexity of counting

2 New Topic The complexity of counting

3 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?

4 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 ?

5 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?

6 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 f1(x) f2(y)

7 Reductions problem f is #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 f1(x) f2(y)

8 #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

9 #SAT f(x) = |{y : (x, y)  R}|
C CVAL reduction for R 1 iff (x, y)  R 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}|

10 Relationship to other classes
Question: is #P hard because it entails finding NP witnesses? …or is counting difficult by itself?

11 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

12 Bipartite Matchings Definition:
G = (U, V, E) bipartite graph with |U| = |V| a perfect matching in G is a subset M  E that touches every node, and no two edges in M share an endpoint

13 Bipartite Matchings Definition:
G = (U, V, E) bipartite graph with |U| = |V| a perfect matching in G is a subset M  E that touches every node, and no two edges in M share an endpoint

14 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

15 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’)

16 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

17 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.


Download ppt "Umans Complexity Theory Lectures"

Similar presentations


Ads by Google