True Piece Values; or, Chess Played Randomly
Chess, but randomly! (https://creativecommons.org/publicdomain/)

True Piece Values; or, Chess Played Randomly

Avatar of the_real_greco
| 6

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!