Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Simulating the result of a single game by random numbers

Author: Christophe Theron

Date: 12:45:53 07/03/01

Go up one level in this thread


On July 03, 2001 at 15:08:42, Christoph Fieberg wrote:

>Description of the program I developed for simulating the result of a chess game
>of two rated players.
>
>The result of the game depends on the performance factor and a draw factor.
>
>1.) Performance factor
>
>The performance factor depends on the rating difference and on the advantage
>playing the white pieces.
>
>In order to determine the performance factor I analyzed nearly 100.000 games of
>games with both players 2500+. The distribution for 1-0, Draw, 0-1 was (rounded)
>31%-50%-19%. White had a success-rate of 56% (= 31 + 50/2) and Black of 44%. [I
>would be happy if this distribution could be validated by others. It has to be
>noted that this is an average distribution for players 2500+. On the top level
>the success-rate is lower due to a higher number of draws.]
>
>The average opponent for White and Black had the same rating and therefore the
>advantage playing white (if both players have the same strength) is 12%-points
>(56-44) what can be expressed as 42 Elo-points (see formula below). Thus, for
>calculation purposes White has to be added 21 Elo and Black substracted 21 Elo
>in order to consider the advantage playing white.
>
>The following formula (I think used by FIDE) allows to calculate the performance
>based on Elo-difference and vice versa. It is:
>
>Performance (%) = (1 / (1 + (10 ^ (-difference / 400))))
>
>Example for calculating the likely performce of a 2600 player playing white
>against a 2550 player:
>
>Rating 2600 – 2500; Advantage White => 2621 – 2479; Difference = 142; => 69.37%.
>This means in 100 such games the 2600-player (who always has white) most
>probably will win 69.5 - 30.5. [Note that in case that it is a match of 100
>games with changing colours there would be no white advantage and thus the
>difference is only 100 => 64.01%. For specialists: Here the white advantage is
>10.72%-points instead of 12%-points. This implies that according to the formula
>it is as hard to get from 64.01% success rate to 69.37% as it is from 50% to
>56%.]
>
>
>2.) Draw factor
>
>The draw rate has to be seen in relation on the maximum number of draws
>depending on the success rate and not in relation on the number of games played
>(this is a important point which seems to be totally neglected in draw rate
>considerations).
>
>Example: If there is a success rate of 90%, a player will get 90 points out of
>100. It is clear that the maximum number of draws can only be 20 (80 wins, 20
>draws, 0 losses => 90 points). If there are really 20 draws the draw rate (here
>depending on the success rate of 90%) therefore is 100% and not 20%. If a 90%
>success rate results in 85 wins, 10 draws and 5 losses the draw rate would be
>50%.
>
>The average draw rate based on the nearly 100.000 games of 2500+ players can be
>calculated according to the following formula:
>
>Draw rate = Percentage of draws / ((100% - success-rate) * 2)
>
>As described above there were a success-rate of 56% and a 50% were draws.
>=> draw rate = 50% / ((100% - 56%) * 2) = 56.82%
>
>This average draw rate of 56.82% now allows to calculate the distribution for
>the result of a single game.
>
>Example: I will calculate the result of the game 2600 – 2500. The success-rate
>taken into account the white advantage is 69.37% (see above). The average draw
>rate is 56.82%.
>
>Therefore percentage of draws is (1 – (ABS(0.6937-0.5) * 2)) * 0.5682 = 0.3481 =
>34.81% and the percentage of wins is (0.6937 – (0.3481 / 2)) = 0.5197 = 51.97%
>
>This means that we can expect in 1000 games from the 2600 player about
>
>520 wins / 348 draws / 132 losses (distribution 52% - 34.8% - 13.2%)
>
>[Check: (520 + 348 / 2) / 1000 = 69.4% success-rate; maximum number of draws =
>612 (distribution 388 – 612 – 0) => draw rate = 348 / 612 = 0.5686 = 56.86%]
>
>
>3.) Calculation the result with random numbers
>
>If the distribution for the result of a single games is known it is relatively
>easy to simulate the outcome. In the example the distribution for a game 2600 –
>2500 is
>
>52% for a win, 34.8% for a draw and 13.2% for a loss.
>
>(The calculation depended on the average success-rate of 56%, the average
>advantage for the white player of 42 Elo-points and the average draw rate of
>56.82% as shown above).
>
>The simulation-program creates a random number between 0 and 1 (e.g. 0.446).
>In case the number is >= 0.48 (likelihood 52% as for a win) the 2600 player
>wins.
>In case the number is > 0.132 and < 0.48 (likelihood 34.8% as for a draw) the
>game is a draw.
>In case the number is <= 0.132 (likelihood 13.2% as for a loss) the 2600 player
>looses.
>As example the random number is 0.446 what means that the result of the game is
>a draw.
>
>
>4.) Simulation of tournaments and matches
>
>With the simulation of the result of a single game it is possible to calculte
>whole tournaments and matches (the only difficulty is to program it).
>
>In respect of matches it has to be regarded that the main factors (average
>success-rate, average white advantage, average draw rate) are average factors
>and probably have to be adjusted to the level of the opponents. Also for
>tournaments there schould be adjustments depending on the category of the
>tournament.
>
>My vision is to find out the average factors for each level (from 2200 to 2850
>step Elo 50) and in another step to pre-calculate all distributions and to fill
>a huge table for any possible game (where for example also the distribution of
>2600 – 2500 = 52.0% / 34.8% / 13.2% would be stored). The speed of the
>simulation would be enourmously accelerated.
>
>
>I look forward to your comments.
>
>Best regards,
>Christoph



Very interesting, I hope you go on and publish your tables and the program used
to generate them.


    Christophe



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.