Function problem
   HOME

TheInfoList



OR:

In
computational complexity theory In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and relating these classes to each other. A computational problem is a task solved ...
, a function problem is a
computational problem In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring :"Given a positive integer ''n'', find a nontrivial prime factor of ''n''." is a computational probl ...
where a single output (of a
total function In mathematics, a partial function from a set to a set is a function from a subset of (possibly itself) to . The subset , that is, the domain of viewed as a function, is called the domain of definition of . If equals , that is, if is de ...
) is expected for every input, but the output is more complex than that of a decision problem. For function problems, the output is not simply 'yes' or 'no'.


Formal definition

A functional problem P is defined as a relation R over strings of an arbitrary
alphabet An alphabet is a standardized set of basic written graphemes (called letters) that represent the phonemes of certain spoken languages. Not all writing systems represent language in this way; in a syllabary, each character represents a syllab ...
\Sigma: : R \subseteq \Sigma^* \times \Sigma^*. An algorithm solves P if for every input x such that there exists a y satisfying (x, y) \in R, the algorithm produces one such y.


Examples

A well-known function problem is given by the Functional Boolean Satisfiability Problem, FSAT for short. The problem, which is closely related to the SAT decision problem, can be formulated as follows: :Given a boolean formula \varphi with variables x_1, \ldots, x_n, find an assignment x_i \rightarrow \ such that \varphi evaluates to \text or decide that no such assignment exists. In this case the relation R is given by tuples of suitably encoded boolean formulas and satisfying assignments. While a SAT algorithm, fed with a formula \varphi, only needs to return "unsatisfiable" or "satisfiable", an FSAT algorithm needs to return some satisfying assignment in the latter case. Other notable examples include the
travelling salesman problem The travelling salesman problem (also called the travelling salesperson problem or TSP) asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each cit ...
, which asks for the route taken by the salesman, and the integer factorization problem, which asks for the list of factors.


Relationship to other complexity classes

Consider an arbitrary decision problem L in the class NP. By the definition of NP, each problem instance x that is answered 'yes' has a polynomial-size certificate y which serves as a proof for the 'yes' answer. Thus, the set of these tuples (x,y) forms a relation, representing the function problem "given x in L, find a certificate y for x". This function problem is called the ''function variant'' of L; it belongs to the class FNP. FNP can be thought of as the function class analogue of NP, in that solutions of FNP problems can be efficiently (i.e., in polynomial time in terms of the length of the input) ''verified'', but not necessarily efficiently ''found''. In contrast, the class FP, which can be thought of as the function class analogue of P, consists of function problems whose solutions can be found in polynomial time.


Self-reducibility

Observe that the problem FSAT introduced above can be solved using only polynomially many calls to a subroutine which decides the SAT problem: An algorithm can first ask whether the formula \varphi is satisfiable. After that the algorithm can fix variable x_1 to TRUE and ask again. If the resulting formula is still satisfiable the algorithm keeps x_1 fixed to TRUE and continues to fix x_2, otherwise it decides that x_1 has to be FALSE and continues. Thus, FSAT is solvable in polynomial time using an oracle deciding SAT. In general, a problem in NP is called ''self-reducible'' if its function variant can be solved in polynomial time using an oracle deciding the original problem. Every
NP-complete In computational complexity theory, a problem is NP-complete when: # it is a problem for which the correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by trying ...
problem is self-reducible. It is conjectured that the integer factorization problem is not self-reducible.


Reductions and complete problems

Function problems can be reduced much like decision problems: Given function problems \Pi_R and \Pi_S we say that \Pi_R reduces to \Pi_S if there exists polynomially-time computable functions f and g such that for all instances x of R and possible solutions y of S, it holds that *If x has an R-solution, then f(x) has an S-solution. *(f(x), y) \in S \implies (x, g(x,y)) \in R. It is therefore possible to define FNP-complete problems analogous to the NP-complete problem: A problem \Pi_R is FNP-complete if every problem in FNP can be reduced to \Pi_R. The complexity class of FNP-complete problems is denoted by FNP-C or FNPC. Hence the problem FSAT is also an FNP-complete problem, and it holds that \mathbf = \mathbf if and only if \mathbf = \mathbf.


Total function problems

The relation R(x, y) used to define function problems has the drawback of being incomplete: Not every input x has a counterpart y such that (x, y) \in R. Therefore the question of computability of proofs is not separated from the question of their existence. To overcome this problem it is convenient to consider the restriction of function problems to total relations yielding the class
TFNP In computational complexity theory, the complexity class TFNP is the class of total function problems which can be solved in nondeterministic polynomial time. That is, it is the class of function problems that are guaranteed to have an answer, and t ...
as a subclass of FNP. This class contains problems such as the computation of pure
Nash equilibria In game theory, the Nash equilibrium, named after the mathematician John Nash, is the most common way to define the solution of a non-cooperative game involving two or more players. In a Nash equilibrium, each player is assumed to know the equili ...
in certain strategic games where a solution is guaranteed to exist. In addition, if TFNP contains any FNP-complete problem it follows that \mathbf = \textbf.


See also

* Decision problem *
Search problem In computational complexity theory and computability theory, a search problem is a type of computational problem represented by a binary relation. If ''R'' is a binary relation such that field(''R'') ⊆ Γ+ and ''T'' is a Turing machine, then '' ...
*
Counting problem (complexity) In computational complexity theory and computability theory, a counting problem is a type of computational problem. If ''R'' is a search problem then :c_R(x)=\vert\\vert \, is the corresponding counting function and :\#R=\ denotes the corres ...
*
Optimization problem In mathematics, computer science and economics, an optimization problem is the problem of finding the ''best'' solution from all feasible solutions. Optimization problems can be divided into two categories, depending on whether the variables ...


References

* Raymond Greenlaw, H. James Hoover, ''Fundamentals of the theory of computation: principles and practice'', Morgan Kaufmann, 1998, , p. 45-51 *
Elaine Rich Elaine Alice Rich is an American computer scientist, known for her textbooks on artificial intelligence and automata theory and for her research on user modeling. She is retired as a distinguished senior lecturer from the University of Texas at A ...
, ''Automata, computability and complexity: theory and applications'', Prentice Hall, 2008, , section 28.10 "The problem classes FP and FNP", pp. 689–694 {{refend Computational problems