FP (complexity)

Last updated

In computational complexity theory, the complexity class FP is the set of function problems that can be solved by a deterministic Turing machine in polynomial time (and for which the function problem also represents a predicate decidable in polynomial time [1] ). It is the function problem version of the decision problem class P . Roughly speaking, it is the class of functions that can be efficiently computed on classical computers without randomization.

Contents

The difference between FP and P is that problems in P have one-bit, yes/no answers, while problems in FP can have any output that can be computed in polynomial time. For example, adding two numbers is an FP problem, while determining if their sum is odd is in P. [2] So any decision problem in P can be thought of as a function that outputs 0 or 1, so it’s trivially in FP. In short: .

Polynomial-time function problems are fundamental in defining polynomial-time reductions, which are used in turn to define the class of NP-complete problems. [3]

Formal definition

FP is formally defined as follows:

A binary relation is in FP if and only if

(The latter condition may seem redundant, but it is added to ensure that every FP problem is in FNP, since there may be multiple values for which holds, and without the second condition the algorithm is not required to be able to check each of these values in polynomial time.)

References

  1. https://complexityzoo.net/Complexity_Zoo:F#fp Complexity Zoo: FP
  2. Bürgisser, Peter (2000). Completeness and reduction in algebraic complexity theory. Algorithms and Computation in Mathematics. Vol. 7. Berlin: Springer-Verlag. p. 66. ISBN   3-540-66752-0. Zbl   0948.68082.
  3. Rich, Elaine (2008). "28.10 "The problem classes FP and FNP"". Automata, computability and complexity: theory and applications. Prentice Hall. pp. 689–694. ISBN   978-0-13-228806-4.