Presentation is loading. Please wait.

Presentation is loading. Please wait.

Complexity 25-1 Complexity Andrei Bulatov Counting Problems.

Similar presentations


Presentation on theme: "Complexity 25-1 Complexity Andrei Bulatov Counting Problems."— Presentation transcript:

1 Complexity 25-1 Complexity Andrei Bulatov Counting Problems

2 Complexity 25-2 Graph Reliability How reliable is our network?

3 Complexity 25-3 Instance: A graph G and two its vertices s and t Objective: How many subgraphs of G contains a path from s to t ? Graph Reliability Counting Problems Instance: A formula  in CNF Objective: How many satisfying assignments does  have? #SAT

4 Complexity 25-4 Perfect Matching Definition Given a bipartite graph G with bipartition a perfect matching of G is a collection of n edges such that, for any edges from the collection

5 Complexity 25-5 Instance: A bipartite graph G Objective: How many perfect matchings does G have? #Matching

6 Complexity 25-6 Matching and Adjacency Matrix Note that a perfect matching of G is a collection of entries of A(G) such that it contains exactly n entries all of the entries are 1 no two entries are in the same row no two entries are in the same column

7 Complexity 25-7 Therefore Definition Permanent of an n  n matrix A is the sum #Matching = Permanent

8 Complexity 25-8 Definition A decider machine V is called a verifier for a language L if L   w  V accepts “ w;c ” for some string c  NP is the class of languages that have a polynomial time verifier Definition A decider machine V is called a verifier for a language L if L   w  V accepts “ w;c ” for some string c  NP is the class of languages that have a polynomial time verifier The Class #P A polynomially balanced, polynomial time decidable binary relation is a binary relation U on  * such that (a) there is a polynomial time decider for U (b) if then for some polynomial p

9 Complexity 25-9 Definition NP is the class of languages L that can be represented as for a certain polynomially balanced polynomial time decidable relation U Definition NP is the class of languages L that can be represented as for a certain polynomially balanced polynomial time decidable relation U Definition Let U be a certain polynomially balanced polynomial time decidable relation. The counting problem associated with U is the following: Given u, how many v are there such that (u,v)  U ? #P is the class of all counting problems associated with a certain polynomially balanced polynomial time decidable relations Definition Let U be a certain polynomially balanced polynomial time decidable relation. The counting problem associated with U is the following: Given u, how many v are there such that (u,v)  U ? #P is the class of all counting problems associated with a certain polynomially balanced polynomial time decidable relations Every problem from NP has a corresponding counting problem!

10 Complexity 25-10 Examples #SAT #Reachability  Graph Reliability #Matching Instance: A graph G Objective: How many Hamilton paths does G have? #Hamilton Path #Primes ? (formula; satisfying assignment) (graph+ s + t ; path from s to t )

11 Complexity 25-11 Parsimonious Reduction We need a notion of reduction that “preserves the number of solutions” Definition A polynomial time function f is said to be a parsimonious reduction of a counting problem A to a counting problem B, denoted, if for all instances of A, x and f(x) have the same answer

12 Complexity 25-12 #P-Completeness Theorem #SAT is #P-complete Definition A language L is said to be #P -complete if, for any counting problem A corresponding to a polynomially balanced polynomial time decidable relation, Definition A language L is said to be #P -complete if, for any counting problem A corresponding to a polynomially balanced polynomial time decidable relation,

13 Complexity 25-13 Proof Take a counting problem A from #P. There is a polynomially balanced polynomial time decidable relation U corresponding to A That is there exist a polynomial p(n) and a Turing machine T such that T decides U (on an input (w,c) ) in a time p(|w|+|c|) if (w,c)  U then |c|  p(|w|) We need to do: Given a string w generate (in polynomial time) a formula such that the number of satisfying assignments to = the number of c such that (w,c)  U

14 Complexity 25-14 Reduction When proving Cook’s theorem we, given a non-deterministic Turing machine NT and an input w for NT, built a CNF such that every satisfying assignment of encodes an accepting computation of NT on the input w. The decider for U is a deterministic Turing machine, that is a particular case of non-deterministic machines Consider the formula Since T is deterministic, has at most one satisfying assignment

15 Complexity 25-15 The fact that the input for T is (w,c) is encoded as follows Let and then contains the clauses where is true if and only if at the time 1 the tape cell number i contains x Replace with in which is replaced with Then every assignment to correspond to a unique pair (w,c) which may or may not belong to U, and gives rise to a unique satisfying assignment to if and only if (w,c)  U

16 Complexity 25-16 More #P-complete Problems #3- SAT #Matching = Permanent # Hamilton Path Open Problem Is this true that if L is NP-complete then # L is #P-complete?

17 Complexity 25-17 Counting Problems Solvable in Poly-Time Instance: A system of linear equations modulo p ( p prime) Objective: How many solutions does it have? #System of Linear Equations Fact If a system of linear equations has n variables, then there are at most n+1 different vectors such that any solution can be represented in the form

18 Complexity 25-18 This “basis of solutions” can be found in polynomial time (using Gaussian elimination) and the number of solutions is


Download ppt "Complexity 25-1 Complexity Andrei Bulatov Counting Problems."

Similar presentations


Ads by Google