There are some EPD test sets that are supposed to accomplish this.Dr.Wael Deeb wrote:I am quite surprised that an experinced programmer like Uri asks such a question....thinking less than a second,I knew that there is no such program....bob wrote:Here's all it can do: Run a typical "annotate" type operation on the PGN, and then count the number of times the player agress with the program, or the player agrees with the program's second choice, etc. Then use that to derive some sort of rating based on previous curve-fitting data obtained by feeding the PGN from a _bunch_ of players of each rating range through the program to see how they match.Dann Corbit wrote:But you also said:Uri Blass wrote:I mean to the last question and it is not correct that no program can do it.Dann Corbit wrote:Chessbase has a function to read a PGN file and calculate Elo for the players based on the games in the file.
BayesElo does the same thing.
I guess what you are really asking is "Is there a program that can look at the *moves* of a small sample of chess games and estimate Elo based on the moves made?"
If that is the question then I guess that no program can do it.
No program can do it well but I remember that Fritz3 could do it.
"it calculated only 2100 based on pgn of kasparov when it calculated something like 3000 based on pgn of Fritz3 when Fritz3 on p90 of that time was clearly not better than 2450."
Which tells me that Fritz3 was not able to do it.
Or it produced utter foolishness that claimed to be of value.
Take your pick.
It fails for many reasons, not to mention the most obvious which is the hardware is critical. Use slower hardware and the ratings will be over-estimated, use faster hardware and the ratings will be under-estimated.
In short, a SWAG at best, a random number at worst. Neither of which is particularly useful or interesting.
For instance:
BS2830.EPD
BT2450.EPD
BT2630.EPD
GS2930.EPD
all purport to calculate Elo based on score against these tests.
Theoretically, the same thing could be done using a chess program.
Here is how I would attack the problem:
Do a search for the top 6 moves of every position in the games, ranked by best to worst and see how the player did (e.g. did he get the best move 60% of the time, second best 25% of the time,... etc. and then match it against a database of known players who were used to calibrate the system).
I think that also revealing would be how often the chosen move was not even in the top 6.
I guess that this method will give decent answers given 30 games of input if you have also analyzed at least 30 games * at least 30 players of very well known strength = at least 900 games to create your baseline.
This method can probably also point out vulnerabilities (e.g. you have too many hanging pieces ... you are susceptible to poison pawns ... you fall prey to forks... etc.) if we add smarts to look for that. I think it would have a market.