21 September 2015

Chess Engines : Advanced Evaluation

In the first post in this new series on Modern Chess Engines, I linked to a Big Techday 8 resource from which I culled eight high-level topics.

While some of these topics have been known since the early days of chess programming, others are less familiar and have subordinate topics that deserve a separate look.

Under 'Evaluation functions' is a subordinate topic 'Advanced Evaluation', that is presented around ten minutes into the associated video. That slide lists five advanced functions that are well known to all competent chess players (if you're not sure where you stand, see my page on Positional Play in Chess):-

King safety
Mobility
Pawn structure
Rook on open file
Bishop pair

The value of the Bishop pair has been calculated to be +0.5 (a half-Pawn). If this is news to you, you might want to review my post on Kaufman's Material Imbalances, part of an earlier, introductory series on Practical Evaluation. Along with those five functions are two more that are not so well known, even to very competent players:-

Piece-Square Tables
Tapered eval

Chessprogramming.wikispaces.com defines them as

Piece-Square Tables • A simple way to assign values to specific pieces on specific locations.

and

Tapered Eval • A technique used in evaluation to make a smooth transition between the phases of the game.

The concept of 'Piece-Square Tables' is easier to understand with an example or two, as in Chess Bin: Piece-Square Table. As for 'Tapered Eval', one of the first engines I used was particularly bad at this. An advantage of around +0.5 would often evaporate after the 'inferior' side castled or after Queens were exchanged.

These last functions are both considerations that competent players take into account intuitively, usually without knowing what the concepts are called in computer chess. Having said that, even very good players can have trouble evaluating the transition from the opening to the middlegame or from the middlegame to the endgame.

No comments: