AtomicDB

Sign in Register

How a backed value is built

A position's backed value is the best value its analysed moves give it. Each move is worth what the position it leads to is worth, and so on down, until the chain reaches a real engine search: the anchor.

This is a negamax over the graph: a value good for one side is bad for the other, so each step down flips the sign, and each position picks the move that is best for whoever is to move there.

White to move has two analysed moves and one nobody has analysed. After e4 the position is worth -30 for Black, so +30 for White. After Nf3 it is worth -120 for Black, so +120 for White, and that value comes from an engine search two plies further down. White's backed value is +120 through Nf3. The unanalysed move h4 adds nothing.White to movebacked +120 via Nf3e4Nf3h4Black to move-30 (so +30 for White)Black to move-120 (so +120)not analysedadds nothing2 plies downanchor: engine searchthe value comes from here
How a value backs up: each position takes the best of its analysed moves, seen from the side to move. Numbers are made up for the example.

The five rules, in short

  1. The best informed move always counts. A move analysed with a small search can still change a position analysed with a big one.
  2. The engine's list of best lines gives permission, never a value. It can let a position ignore moves nobody opened, but the number always comes from a real move.
  3. One losing reply does not decide a position. If the only known reply loses, the side to move still has its other moves.
  4. A move nobody has searched cannot beat the position's own lines. It is set aside and an analysis of it is queued.
  5. Every backed value ends in a real engine analysis, never in a loop.

Terms used in the rules:

  • Multipv: an engine search that publishes several best lines (moves with their values) instead of one. Each published line is a line of the position.
  • Coverage: how many of a position's legal moves have a value. Partial coverage means some are still unopened.
  • Mate band: the range of values that mean a forced mate.
  • Informed child: a move whose position has a value (backed or searched).
Rule 1: the best informed child always backs up
  • There is no depth gate between a parent and its children: a child analysed at 128M nodes moves a parent analysed at 2B.
  • Between moves worth the same, the order is fixed, so the same graph always produces the same choice:
    1. a move whose chain reaches a real analysis (see Repetition);
    2. then a proven win, the soonest mate first;
    3. then any move still open;
    4. then a proven loss, the latest mate first, so a lost side resists longest and never stands on a mate while a move is still open;
    5. then the heavier support, the shallower chain, the move the position's own search chose, and finally the move's name.
Rule 2: a multipv showcase bound grants permission, never a value
  • When the last analysis of a position published two or more lines, the engine asserted that no other move is better for the mover than the worst line of that showcase.
  • That bound lifts the partial coverage guards, so the negamax runs over the informed children as if the table were complete.
  • It never competes as a value of its own: the number is always a real child's, and a bound with no informed child under it backs nothing.
Rule 3: a mate band value against the mover backs nothing under partial coverage without an anchor
  • A position with no evaluation of its own whose only known reply loses knows nothing about itself: the mover still has the rest of the legal moves unopened and is not going to choose that loss.
  • A gain for the mover still travels on a single child, as always.
Rule 4: a move nobody has searched cannot beat the lines of the position above it
  • A position that was never searched and knows only the replies somebody opened does not have a value yet. Its number is the best of those replies: what the side to move there gets at least, a floor.
  • Seen from the position above, that same number is a ceiling on what the move can bring.
  • When the position above published two or more lines, its own search already said that no move outside them is better for the mover than the last one.
  • So an unsearched move outside those lines is not taken at a number that beats them: the position stands on its other moves, and an analysis of that move is queued to settle it.
  • A move an engine did search always backs up. A move that heads one of the lines refines its line as before. A position with fewer than two lines still shows what a walked line leads to.
Rule 5: every backed value terminates in a real engine analysis, never in a loop
  • That terminating analysis is the anchor. Where the chip on the value is a link, the link goes to it.
  • A value whose distance is longer than any chain of moves can be (more than 256 plies) was counted round a loop by a number that outlived its source. It is an echo, and the position above reads that move as if it had no backed value.

One value never displaces another for free

A position does not give up a measured evaluation for a number nothing has paid for. Instead it queues the analysis that would settle the question.

Exact rule
  • While a position still has replies nobody has analysed, a favourable value with no engine nodes behind it (the band of a line a visitor walked) does not push aside a measured evaluation, and the analysis that would settle it is queued.
  • It is set aside, not obeyed: the position is decided over its other moves as if that value were not there. So it keeps its own number unless a searched move beats it.
  • Exception: where a multipv bound vouches for the moves nobody opened, its searched moves decide, even below its own number.
  • When the value sits on the very move the position's own search chose, that search still values the move, and the position keeps its own number as before.
  • The same when a favourable child carries far less search than the pass that produced the parent's own evaluation: the value propagates, the gap is recorded as an open question, and a deeper pass is bought for that child.

← Position rows Repetition →