Skip to content
Portada » News » Refine root search bounds add Slow Mover to Wordfish 2.0

Refine root search bounds add Slow Mover to Wordfish 2.0

Wordfish 2.0

Summary Wordfish 2.0

Refine root search bounds

options.add("Skill Level", Option(20, 0, 20));

    options.add("Move Overhead", Option(10, 0, 5000));
    options.add("Slow Mover", Option(100, 10, 1000));

    options.add("nodestime", Option(0, 0, 10000));

search.cpp

  // Reset aspiration window starting size using last iteration's
            // final value (previousScore). Tripple the constant factor to
            // widen the initial window.
            delta          = 15 + std::abs(rootMoves[pvIdx].meanSquaredScore) / 11131;
            Value prev     = rootMoves[pvIdx].previousScore;
            alpha          = std::max(prev - delta, -VALUE_INFINITE);
            beta           = std::min(prev + delta, VALUE_INFINITE);
            Move prevBest  = rootMoves[pvIdx].pv[0];

            // Adjust optimism based on root move's previous score
            optimism[us]  = 136 * prev / (std::abs(prev) + 93);
            ....
            // In case of failing low/high increase aspiration window and
                // re-search, otherwise exit the loop. New bounds depend on the
                // old window, the score +/- delta and whether the best move
                // has changed.
                bool bestMoveChanged = rootMoves[pvIdx].pv[0] != prevBest;
                prevBest             = rootMoves[pvIdx].pv[0];
...
beta  = (alpha + beta) / 2;  // ignore FLB[0] params
...
 if (bestMoveChanged)
                        alpha = std::max(bestValue - delta, -VALUE_INFINITE);
                    else
                        alpha = (alpha + beta) / 2;
...
 delta += 2 * delta;  // triple C behaviour on subsequent tries

Timeman.cpp

// Scale allocated time according to the Slow Mover option (percentage)
    double slowMover = options["Slow Mover"] / 100.0;
    optScale *= slowMover;
    maxScale *= slowMover;

Download last update

Leave a Reply

Your email address will not be published. Required fields are marked *

Share via