Computability and Complexity
12-1
The Class P
Computability and Complexity
Andrei Bulatov
Computability and Complexity
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
12-2
Computability and Complexity
Time
complexity
12-3
Size n
40
50
60
n
.00001 .00002 .00003
seconds seconds seconds
.00004
seconds
.00005
seconds
.00006
seconds
n2
.0001
.0004
.0009
seconds seconds seconds
.0016
seconds
.0025
seconds
.0036
seconds
n3
.001
.008
.027
seconds seconds seconds
.064
seconds
.125
seconds
.216
seconds
n5
.1
3.2
24.3
seconds seconds seconds
1.7
minutes
5.2
minutes
13.0
minutes
2n
.001
1.0
seconds seconds
17.9
minutes
12.7
days
35.7
years
366
centuries
.059
58
seconds minutes
6.5
years
3855
centuries
2 108
centuries
1.3 1013
centuries
n
3
10
20
30
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 O (t 2 ) steps.
Lemma 2.
We can simulate t steps of a RAM computation with a 3-tape TM
in O (t 3 ) steps.
It seems that improving our machines we can obtain any polynomial speed-up!
Computability and Complexity
Different Encodings
Lemma 3.
For any number n, the length of the encoding of n in base b1 and
the length of the encoding of n in base b2 are related by a constant
factor (provided b1 , b2 1)
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!
12-5
Computability and Complexity
The Class P
Definition
P TIME[ n k ]
k 0
Note:
• The class P contains all classes TIME[t(n)], where t(n) is a
polynomial of finite degree
12-6
Computability and Complexity
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)
12-7
Computability and Complexity
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)
12-8
Computability and Complexity
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)
12-9
Computability and Complexity
A Problem in P
Greatest Common Divisor (GCD)
Instance: 3 integers, a, b and g.
Question: Does GCD(a,b)=g?
(When g=1 this is equivalent to the problem Relatively Prime)
12-10
Computability and Complexity
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-11
Computability and Complexity
The Satisfiability Problem
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
Computability and Complexity
Resolution
Axioms:
a set of clauses
Proof rules:
• resolution
C (X C), D (X D)
C, D R (C D)
((C D) is called the resolvent of C and D)
12-13
Computability and Complexity
12-14
Theorem
A 2-Satisfiability instance, , is unsatisfiable if and
only if R
Example:
(1)
(2)
(3)
(4)
(5)
X Y , X Z , Y Z , X Z , X Y
Proof:
X Z,
X Z ,
Y Z ,
X Y , X Y , X Z ,
X X X , X Y ,
X X X,
This algorithm works in O ( n 2 ), because the number of all possible 2-clauses
is related by a quadratic factor to the number of variables
Computability and Complexity
A Better Algorithm for 2-Satisfiability
1.
2.
3.
Declare all clauses unsatisfied and literals unassigned
Select an arbitrary unassigned variable X and assign X true,
X false
Select an unsatisfied clause
a)
b)
c)
4.
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
d) if one literal false, other unsatisfied, set the other to true,
its negation to false, and declare the clause satisfied
Repeat step 3, until either
a)
b)
all clauses are satisfied, return satisfiable
All clauses remaining unsatisfied have no variables assigned.
In this case return to step 2
12-15
Computability and Complexity
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 x *
x A f (x) B
This fundamental tool of complexity theory was introduced by Karp in 1972
12-16
Computability and Complexity
Key Property of Polynomial-time Reducibility
Lemma
A B and B P implies A P
Proof:
The composition of polynomials is a polynomial
12-17
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
w
f ( x)
w'
if x A
if x A
Since A P, f is computable in polynomial-time, and is a reduction
from A to B
Computability and Complexity
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)
k-Colourability
Instance: A graph G.
Question: Is there a colouring of G using at most k colours?
(When k = 2 this is equivalent to Bipartite)
12-19
Computability and Complexity
2-Colourability 2-Satisfiability
We can reduce 2-COLOURABILITY to 2-SATISFIABILITY
• For each vertex vi the graph we create a variable X i
• For each edge ( vi , v j ) we add two clauses
( X i X j ) and (X i X j )
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
12-20
Computability and Complexity
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)
12-21
© Copyright 2026 Paperzz