Search problem

From Wikipedia, the free encyclopedia
Revision as of 22:41, 15 May 2025 by imported>Diannaa (add attribution for licensed material and a citation)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Multiple issues In computational complexity theory and computability theory, a search problem is a computational problem of finding an admissible answer for a given input value, provided that such an answer exists. In fact, a search problem is specified by a binary relation Template:Mvar where Template:Mvar if and only if "Template:Mvar is an admissible answer given Template:Mvar".[note 1] Search problems frequently occur in graph theory and combinatorial optimization, e.g. searching for matchings, optional cliques, and stable sets in a given undirected graph.

An algorithm is said to solve a search problem if, for every input value Template:Mvar, it returns an admissible answer Template:Mvar for Template:Mvar when such an answer exists; otherwise, it returns any appropriate output, e.g. "not found" for Template:Mvar with no such answer.

Definition

PlanetMath defines the problem as follows:[1]

If R is a binary relation such that field(R)Γ+ and T is a Turing machine, then T calculates f if:[note 2]

  • If x is such that there is some y such that R(x,y) then T accepts x with output z such that R(x,z). (there may be multiple y, and T need only find one of them)
  • If x is such that there is no y such that R(x,y) then T rejects x.
Note that the graph of a partial function is a binary relation, and if T calculates a partial function then there is at most one possible output.
A R can be viewed as a search problem, and a Turing machine which calculates R is also said to solve it. Every search problem has a corresponding decision problem, namely L(R)={xyR(x,y)}.
This definition can be generalized to n-ary relations by any suitable encoding which allows multiple strings to be compressed into one string (for instance by listing them consecutively with a delimiter).

See also

Notes

Template:Reflist

References

Template:Reflist This article incorporates material from search problem on PlanetMath, which is licensed under the Creative Commons Attribution/Share-Alike License.


Cite error: <ref> tags exist for a group named "note", but no corresponding <references group="note"/> tag was found

  1. Script error: No such module "citation/CS1".Template:Creative Commons text attribution notice