In
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, parameterized complexity is a branch of
computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
that focuses on classifying
computational problems according to their inherent difficulty with respect to ''multiple'' parameters of the input or output. The complexity of a problem is then measured as a
function of those parameters. This allows the classification of
NP-hard problems on a finer scale than in the classical setting, where the complexity of a problem is only measured as a function of the number of bits in the input. This appears to have been first demonstrated in . The first systematic work on parameterized complexity was done by .
Under the assumption that
P ≠ NP, there exist many natural problems that require super-polynomial
running time when complexity is measured in terms of the input size only but that are computable in a time that is polynomial in the input size and exponential or worse in a parameter . Hence, if is fixed at a small value and the growth of the function over is relatively small then such problems can still be considered "tractable" despite their traditional classification as "intractable".
The existence of efficient, exact, and deterministic solving algorithms for
NP-complete, or otherwise
NP-hard, problems is considered unlikely, if input parameters are not fixed; all known solving algorithms for these problems require time that is
exponential (so in particular super-polynomial) in the total size of the input. However, some problems can be solved by algorithms that are exponential only in the size of a fixed parameter while polynomial in the size of the input. Such an algorithm is called a
fixed-parameter tractable (FPT) algorithm, because the problem can be solved efficiently (i.e., in polynomial time) for constant values of the fixed parameter.
Problems in which some parameter is fixed are called parameterized problems. A parameterized problem that allows for such an FPT algorithm is said to be a fixed-parameter tractable problem and belongs to the class , and the early name of the theory of parameterized complexity was fixed-parameter tractability.
Many problems have the following form: given an object and a nonnegative integer , does have some property that depends on ? For instance, for the
vertex cover problem, the parameter can be the number of vertices in the cover. In many applications, for example when modelling error correction, one can assume the parameter to be "small" compared to the total input size. Then it is challenging to find an algorithm that is exponential ''only'' in , and not in the input size.
In this way, parameterized complexity can be seen as ''two-dimensional'' complexity theory. This concept is formalized as follows:
:A ''parameterized problem'' is a language
, where
is a finite alphabet. The second component is called the ''parameter'' of the problem.
:A parameterized problem is ''fixed-parameter tractable'' if the question "
?" can be decided in running time
, where is an arbitrary function depending only on . The corresponding
complexity class
In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
is called FPT.
For example, there is an algorithm that solves the vertex cover problem in
time, where is the number of vertices and is the size of the vertex cover. This means that vertex cover is fixed-parameter tractable with the size of the solution as the parameter.
Complexity classes
FPT
FPT contains the ''fixed parameter tractable'' problems, which are those that can be solved in time
for some computable function . Typically, this function is thought of as single exponential, such as
, but the definition admits functions that grow even faster. This is essential for a large part of the early history of this class. The crucial part of the definition is to exclude functions of the form
, such as
.
The class FPL (fixed parameter linear) is the class of problems solvable in time
for some computable function . FPL is thus a subclass of FPT. An example is the
Boolean satisfiability problem, parameterised by the number of variables. A given formula of size with variables can be checked by brute force in time
. A
vertex cover of size in a graph of order can be found in time
, so the vertex cover problem is also in FPL.
An example of a problem that is thought not to be in FPT is
graph coloring
In graph theory, graph coloring is a methodic assignment of labels traditionally called "colors" to elements of a Graph (discrete mathematics), graph. The assignment is subject to certain constraints, such as that no two adjacent elements have th ...
parameterised by the number of colors. It is known that 3-coloring is
NP-hard, and an algorithm for graph -coloring in time
for
would run in polynomial time in the size of the input. Thus, if graph coloring parameterised by the number of colors were in FPT, then
P = NP.
There are a number of alternative definitions of FPT. For example, the running-time requirement can be replaced by
. Also, a parameterised problem is in FPT if it has a so-called kernel.
Kernelization is a preprocessing technique that reduces the original instance to its "hard kernel", a possibly much smaller instance that is equivalent to the original instance but has a size that is bounded by a function in the parameter.
FPT is closed under a parameterised notion of
reductions called ''fpt-reductions''. Such reductions transform an instance
of some problem into an equivalent instance
of another problem (with
) and can be computed in time
where
is a polynomial.
Obviously, FPT contains all polynomial-time computable problems. Moreover, it contains all optimisation problems in NP that allow an
efficient polynomial-time approximation scheme (EPTAS).
''W'' hierarchy
The ''W'' hierarchy is a collection of computational complexity classes. A parameterized problem is in the class ''W''
'i'' if every instance
can be transformed (in fpt-time) to a combinatorial circuit that has
weft at most ''i'', such that
if and only if there is a satisfying assignment to the inputs that assigns 1 to exactly ''k'' inputs. The weft is the largest number of logical units with fan-in greater than two on any path from an input to the output. The total number of logical units on the paths (known as depth) must be limited by a constant that holds for all instances of the problem.
Note that