Jump to content

Evaluation function

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by GreenC bot (talk | contribs) at 07:06, 31 August 2016 (→‎External links: WaybackMedic 2). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An evaluation function, also known as a heuristic evaluation function or static evaluation function, is a function used by game-playing programs to estimate the value or goodness of a position in the minimax and related algorithms. The evaluation function is typically designed to prioritize speed over accuracy; the function looks only at the current position and does not explore possible moves (therefore static).

In chess

One popular strategy for constructing evaluation functions is as a weighted sum of various factors that are thought to influence the value of a position. For instance, an evaluation function for chess might take the form

  • c1 * material + c2 * mobility + c3 * king safety + c4 * center control + ...

Such as

  • f(P) = 9(Q-Q') + 5(R-R') + 3(B-B'+N-N') + (P-P') - 0.5(D-D'+S-S'+I-I') + 0.1(M-M') + ...

in which:

  • Q, R, B, N, P are the number of white queens, rooks, bishops, knights and pawns on the board.
  • D, S, I are doubled, backward and isolated white pawns.
  • M represents white mobility (measured, say, as the number of legal moves available to White).[1]

In Go

Evaluation functions in Go take into account both territory controlled, influence of stones, number of prisoners and life and death of groups on the board.

See also

References

  1. ^ Claude Shannon (1950). "Programming a Computer for Playing Chess" (PDF). Philosophical Magazine. 41 (314).