Search problem
It is proposed that this article be deleted because of the following concern:
If you can address this concern by improving, copyediting, sourcing, renaming, or merging the page, please edit this page and do so. You may remove this message if you improve the article or otherwise object to deletion for any reason. Although not required, you are encouraged to explain why you object to the deletion, either in your edit summary or on the talk page. If this template is removed, do not replace it. This message has remained in place for seven days, so the article may be deleted without further notice. Find sources: "Search problem" – news · newspapers · books · scholar · JSTOR Nominator: Please consider notifying the author/project: {{subst:proposed deletion notify|Search problem|concern=The article is poorly written (see issues box below). More important, its lead is about the [[function problem]] in computational complexity theory while its rest seems to be about a particular kind of [[graph traversal]] or [[search algorithm]]. If there is any valuable text here, it should be integrated into one of these. After deletion, [[search problem]] could be made a redirect to [[function problem]], or a disambiguation page listing all three articles mentioned.}} ~~~~ Timestamp: 20190314124818 12:48, 14 March 2019 (UTC) Administrators: delete |
![]() | 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)
|
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:
- 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
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 ("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
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 set of states
- A start state
- A goal state or goal test
- 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.[1]
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.[1]
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
- Unbounded search operator
- Decision problem
- Optimization problem
- Counting problem (complexity)
- Function problem
- Search games
References
- ^ a b c 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.