Stockfish evaluates a position by linearly add each individual term. That includes piece values, square values, pawn structures, mobility, passed pawns etc.
Is Stockfish a brute-force?
In @Ian_Bush’s answer, it’s noted that Giraffe doesn’t use brute-force computation. This is not right, because Giraffe is still an alpha-beta (nega-max) engine. The only difference to a standard engine is that the evaluation function is tuned automatically by deep-learning.
When to use an evaluation function in stockfish?
Main evaluation. An evaluation function is used to heuristically determine the relative value of a positions used in general case when no specialized evaluation or tablebase evaluation is available. In Stockfish it is never applied for positions where king of either side is in check.
When do you use tapered Eval in stockfish?
In Stockfish it is never applied for positions where king of either side is in check. Resulting value is computed by combining Middle game evaluation and End game evaluation. We use Tapered Eval, a technique used in evaluation to make a smooth transition between the phases of the game. Phase is a coeficient of simple linear combination.
How does Stockfish evaluate a static chessboard?
I have found that Stockfish represents the state of the chessboard using bitboards, it evaluates the static board positions using a categorical and statistical representation and uses an advanced alpha-beta search algorithm. In order to not analyze the same position several times, a transposition table is used.
Where can I find the source code for stockfish?
src, a subdirectory containing the full source code, including a Makefile that can be used to compile Stockfish on Unix-like systems. Currently, Stockfish has the following UCI options: Write all communication to and from the engine into a text file. A positive value for contempt favors middle game positions and avoids draws.