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 T calculates R if:

Intuitively, the problem consists in finding structure "y" in object "x". An algorithm is said to solve the problem if at least one corresponding structure exists, and then one occurrence of this structure is outputted; otherwise, the algorithm stops with an appropriate output ("Item not found" or any message of the like).

Such problems occur very frequently in graph theory, for example, where searching graphs for structures such as particular matching, cliques, independent set, etc. are subjects of interest.

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 relation 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)=\{x\mid \exists y R(x,y)\}. \,

This definition may be generalized to n-ary relations using any suitable encoding which allows multiple strings to be compressed into one string (for instance by listing them consecutively with a delimiter).

Definition

A search problem is defined by:[1]

a boolean function which tells us whether a given state is a goal state
a mapping from a state to a set of new states

Objective

Find a solution when not given an algorithm to solve a problem, but only a specification of what a solution looks like.[2]

Search method

   Input: a graph,
       a set of start nodes,
       Boolean procedure goal(n) that tests if n is a goal node.
   frontier := {s : s is a start node};
   while frontier is not empty:
       select and remove path <n0, ..., nk> from frontier;
       if goal(nk)
           return <n0, ..., nk>;
       for every neighbor n of nk
           add <n0, ..., nk, n> to frontier;
   end while

References

  1. Leyton-Brown, Kevin. "Graph Search" (PDF). ubc. Retrieved 7 February 2013.
  2. Leyton-Brown, Kevin. "Graph Search" (PDF). ubc. Retrieved 7 February 2013.
  3. Leyton-Brown, Kevin. "Graph Search" (PDF). ubc. Retrieved 7 February 2013.

See also

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

This article is issued from Wikipedia - version of the Saturday, January 10, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.