Quiescence Search
   HOME

TheInfoList



OR:

Quiescence search is an algorithm typically used to extend search at unstable nodes in
minimax Minimax (sometimes MinMax, MM or saddle point) is a decision rule used in artificial intelligence, decision theory, game theory, statistics, and philosophy for ''mini''mizing the possible loss for a worst case (''max''imum loss) scenario. When de ...
game tree In the context of Combinatorial game theory, which typically studies sequential games with perfect information, a game tree is a graph representing all possible game states within such a game. Such games include well-known ones such as chess, check ...
s in
game A game is a structured form of play (activity), play, usually undertaken for enjoyment, entertainment or fun, and sometimes used as an educational tool. Many games are also considered to be work (such as professional players of spectator s ...
-playing
computer programs A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer program ...
. It is an extension of the evaluation function to defer evaluation until the position is stable enough to be evaluated statically, that is, without considering the history of the position or future moves from the position. It mitigates the effect of the
horizon problem The horizon problem (also known as the homogeneity problem) is a cosmological fine-tuning problem within the Big Bang model of the universe. It arises due to the difficulty in explaining the observed homogeneity of causally disconnected region ...
faced by AI
engine An engine or motor is a machine designed to convert one or more forms of energy into mechanical energy. Available energy sources include potential energy (e.g. energy of the Earth's gravitational field as exploited in hydroelectric power gen ...
s for various games like
chess Chess is a board game for two players, called White and Black, each controlling an army of chess pieces in their color, with the objective to checkmate the opponent's king. It is sometimes called international chess or Western chess to disti ...
and Go. Human players usually have enough intuition to decide whether to abandon a bad-looking move, or search a promising move to a great depth. A quiescence search attempts to emulate this behavior by instructing a computer to search "volatile" positions to a greater depth than "quiet" ones to make sure there are no hidden traps and to get a better estimate of its value. Any sensible criterion may be used to distinguish "quiet" positions from "volatile" positions. One common criterion is that moves exist in the position that can dramatically change the valuation of the position, such as captures in chess or Go. As the main motive of quiescence search is to get a stable value out of a static
evaluation function An evaluation function, also known as a heuristic evaluation function or static evaluation function, is a function used by game-playing computer programs to estimate the value or goodness of a position (usually at a leaf or terminal node) in a g ...
, it may also make sense to detect wide fluctuations in values returned by a simple heuristic evaluator over several
ply Ply, Pli, Plies or Plying may refer to: Common uses * Ply (layer), typically of paper or wood ** Plywood, made of layers of wood ** Tire ply, a layer of cords embedded in the rubber of a tire Places * Plymouth railway station, England, station ...
, i.e. a history criterion. The quiescence search continues as long as the position remains volatile according to the criterion. In order to get the quiescence search to terminate, plies are usually restricted to moves that deal directly with the threat, such as moves that capture and recapture (often called a 'capture search') in chess. In highly "unstable" games like Go and
reversi Reversi is a strategy board game for two players, played on an 8×8 uncheckered board. It was invented in 1883. Othello, a variant with a fixed initial setup of the board, was patented in 1971. Basics There are sixty-four identical game pieces ...
, a rather large proportion of computer time may be spent on quiescence searching.


The horizon effect

The horizon effect is a problem in
artificial intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
which can occur when all moves from a given node in a game tree are searched to a fixed depth. Threats and opportunities beyond the search depth will remain undetected. This can result in the peculiar ploy of a program making delaying moves that degrade the position until it pushes a threat beyond the search depth or "horizon". By the time the threat must be dealt with, the position has become too degraded to be salvageable. Quiescence search attempts to mitigate this issue by extending the search depth in volatile positions where the heuristic value may have significant fluctuations between moves.


Pseudocode

This
pseudocode In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine re ...
illustrates the concept algorithmically: function quiescence_search(node, depth) is if node appears quiet or node is a terminal node or depth = 0 then return estimated value of node else ''(
recursively Recursion (adjective: ''recursive'') occurs when a thing is defined in terms of itself or of its type. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in mathematics ...
search node children with quiescence_search)'' return estimated value of children function normal_search(node, depth) is if node is a terminal node then return estimated value of node else if depth = 0 then if node appears quiet then return estimated value of node else return estimated value from quiescence_search(node, reasonable_depth_value) else ''(recursively search node children with normal_search)'' return estimated value of children


References

* {{DEFAULTSORT:Quiescence Search Game artificial intelligence Computer chess Articles with example pseudocode