Parameterized complexity: Difference between revisions

Content deleted Content added
Joshxyz (talk | contribs)
No edit summary
Tags: Mobile edit Mobile web edit
natural parameter
 
(13 intermediate revisions by 11 users not shown)
Line 2:
In [[computer science]], '''parameterized complexity''' is a branch of [[computational complexity theory]] 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 (mathematics)|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 {{harvtxt|Gurevich|Stockmeyer|Vishkin|1984}}. The first systematic work on parameterized complexity was done by {{harvtxt|Downey|Fellows|1999}}.
 
Under the assumption that [[P versus NP problem|P ≠ NP]], there exist many natural problems that require superpolynomialsuper-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 {{mvar|k}}. Hence, if {{mvar|k}} is fixed at a small value and the growth of the function over {{mvar|k}} 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 time|exponential]] (so in particular superpolynomialsuper-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-FPT) algorithm, because the problem can be solved efficiently (i.e., in polynomial time) for smallconstant values of the fixed parameter.
 
Problems in which some parameter {{mvar|k}} is fixed are called parameterized problems. A parameterized problem that allows for such an fpt-FPT algorithm is said to be a '''fixed-parameter tractable''' problem and belongs to the class {{sans-serif|FPT}}, and the early name of the theory of parameterized complexity was '''fixed-parameter tractability'''.
 
Many problems have the following form: given an object {{mvar|x}} and a nonnegative integer {{mvar|k}}, does {{mvar|x}} have some property that depends on {{mvar|k}}? 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 {{mvar|k}}, and not in the input size.
Line 14:
:A ''parameterized problem'' is a language <math>L \subseteq \Sigma^* \times \N</math>, where <math>\Sigma</math> is a finite alphabet. The second component is called the ''parameter'' of the problem.
 
:A parameterized problem {{mvar|L}} is ''fixed-parameter tractable'' if the question "<math>(x, k) \in L</math>?" can be decided in running time <math>f(k) \cdot |x|^{O(1)}</math>, where {{mvar|f}} is an arbitrary function depending only on {{mvar|k}}. The corresponding [[complexity class]] is called '''FPT'''.
 
:A parameterized problem uses the ''natural parameter'' when its parameter is the size of the solution to the problem.

For example, there is an algorithm that solves the vertex cover problem in <math>O(kn + 1.274^k)</math> time,<ref>{{harvnb|Chen|Kanj|Xia|2006}}</ref> where {{mvar|n}} is the number of vertices and {{mvar|k}} 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 (its natural parameter).
 
== Complexity classes ==
Line 25 ⟶ 27:
The class '''FPL''' (fixed parameter linear) is the class of problems solvable in time <math>f(k) \cdot |x|</math> for some computable function {{mvar|f}}.<ref>{{harvtxt|Grohe|1999}}</ref> 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 {{mvar|m}} with {{mvar|k}} variables can be checked by brute force in time <math>O(2^km)</math>. A [[vertex cover]] of size {{mvar|k}} in a graph of order {{mvar|n}} can be found in time <math>O(2^kn)</math>, 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]] parameterised by the number of colors. It is known that 3-coloring is [[NP-hard]], and an algorithm for graph {{mvar|k}}-colouringcoloring in time <math>f(k)n^{O(1)}</math> for <math>k=3</math> 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 versus NP problem|P&nbsp;=&nbsp;NP]].
 
There are a number of alternative definitions of FPT. For example, the running-time requirement can be replaced by <math>f(k) + |x|^{O(1)}</math>. 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.
Line 34 ⟶ 36:
 
=== ''W'' hierarchy ===
The '''''W'' hierarchy''' is a collection of computational complexity classes. A parameterized problem is in the class ''W''[''i''], if every instance <math>(x, k)</math> can be transformed (in fpt-time) to a combinatorial circuit that has [[weft (circuit)|weft]] at most ''i'', such that <math>(x, k)\in L</math> 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 <math>\mathsf{FPT} = W[0]</math> and <math>W[i] \subseteq W[j]</math> for all <math>i\le j</math>. The classes in the ''W'' hierarchy are also closed under fpt-reduction.
 
A complete problem for ''W''[''i''] is '''Weighted ''i''-Normalized Satisfiability''':<ref>{{cite journal |last1=Downey |first1=Rod G. |last2=Fellows |first2=Michael R. |title=Fixed-Parameter Tractability and Completeness I: Basic Results |journal=SIAM Journal on Computing |date=August 1995 |volume=24 |issue=4 |pages=873–921 |doi=10.1137/S0097539792228228 |url=https://doi.org/10.1137/S0097539792228228 |language=en |issn=0097-5397|url-access=subscription }}</ref> given a Boolean formula written as an AND of ORs of ANDs of ... of possibly negated variables, with <math>i+1</math> layers of ANDs or ORs (and ''i'' alternations between AND and OR), can it be satisfied by setting exactly ''k'' variables to 1?
 
Many natural computational problems occupy the lower levels, ''W''[1] and ''W''[2].
 
==== ''W''[1] ====
{{Redirect|W(1)|the mathematical constant|omega constant}}
Examples of ''W''[1]-complete problems include
* deciding if a given graph contains a [[Clique (graph theory)|clique]] of size ''k''
* deciding if a given graph contains an [[Independent set (graph theory)|independent set]] of size ''k''
* deciding if a given nondeterministic single-tape Turing machine accepts within ''k'' steps ("short Turing machine acceptance" problem). This also applies to nondeterministic [[Turing machine|Turing machines]] with ''f''(''k'') tapes and even ''f''(''k'') of ''f''(''k'')-dimensional tapes, but even with this extension, the restriction to ''f''(''k'') tape alphabet size is fixed-parameter tractable. Crucially, the branching of the Turing machine at each step is allowed to depend on ''n'', the size of the input. In this way, the Turing machine may explore ''n''<sup>O(''k'')</sup> computation paths.
 
==== ''W''[2] ====
Line 77 ⟶ 82:
=== XP ===
'''XP''' is the class of parameterized problems that can be solved in time <math>n^{f(k)}</math> for some computable function {{mvar|f}}. These problems are called [[slicewise]] polynomial, in the sense that each "slice" of fixed k has a polynomial algorithm, although possibly with a different exponent for each k. Compare this with FPT, which merely allows a different constant prefactor for each value of k. XP contains FPT, and it is known that this containment is strict by diagonalization.
 
{{Expand section|date=April 2019}}
 
=== para-NP ===
Line 96 ⟶ 99:
 
== References ==
* {{cite bookconference
|first1 = Jianer
|last1 = Chen
Line 104 ⟶ 107:
|last3 = Xia
|title = Improved Parameterized Upper Bounds for Vertex Cover
|journalconference = [[International Symposium on Mathematical Foundations of Computer Science|MFCS]] 2006
|publisher = Springer
|publication-place = Berlin, Heidelberg
|volume = 4162
|pages = 238–249
|year = 2006
|doi = 10.1007/11821069_21
|volume = 4162
|series = Lecture Notes in Computer Science
|isbn = 978-3-540-37791-7
|citeseerx = 10.1.1.432.831
Line 164 ⟶ 168:
|isbn=978-1107057760
|doi=10.1017/9781107415157
|page=528}}|s2cid=263888582
}}
*{{cite book
|last1=Gurevich|first1=Yuri