
True Piece Values; or, Chess Played Randomly
Previously on this blog I've looked at how one can estimate the values of the pieces, based on the number of moves they have from each square. This post has the same goal of estimating piece values, but will use a different approach- random chess games!
Most chess engines try to play the best move, even if some are stronger than others. But it's also possible to program a chess engine to play completely randomly. You just need it to generate all legal moves, then pick one. No search function, no evaluation function- just speed. There are a number of random movers available online; the one I used is here, though I had to modify it to accept custom starting positions.
Why would anyone want to make an engine like this? For us, it allows us to play games independently of player bias. For example, knights can't be "tricky" if you're playing randomly, because you can't really be tricked. The games are played completely fairly.
To determine the value of each piece, I first simulated 50,000 random games from the normal starting position. What happened? A lot of draws, and some very silly looking chess. But also some checkmates!
In 50,000 such games, white won 3,853 times, black won 3,841 times, and the game ended in a draw 42,306 times, for an 84.6% draw rate. Because the scores of white and black were so close, I wasn't able to determine a first-move advantage to any statistical confidence. Probably you'd need to simulate millions of random games to find it in this manner.
But we're interested in piece values, not tempi! To find the value of each piece. I took away one piece at a time, and simulated a large number of games for each missing piece. It turns out there are small- but detectable!- differences in scores between the sides when you do this. Here's a sampling:
Missing Piece | White Wins | Black Wins | Draws | Score |
Black Bishop c8 | 4304 | 3415 | 42281 | 0.509 |
Black Knight b8 | 4165 | 3594 | 42241 | 0.506 |
Black Pawn a7 | 3846 | 3487 | 42667 | 0.504 |
Black Queen | 4357 | 2304 | 43339 | 0.521 |
Black Rook h8 | 4252 | 3050 | 42698 | 0.512 |
White Bishop c1 | 3384 | 4320 | 42296 | 0.491 |
White Knight b1 | 3612 | 4205 | 42183 | 0.494 |
White Knight g1 | 3648 | 4161 | 42191 | 0.495 |
White Queen | 2229 | 4333 | 43438 | 0.479 |
White Rook a1 | 3151 | 4357 | 42492 | 0.488 |
White Rook h1 | 3105 | 4208 | 42687 | 0.489 |
Starting Position | 3853 | 3841 | 42306 | 0.500 |
After correcting for the (very small) first-move advantage, flipping the scores for the white pieces, and averaging equivalent pieces we get:
Missing Piece | Corrected Score |
Queen | 0.5207 |
Rook (a1/a8) | 0.5102 |
Rook (h1/h8) | 0.5115 |
Bishop (c1/c8) | 0.5091 |
Bishop (f1/f8) | 0.5082 |
Knight (b1/b8) | 0.5058 |
Knight (g1/g8) | 0.5054 |
Pawn (a2/a7) | 0.5038 |
Pawn (b2/b7) | 0.5056 |
Pawn (c2/c7) | 0.5083 |
Pawn (d2/d7) | 0.5092 |
Pawn (e2/e7) | 0.5087 |
Pawn (f2/f7) | 0.5070 |
Pawn (g2/g7) | 0.5067 |
Pawn (h2/h7) | 0.5039 |
Then there's the question- what is the proper conversion from score to piece value? Because these are relative piece values, I set the queen to be exactly 9 points; because I corrected for the starting position, a 0.500 score corresponds to exactly 0 points. But how do we figure out everything in between?
Initially I tried a linear conversion, but that runs into a problem- a piece with a value of ~220 points will yield a score over 1, which is impossible:
So we have to get the end behavior of our converting function correct.
What I settled on is a logistic function, which asymptotically will approach a score of 1 as the piece value increases:
And here it is zoomed into a reasonable range of points and scores. It's close to linear in this range anyway:
And here are the results, with pieces and pawns in different charts:
Piece | Value (Points) |
Queen | 9 |
Rook | 4.72 |
Bishop | 3.76 |
Knight | 2.44 |
Pawn | 2.89 |
How does that compare to historical chess piece valuations? I'm glad you asked! All of these are normalized so that the queen is 9 points:
Piece | Value | Modern | Philidor (1817) | Lasker (1947) | Fischer (1972) | Kasparov (1986) |
Queen | 9 | 9 | 9 | 9 | 9 | 9 |
Rook | 4.72 | 5.00 | 5.14 | 5.29 | 5.00 | 4.50 |
Bishop | 3.76 | 3.00 | 3.34 | 3.71 | 3.25 | 3.15 |
Knight | 2.44 | 3.00 | 3.34 | 3.71 | 3.00 | 3.00 |
Pawn | 2.89 | 1.00 | 1.03 | 1.05 | 1.00 | 1.00 |
Thanks for reading!