translation of evaluation to expected result

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

translation of evaluation to expected result

Postby Uri Blass » 16 Nov 2007, 16:46

I wonder if there is a tool that take pgn games of program X that include evaluations of program X as input and give as output some estimate for monotonic function of expected result based on evaluation.

I also wonder what is the best idea to get an estimate.

checking all the cases when the program has evaluation of 345 centi-pawns and finding the average result is a bad idea because the number of cases when the evaluation is 345 centi-pawns may be too small
and I would like to get an estimate that is monotonic and give bigger expected result for bigger numbers.

I also would like to get an estimate that consider not only the evaluation but also the rating of the opponent.

Note that I edited this post and corrected probability to win to expected result because it is impossible to translate evaluate to probability to win but only to expected result and 100% draw should get the same zero evaluation as another position with equal chances to win for both players.

Uri
User avatar
Uri Blass
 
Posts: 727
Joined: 09 Oct 2004, 05:59
Location: Tel-Aviv

Re: translation of evaluation to expected result

Postby YvesLejeail » 18 Nov 2007, 17:48

Hi Uri,
I don't undestand perfectly your question. In the first part, do you ask about a programme looking through the pgn file of a chess engine, and trying to analyse the evaluation of this chess engine given in this pgn?
Your idea is thus to have a tool to compare the evaluation of different chess engines? Maybe you should explain better if you want to have other answers :D
Yves
User avatar
YvesLejeail
 
Posts: 48
Joined: 03 Aug 2005, 17:36
Location: Pertuis, France

Re: translation of evaluation to expected result

Postby Uri Blass » 18 Nov 2007, 18:28

YvesLejeail wrote:Hi Uri,
I don't undestand perfectly your question. In the first part, do you ask about a programme looking through the pgn file of a chess engine, and trying to analyse the evaluation of this chess engine given in this pgn?
Your idea is thus to have a tool to compare the evaluation of different chess engines? Maybe you should explain better if you want to have other answers :D
Yves


I ask about a program that look in a pgn file and replace every evaluation of the programs by some estimate to the expected result.

My idea is to compare evaluation of different engines but also to use knowledge about the rating of the opponent so we need function that get as input rating of engine A rating of engine B and evaluation of engine A
and give as output real number between 0 and 1 that is the expected result.

For example if the engine has no bugs and the evaluation is mate of engine A is mate for engine A then the output can be 1 because you can be sure that engine A is going to win.

Uri
User avatar
Uri Blass
 
Posts: 727
Joined: 09 Oct 2004, 05:59
Location: Tel-Aviv

Re: translation of evaluation to expected result

Postby crystalclear » 17 Apr 2012, 17:39

It's not really an answer to the question, but I once read something along these lines.

From memory, a game with an even score will have an expected result of 0.5 (total of 0 for a loss, 1/2 for a draw, 1 for a win).
A game with score of +1 (eg a pawn advantage) will have an expected result of 0.6.
A game with a score of +2 (eg a couple of pawns up, or a rook versus minor piece exchange) will have an expected result of 0.7.
A game with a score of +3 (eg a minor piece advantage) will have an expected result of 0.8.
A game with a score of +4 (eg a rook for a pawn, or a minor piece plus pawn) will have an expected result of 0.9.
And by the time you are 5 points ahead, the game is almost certainly won.

I don't remember the article which had this information.
It was a bit more precise than my rule of thumb created from it, which is 10% per pawn.

Code: Select all
Result
1,0                                               **************************     WIN
0.9                                           *****                             
0.8                                        ***                                   
0.7                                       **                                     
0.6                                      *                                       
0.5             <---- pawns behind 54321*12345 pawns advantage ---->             
0.4                                    *                                         
0.3                                  **                                         
0.2                                ***                                           
0.1                           *****                                             
0.0  **************************                                                  LOSS


I imagine a graph with this sort of shape, 0 at the bottom and 1 at the top of the result axis and the graph having a gradient of 10% per pawn in the steep linear-looking part lying between [-4,4] pawns score on the x axis. Don't take the graph as being anything too realistic - I just did a couple of FOR loops in BASIC and printed a '*' if there was an arctan relationship between the X and Y figures. So my text is more accurate than the graph, and the text is just a from-memory recollection of some article I once read.

I had thought of trying to use this information to help with playing strategy in my chess program - for example, what is the fascination with trying to find the best move? When a game is fairly level at the start, maybe it is more important to make sure that a move that looks good actually is, rather than to spend time looking for a better move. Also, when a chess engine appears to be beating its opponent, the statistics seem to show that the game gets easier to play. It's more important therefor to avoid mistakes than to spend time trying to recover from one afterwards. And extra thinking time spent early on can pay for itself in reduced thinking time required later. In my last match for my local chess club, the time controls were 30 moves in the first hour and a quarter. I spent 15mins on my 20th move - my opponent threatened a rook and I replied with a knight sacrifice which caused my opponent to resign after move 25.

I don't know how to calculate the ideal amount of time a program should spend thinking about a move, but it seems to me that there should be some advantage to over-thinking when a game is level and playing moves more casually (quickly) once an advantage has been gained over the opponent.

=

For the original question, about how the score during the game correlates with the final outcome, I wonder ...
The score at what point in a game?
During the game the score (as reported by a chess engine) is going to change.
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 16 guests