Misplaced Pages

Search problem

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Search problem" – news · newspapers · books · scholar · JSTOR (December 2013) (Learn how and when to remove this message)
This article may be confusing or unclear to readers. Please help clarify the article. There might be a discussion about this on the talk page. (December 2011) (Learn how and when to remove this message)
This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.
Find sources: "Search problem" – news · newspapers · books · scholar · JSTOR (June 2016)
(Learn how and when to remove this message)

In the mathematics of computational complexity theory, computability theory, and decision theory, a search problem is a type of computational problem represented by a binary relation. 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 made output; otherwise, the algorithm stops with an appropriate output ("not found" or any message of the like).

Every search problem also has a corresponding decision problem, namely

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

More formally, a relation R can be viewed as a search problem, and a Turing machine which calculates R is also said to solve it. More formally, if R is a binary relation such that field(R) ⊆ Γ and T is a Turing machine, then T calculates R if:

  • 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.)

Such problems occur very frequently in graph theory and combinatorial optimization, for example, where searching for structures such as particular matchings, optional cliques, particular stable sets, etc. are subjects of interest.

Definition

A search problem is often characterized by:

Objective

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

Search method

  • Generic search algorithm: given a graph, start nodes, and goal nodes, incrementally explore paths from the start nodes.
  • Maintain a frontier of paths from the start node that have been explored.
  • As search proceeds, the frontier expands into the unexplored nodes until a goal node is encountered.
  • The way in which the frontier is expanded defines the search strategy.
   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

See also

References

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

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

Category: