Author: h.g.muller
Date: 06:51:01 03/07/06
Go up one level in this thread
Interesting. This again shows that there is something fundamentally wrong with the way computers treat end games. I fed this position to micro-Max, which you can safely say is the engine that has the least chess knowledge of all engines. It gets to 40 ply in 3 seconds, (1.9M nodes searched), and then comes to a grinding halt. Even after 13 min it only gets to 45 ply, without foreseeing a promotion yet. Then I do an interesting experiment: I change the engine to treat any move with a Queen as a King capture: 'infinite' score without further search irrespective of the requested depth. It then finds this infinite score on ply 45, after 4.6 sec. By that time it apparently has proved that black cannot prevent queening with any defense. Since in this experiment it can not search beyond queening in any branch, it of course does not find the checkmate. Intuitively you would guess that, once promotion is secured, the checkmate with a Queen ahead should be easily proved. Unfortunately, what seems to happen is that in the branches with stupid play for black you get the Queen much too early. In a constant-depth search it then starts to use that Queen, leading to a plethora of new positions overwriting the hash table, (the Queen can access many more squares than the Pawns could), so that the search to enforce promotion in the branches with intelligent defense is strongly hindered. So I try something even more interesting: If I am in a node where I have a Queen, and the current evaluation (including the material value represented by that Queen) is way above beta (say 500 centipawns or more), I am apparantly in a branch with a premature promotion, while other branches still are busy proving that they can enforce this promotion. Once they have proven this, the window will jump to around the promotion score, and my Queen would again have to work to match that, but as long as long as the simple fact of having the Queen brings me above beta, there seems little reason to do anything. So I return the current eval without further search (not even a null-move search!). So the only code line I add is: if(piece==QUEEN && beta < cur_eval + ROOK_VALUE) {depth = requested_depth; best_score = cur_eval; goto beta_cutoff;} (In the short-hand style in which micro-Max is written this looks like if(p==7&&e+500>l){m=e;d=n;goto C;}) The effect is that micro-Max again reaches a depth of 44 ply in 4.5 sec, (upto there nothing did really change compared to the previous experiment), then falls into deep thought, and after 28 sec completes the 45-ply search with the message that it can force a mate in 35. (It stops deepening when it finds a forced mate, even if this is not necessarily the fastest one, so that's it, then.) Apparently disabling moves of premature Queens causes a huge increase in search and hash-table efficiency! This was done on a 1.3 GHz Celeron M with 192 MB hash.
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.