Author: Russell Reagan
Date: 17:17:41 04/21/02
Go up one level in this thread
On April 21, 2002 at 19:29:39, Will Singleton wrote: >All, > >[D]5nk1/2R3p1/r4p2/4P3/p2R2N1/7P/1r4P1/7K b - - 0 42 > >The question is, my prog wants to play a3, and doesn't see the forced repetition >until ply 9. I've just thrown away my old buggy rep code, and replaced it with >a dedicated hash table. The new stuff seems to be debugged and working (maybe), >but there must be a trick to getting this position earlier. An extension, >perhaps? > >Will I assume that the repetition you speak of is after Nxf6 or Nh6, then after pawn takes knight, Rg5+ followed by Rg7 and perpetual check by Rgg7+ and Rh7+, correct? If so, then it seems like the program should be able to search to ply 7, then it should be found in the quiescent search. Here's an example: 1... a3 2. Nxf6+ gxf6 3. Rg4+ Kh8 4. Rgg7 a2 5. Rh7+ and then white can draw by repitition. It seems that this wouldn't be caught int he qsearch originally because of the extra move Rgg7 which is neither a capture or a check, and if your qsearch only does captures and check extentions, it won't extend to see the draw by repetition. So the problem here is what to do during a forcing sequence where there are moves that are not captures or checks, but still forcing, IMO. Perhaps you could implement an extention when there has been a long series of forcing moves to allow the program to allow one non-capture or non-check to be extended. In other words, don't stop qsearch at the first non-capture or non-check, but allow it to extend a single non-capture or non-check. When you reach the second non-capture or non-check, you could then terminate the qsearch. That's one idea I thought up off the top of my head and I have no idea if it would cause the search to blow up. It seems like it might cause the search to blow up at first glance. Anyway, the problem seems to be what to do when you have a series of forcing moves with moves that are at the same time forcing, but also non-captures or non-checks. In this position, Rgg7 is still a "forcing" move, but it's not so easy for a computer program to see that I guess. Hope this helps, or at least gets some ideas rolling. Russell
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.