Title: Complexity
1Complexity
6-1
The Class P
Complexity Andrei Bulatov
2Complexity
6-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 - Must be closed under substitutions
3Complexity
6-3
4Complexity
6-4
Different Models of Computation
It seems that improving our machines we can
obtain any polynomial speed-up!
5Complexity
6-5
Different Encodings
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!
6Complexity
6-6
The Class P
7Complexity
6-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)
8Complexity
6-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)
9Complexity
6-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)
10Complexity
6-10
A Problem in P
(When g1 this is equivalent to the problem
Relatively Prime)
11Complexity
6-11
Proof GCD(a,b) can be computed by
Euclids algorithm
Function GCD(a,b) integer begin if b0
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)
12Complexity
6-12
The Satisfiability Problem
13Complexity
6-13
Resolution
Axioms a set of clauses
Proof rules
14Complexity
6-14
Example
Proof
15Complexity
6-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 1
16Complexity
6-16
Polynomial-time reducibility
Another way to prove that a problem is in P is
to use a reduction
This fundamental tool of complexity theory was
introduced by Karp in 1972
17Complexity
6-17
Key Property of Polynomial-time Reducibility
Lemma A ? B and B ? P implies A ? P
Proof The composition of polynomials is a
polynomial
18Complexity
6-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.
Since A ? P, f is computable in
polynomial-time, and is a reduction from A to B
19Complexity
6-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)
20Complexity
6-20
2-Colourability ? 2-Satisfiability
We can reduce 2-COLOURABILITY to
2-SATISFIABILITY
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
21Complexity
6-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)