3

AlphaZero paper which introduced the engine which allegidly outperformed stockfish mentioned the following:

These programs evaluate positions using features handcrafted by human grandmasters and carefully tuned weights, combined with a high-performance alpha-beta search that expands a vast search tree using a large number of clever heuristics and domain-specific adaptations.

In particular I am interested in a claim about features handcrafted by human grandmasters. The paper didn't provide any examples, neither it references anything here. To make the question less ambiguous, let's narrow the scope of programs to just a couple of best performing families of engines (stockfish, sugar, komodo, houdini)

So my question is: what kind of hand-crafted features do top performing family of engines use to evaluate a position?

  • 1
    You're a programmer right? Why not look at evaluate.cpp in Stockfish source code? – SmallChess May 21 '18 at 4:14
3

The paper is right. Traditional chess engines use a set of tedious hand-crafted features for positional evaluation.

I'd say nothing surprising, to name a fews (I can't name everything):

  • Mobility bonus
  • Outpost bonus
  • Attack bonus
  • Rook on the seventh rank
  • Material advantage
  • Minor pieces behind pawn

https://github.com/official-stockfish/Stockfish/blob/master/src/evaluate.cpp

If you take a look at the source code, it's quite complicated. Difficult programming for something that is understood even by chess beginners.

What about replacing the entire file with a deep neural network? Training a network is easier than tweaking those numbers in the file.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.