I'm an applied mathematician who lives in the south east of Spain. I'm not rated. My favorite players are those considered the best endgame artists of all time: Lasker, Rubinstein, Capablanca, Smyslov and Fischer. I also tend to prefer the strategists (Botvinnik, Karpov, Kramnik) and the universal style players (Spassky, Anand) to the tacticians. However, I like accurate chess regardless of the players and styles. My approach to the puzzles is similar to that of David Zechiel (User: dzechiel): I first write the variations I find in a reasonable amount of time (using the puzzle diagram only) and post them before watching the game or other's comments. Then I have a look at them and try to be critical with my work. I apply the touch-move rule to my posts (see Unzicker vs Fischer, 1960). I hope to improve my tactical vision this way. Often I cannot even spend a couple of minutes looking at the diagram (work, family, other interests, etc.) so I try to blind solve it along several breaks. My first attempt was R Vera vs S Garcia-Martinez, 2001 and although the variations I found were not very deep I felt quite satisfied with the experience. I became interested in puzzle Elo ratings after trying to find a way of measuring my progress with these exercises. However, computing just rough estimates of the Elo rating of a given puzzle is a difficult problem. Some strategies to accomplish this are: I. Machine estimates. This method is pursued by User: MostlyAverageJoe so you should refer to his forum for further details. II. FIDE Elo distribution. This method assumes that the following more or less reasonable assumptions hold: 1) The puzzle kibitzer Elo distribution is close enough to that of FIDE rated players. 2) A player with Elo x is a good representative of the players belonging to the Elo interval [x-25, x+24]. 3) Kibitzers are objective and only claim the point when they really worked out the complete solution. I have approximated the FIDE Elo distribution with this table (source http://www.fide.com, Dec 31 2008): __A_ | __B_ | __C_ | __D__ | __E__ | ___F___
1325 | 1300 | 1349 | 99209 | ____0 | 100.0000
1375 | 1350 | 1399 | 99209 | ____0 | 100.0000
1425 | 1400 | 1449 | 99209 | __185 | 100.0000
1475 | 1450 | 1499 | 99024 | __373 | _99.8135
1525 | 1500 | 1549 | 98651 | __558 | _99.4376
1575 | 1550 | 1599 | 98093 | __850 | _98.8751
1625 | 1600 | 1649 | 97243 | _1286 | _98.0183
1675 | 1650 | 1699 | 95957 | _1851 | _96.7221
1725 | 1700 | 1749 | 94106 | _2594 | _94.8563
1775 | 1750 | 1799 | 91512 | _3511 | _92.2416
1825 | 1800 | 1849 | 88001 | _4677 | _88.7026
1875 | 1850 | 1899 | 83324 | _5879 | _83.9883
1925 | 1900 | 1949 | 77445 | _7053 | _78.0625
1975 | 1950 | 1999 | 70392 | _8236 | _70.9532
2025 | 2000 | 2049 | 62156 | 10602 | _62.6516
2075 | 2050 | 2099 | 51554 | 11189 | _51.9650
2125 | 2100 | 2149 | 40365 | 10541 | _40.6868
2175 | 2150 | 2199 | 29824 | _8745 | _30.0618
2225 | 2200 | 2249 | 21079 | _7531 | _21.2471
2275 | 2250 | 2299 | 13548 | _5311 | _13.6560
2325 | 2300 | 2349 | _8237 | _3358 | __8.3027
2375 | 2350 | 2399 | _4879 | _1993 | __4.9179
2425 | 2400 | 2449 | _2886 | _1367 | __2.9090
2475 | 2450 | 2499 | _1519 | __643 | __1.5311
2525 | 2500 | 2549 | __876 | __451 | __0.8830
2575 | 2550 | 2599 | __425 | __238 | __0.4284
2625 | 2600 | 2649 | __187 | __109 | __0.1885
2675 | 2650 | 2699 | ___78 | ___46 | __0.0786
2725 | 2700 | 2749 | ___32 | ___20 | __0.0323
2775 | 2750 | 2799 | ___12 | ___11 | __0.0121
2825 | 2800 | 2849 | ____1 | ____1 | __0.0010
2875 | 2850 | 2899 | ____0 | ____0 | __0.0000
where column A is the Elo representative of the class of players determined by columns B and C, column D is the amount of players stronger or equal, column E is the amount of players in the corresponding class and column F is the percentage of players stronger or equal. Now, if, for example, 70% of us solved completely the puzzle, I would rate it at Elo 1975 or better, between 1950 and 1999 points. Unfortunately, not all of us publish (an excerpt of) our findings to 'prove' that we got the solution (or a terrible embarrassment...). This translates into many computational problems: from strong bias (as pointed out by John Spouge, see agb2002 chessforum) to such lack of resolution that assessing the more difficult puzzles becomes impossible (see agb2002 chessforum). III. Puzzle characteristics. There are some features in every puzzle that can be used as metrics to evaluate its difficulty, for example, the type and number of tactical motifs, the number and depth of variations, the type and amount of material still on board, etc. For example, many players will solve the following puzzle immediately (White to move, Lasker's Manual of Chess, p. 116): click for larger viewHowever, the next puzzle is considerably more difficult in spite of containing practically the same tactical motifs (White to move, Lasker's Manual of Chess, p. 119): click for larger viewOnce having collected a sufficient number of puzzles with their metrics and Elo evaluation (perhaps using method I) it might be possible to fit a several variable function in which the independent variables are the metrics and the dependent variable is the given Elo rating. IV. Post characteristics. We can try to use some metrics from the posts to estimate its rating. These metrics would include: 1. CG assigned stars.
2. Posts issued on the puzzle's day.
3. Posts recognizing failure.
4. Plies to reach a clear decision, draw included.
5. MostlyAverageJoe's rating (thanks MAJ!).
6. Posts claiming (or implying) it was (too) easy.
7. Posts complaining (or implying) it was (too) difficult. Once having collected enough data (from at least 30 puzzles) we would try to find the most suitable fitting model f: rating = f(x1, ..., x7)
xi being the above variables, not necessarily all included in the model. For example, it could be as simple as rating = 1200 + 100*plies
As a curiosity, this is a VBA function for the best fitting model I've found to date using the CG stars (cgs) as the only predictor variable (N = 181, Rē = 0.688, asymptotic standard errors five times -at least- smaller that the corresponding coefficients): Function MAJ_Rating(ByVal cgs As Double) As Double
Const a As Double = 861.15488885
Const b As Double = -0.555156265
Const c As Double = 0.156127404
Const d As Double = -0.015186844
MAJ_Rating = a / (1 + cgs * (b + cgs * (c + cgs * d))) End Function
Comments are welcome. |