Pular para o conteúdo

Conheça Walt Disney World

Best node search

Best node search (BNS), originally known as fuzzified game tree search, is a minimax search algorithm developed in 2011 that optimizes decision-making in game trees. BNS differentiates itself from traditional algorithms by identifying which moves (subtrees) are relatively better than others before calculating their exact minimax values, allowing for more efficient pruning of the search space.

First an initial guess at the minimax value must be made—often derived from statistical heuristics. Then BNS conducts searches that determine whether the minimax of the subtree is smaller or bigger than the guess. It changes the guessed value until either the bounds (alpha and beta) are close enough, or only one subtree remains that can potentially contain the optimal value. These two outcomes mirror the established "prove best" and "disprove rest" strategies in heuristic search theory, respectively. The former establishes tight bounds around the best move's value, while the latter eliminates all suboptimal alternatives.

Notably, BNS yields the optimal node (move) and bounds on its minimax value, but not necessarily the exact minimax value itself.[1] This characteristic makes it particularly suitable for applications where identifying the optimal move is more important than knowing its precise value. Empirical evaluations using random trees suggest that BNS achieves superior efficiency compared to other minimax algorithms.[citation needed]

Pseudocode

function nextGuess(α, β, subtreeCount) is
    return α + (β − α) × (subtreeCount − 1) / subtreeCount


function bns(node, α, β) is
    subtreeCount := number of children of node

    do
        test := nextGuess(α, β, subtreeCount)
        betterCount := 0
        for each child of node do
            bestVal := −alphabeta(child, −test, −(test − 1))
            if bestVal ≥ test then
                betterCount := betterCount + 1
                bestNode := child
        (update number of sub-trees that exceeds separation test value)
        (update alpha-beta range)
    while not (β − α < 2 or betterCount = 1)

    return bestNode

The default nextGuess function above may be replaced with one which uses statistical information for improved performance.

Generalization

Tree searching with Murphy Sampling[2] is an extension of Best Node Search to non-deterministic setting.

References

  1. ^ Rutko, Dmitrijs (2011). "Fuzzified Algorithm for Game Tree Search with Statistical and Analytical Evaluation" (PDF). Scientific Papers, University of Latvia. 770: 90–111. Retrieved 5 November 2022.
  2. ^ Kaufmann, Emilie; Koolen, Wouter; Garivier, Aurelien (2018). "Sequential Test for the Lowest Mean: From Thompson to Murphy Sampling". arXiv:1806.00973 [stat.ML].