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 by ...
, the
complexity class In computational complexity theory, a complexity class is a set of computational problems of related resource-based complexity. The two most commonly analyzed resources are time and memory. In general, a complexity class is defined in terms of ...
FNP is the
function problem In computational complexity theory, a function problem is a computational problem where a single output (of a total function) is expected for every input, but the output is more complex than that of a decision problem. For function problems, the ou ...
extension of the
decision problem In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question of the input values. An example of a decision problem is deciding by means of an algorithm whethe ...
class NP. The name is somewhat of a misnomer, since technically it is a class of
binary relation In mathematics, a binary relation associates elements of one set, called the ''domain'', with elements of another set, called the ''codomain''. A binary relation over Set (mathematics), sets and is a new set of ordered pairs consisting of ele ...
s, not functions, as the following formal definition explains: :A binary relation P(''x'',''y''), where ''y'' is at most polynomially longer than ''x'', is in FNP if and only if there is a deterministic polynomial time algorithm that can determine whether P(''x'',''y'') holds given both ''x'' and ''y''. This definition does not involve nondeterminism and is analogous to the verifier definition of NP. There is an NP language directly corresponding to every FNP relation, sometimes called the decision problem ''induced by'' or ''corresponding to'' said FNP relation. It is the language formed by taking all the ''x'' for which P(''x'',''y'') holds given some ''y''; however, there may be more than one FNP relation for a particular decision problem. Many problems in NP, including many
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 tryi ...
problems, ask whether a particular object exists, such as a satisfying assignment, a graph coloring, or a clique of a certain size. The FNP versions of these problems ask not only if it exists but what its value is if it does. This means that the FNP version of every NP-complete problem is
NP-hard In computational complexity theory, NP-hardness ( non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard pr ...
. Bellare and Goldwasser showed in 1994 using some standard assumptions that there exist problems in NP such that their FNP versions are not self-reducible, implying that they are harder than their corresponding decision problem. For each P(''x'',''y'') in FNP, the search problem associated with P(''x'',''y'') is: given ''x'', find a ''y'' such that P(''x'',''y'') holds, or state that no such ''y'' exists. The search problem for every relation in FNP can be solved in polynomial time if and only if
P = NP The P versus NP problem is a major unsolved problem in theoretical computer science. In informal terms, it asks whether every problem whose solution can be quickly verified can also be quickly solved. The informal term ''quickly'', used abov ...
. This result is usually stated as "FP = FNP if and only if
P = NP The P versus NP problem is a major unsolved problem in theoretical computer science. In informal terms, it asks whether every problem whose solution can be quickly verified can also be quickly solved. The informal term ''quickly'', used abov ...
"; however, for this statement to be true, it is necessary to redefine FP and FNP so that the members of FP and FNP are not relations, but are instead search problems associated with relations.


Reductions

Let ''P''1 and ''P''2 be two problems in FNP, with associated verification algorithms ''A''1, ''A''2. A reduction ''P''1 and ''P''2 is defined as two efficiently-computable functions, ''f'' and ''g'', such that * ''f'' maps inputs ''x'' to ''P''1 to inputs ''f''(''x'') to ''P''2 ; * ''g'' maps outputs ''y'' to ''P''2 to outputs ''g''(y) to ''P''1 ; * For all ''x'' and ''y'': if ''A''2(''f''(''x''),''y'') returns true, then ''A''1(''x'', g(''y'')) returns true; * For all ''x'': if ''A''2(''f''(''x''),''y'') returns false, then ''A''1(''x'', g(''y'')) returns false for all ''y''.


Related complexity classes

* FP is the set of binary relations for which there is a polynomial time algorithm that, given ''x'', finds some ''y'' for which P(''x'',''y'') holds. The relation between FNP and FP is analogous to the relation between NP and P. *
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 ...
is a subset of FNP: it contains those relations in FNP for which, for every ''x'', there exists at least one ''y'' for which P(''x'',''y'') holds.


References


External links

* * {{DEFAULTSORT:Fnp (Complexity) Complexity classes