Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computability and Complexity

Similar presentations


Presentation on theme: "Computability and Complexity"— Presentation transcript:

1 Computability and Complexity
12-1 The Class P Computability and Complexity Andrei Bulatov

2 Computability and Complexity
12-2 The Class of “Easy” Problems Requirements to such a class: Practical Must capture the idea of tractable problems Theoretical Must be robust, that is independent of the model of computation

3 Computability and Complexity
12-3 Time comp- lexity Size n 10 20 30 40 50 60 n .00001 seconds .00002 .00003 .00004 .00005 .00006 .0001 .0004 .0009 .0016 .0025 .0036 .001 .008 .027 .064 .125 .216 .1 3.2 24.3 1.7 minutes 5.2 13.0 1.0 17.9 12.7 days 35.7 years 366 centuries .059 58 6.5 3855

4 Computability and Complexity
12-4 Different Models of Computation Lemma 1. We can simulate t steps of a k-tape TM with an equivalent one-tape TM in steps. Lemma 2. We can simulate t steps of a RAM computation with a 3-tape TM in steps. It seems that improving our machines we can obtain any polynomial speed-up!

5 Computability and Complexity
12-5 Different Encodings Lemma 3. For any number n, the length of the encoding of n in base and the length of the encoding of n in base are related by a constant factor (provided ) Lemma 4. For any graph G, the length of the encoding of G as an adjacency matrix, and the length of the encoding of G as a list of edges, are both related by a polynomial factor to the number of vertices It seems that improving encodings we can shorten the input by a polynomial factor!

6 Computability and Complexity
12-6 The Class P Definition Note: The class P contains all classes TIME[t(n)], where t(n) is a polynomial of finite degree

7 Computability and Complexity
12-7 Robustness of P The class P is the same for all existing models of computation (except for quantum computation) The class P is the same for all existing methods of encoding The class P is said to be robust — it is a mathematical object that does not depend on the exact details of the computational model or encoding In fact, P can be define in ways that do not refer to machines at all (but we will not pursue that idea here)

8 Computability and Complexity
12-8 P  doable? The class P is a reasonable mathematical model of the class of problems which are tractable or “solvable in practice” However, the correspondence is not exact: When the degree of the polynomial is high then the time grows so fast that in practice the problem is not solvable The constants may also be very large (These problems usually seem to arise only in artificially created problems; for naturally defined problems the polynomials and constants are not too large) Some algorithms, exponential in principal, works satisfactory in practice (e.g. Simplex method for Linear Programming)

9 Computability and Complexity
12-9 Proving a Problem is in P The most direct way to show that a problem is in P is to give a a polynomial time algorithm that solves it Even a naive polynomial time algorithm often provides a good insight into how the problem can be solved efficiently To find such an algorithm we generally need to identify an approach to the problem that is considerably better than “brute-force” search Because of robustness, we do not generally need to specify all the details of the machine model or even the encoding (e.g. pseudo-code is sufficient)

10 Computability and Complexity
12-10 A Problem in P Instance: 3 integers, a, b and g. Question: Does GCD(a,b)=g? Greatest Common Divisor (GCD) (When g=1 this is equivalent to the problem Relatively Prime)

11 Computability and Complexity
12-11 Proof: GCD(a,b) can be computed by Euclid’s algorithm Function GCD(a,b) : integer Begin if b=0 then GCD(a,b):= a else GCD := GCD(b,a mod b) end This algorithm polynomial in the length of the input numbers (logarithmic in their value)

12 Computability and Complexity
12-12 The Satisfiability Problem Instance: A conjunctive normal form . Question: Is  satisfiable? Satisfiability Instance: A conjunctive normal form  every clause of which contains exactly k literals. Question: Is  satisfiable? k-Satisfiability

13 Computability and Complexity
12-13 Resolution Axioms: a set of clauses Proof rules: resolution C = (X  C), D  X  D C, D  C  D (C  D is called the resolvent of C and D) R

14 Computability and Complexity
12-14 Theorem A 2-Satisfiability instance, , is unsatisfiable if and only if    R Example: (1) (2) (3) (4) (5) Proof: This algorithm works in , because the number of all possible 2-clauses is related by a quadratic factor to the number of variables

15 Computability and Complexity
12-15 A Better Algorithm for 2-Satisfiability Declare all clauses unsatisfied and literals unassigned Select an arbitrary unassigned variable X and assign X true, X false Select an unsatisfied clause Repeat step 3, until either if neither literal is assigned, ignore; if either literal is assigned true, declare clause satisfied; if both are false, restart the algorithm setting X false, and X true. If a conflict occurs again, declare unsatisfiable if one literal false, other unsatisfied, set the other to true, its negation to false, and declare the clause satisfied all clauses are satisfied, return satisfiable All clauses remaining unsatisfied have no variables assigned. In this case return to step 2

16 Computability and Complexity
12-16 Polynomial-time reducibility Another way to prove that a problem is in P is to use a reduction Definition A language A is polynomially reducible to a language B , denoted A  B, if a polynomial-time computable function f exists such that for all This fundamental tool of complexity theory was introduced by Karp in 1972

17 Computability and Complexity
12-17 Key Property of Polynomial-time Reducibility Lemma A  B and B  P implies A  P Proof: The composition of polynomials is a polynomial

18 Computability and Complexity
12-18 Reductions in P Almost all members of P can be reduced to each other Theorem If B is any language in P, B  , B  *, then for any A  P, A  B Proof: Choose w  B and some w  B. Define the function f by setting Since A  P, f is computable in polynomial-time, and is a reduction from A to B

19 Computability and Complexity
12-19 Colourability Let G  (V,E) be a graph, with nodes V and edges E A function f : V  {1,…,n} is a (proper) colouring if connected nodes are assigned different values ( colours) Instance: A graph G. Question: Is there a colouring of G using at most k colours? k-Colourability (When k = 2 this is equivalent to Bipartite)

20 Computability and Complexity
12-20 2-Colourability  2-Satisfiability We can reduce 2-COLOURABILITY to 2-SATISFIABILITY For each vertex the graph we create a variable For each edge we add two clauses This translation of a 2-COLOURABILITY problem to a 2-SATISFIABILITY problem is computable in polynomial time. Now we check it satisfies the reducibility condition: If graph is 2-colourable, use 2-colouring to assign truth values to variables (one colour is true, the other false) If formula satisfiable, define 2-colouring by setting true variables to colour 1 and false to colour 2, if adjacent vertices get same colour one of the associated clauses is not satisfied, hence must have 2-colouring

21 Computability and Complexity
12-21 An Aside Some problems have been shown to be in P by non-constructive arguments (i.e. by proving a polynomial time algorithm must exist). E.g. the problem Knotlessness — can a given graph be embedded in 3-dimensional space without knots In these cases we may not even know how to find an exponential algorithm! (See Bovet and Cresceni for more discussion of this)


Download ppt "Computability and Complexity"

Similar presentations


Ads by Google