Search problem

Last updated

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 R where xRy if and only if "y is an admissible answer given x". [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.

Contents

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

Definition

PlanetMath defines the problem as follows: [1]

If is a binary relation such that and is a Turing machine, then calculates if: [note 2]

Note that the graph of a partial function is a binary relation, and if calculates a partial function then there is at most one possible output.
A can be viewed as a search problem, and a Turing machine which calculates is also said to solve it. Every search problem has a corresponding decision problem, namely
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

References

  1. "PlanetMath". planetmath.org. Retrieved 15 May 2025. Creative Commons by small.svg  This article incorporates textfrom this source, which is available under the CC BY 2.5 license.

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