210 likes | 337 Views
Computability and Complexity. 12-1. The Class P. Computability and Complexity Andrei Bulatov. Computability and Complexity. 12-2. The Class of “Easy” Problems. Requirements to such a class:. Practical Must capture the idea of tractable problems Theoretical
E N D
Computability and Complexity 12-1 The Class P Computability and Complexity Andrei Bulatov
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
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!
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!
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
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)
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)
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)
Computability and Complexity Greatest Common Divisor (GCD) Instance: 3 integers, a, b and g. Question: Does GCD(a,b)=g? 12-10 A Problem in P (When g=1 this is equivalent to the problem Relatively Prime)
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)
Computability and Complexity Satisfiability Instance: A conjunctive normal form . Question: Is satisfiable? k-Satisfiability Instance: A conjunctive normal form every clause of which contains exactly k literals. Question: Is satisfiable? 12-12 The Satisfiability Problem
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
Computability and Complexity Theorem A 2-Satisfiability instance, , is unsatisfiable if and only if R (1) (2) (3) (4) (5) 12-14 Example: Proof: This algorithm works in , because the number of all possible 2-clauses is related by a quadratic factor to the number of variables
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 Xtrue, Xfalse • 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 Xfalse, and Xtrue. 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
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
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
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
Computability and Complexity k-Colourability Instance: A graph G. Question: Is there a colouring of G using at most k colours? 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) (When k = 2 this is equivalent to Bipartite)
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
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)