Author: Dieter Buerssner
Date: 08:17:56 08/09/01
Go up one level in this thread
On August 09, 2001 at 11:02:38, Andrew Williams wrote: >On August 09, 2001 at 10:48:18, Dieter Buerssner wrote: > >>On August 09, 2001 at 10:05:42, Andrew Williams wrote: >> >>>Here's my implementation of this in PostModernist: >>> >>>if(ply < (DEPTH-3)) { >>> int m; >>> >>> for(m=plystart[ply]; m < plystart[ply+1]; m++) { >>> make_move(tree[m].mv); >>> if(in_check(OTHERSIDE(whoseTurn))) { >>> unmake_move(); >>> continue; >>> } >>> // Probe the TT. If found, react appropriately! >>> ttr = tt_probe(); >>> if(ttr != NULL) { >>> if(beta <= -ttr->beta && ttr->betaDraft >= (draft-1)) { >>> unmake_move(); >>> return -ttr->beta; >>> } >>> } >>> unmake_move(); >>> } >>>} >> >>Perhaps, I don't understand this correctly. Don't you ignore all possible search >>extensions, that might be triggered by the move here. >> >>Or is the "if(in_check(OTHERSIDE(whoseTurn)))" taking care of the check >>extension. (I am not totally sure, whose turn it is ...) It could also mean, >>that this is just the legality check. Or do you generate only legal moves? >I'm not completely sure I understand what you're asking. >The if(in_check(OTHERSIDE(whoseTurn))) test is checking >for an illegal position (ie if the move leaves the side >moving in check). Actually, this is how I understood it first, but then I got unsure ... I assume you extend checking moves normally in search. So what can happen? Assume you have depth 5. Now you try all the legal moves. You check the hash for a cutoff (draft 4 is enough). But what if one move is a checking move? In a normal search, you will probably extend one ply, and then search again for the other side with depth 5 again. So, in the "normal" search, you also need draft 5 or better for a cutoff from the hash. So, it looks to me, that all search extensions are ignored by this approach. Especially, I would think, that very often the ETC is successful in typical game situations where the normal search wouldn't be. Earlier you quite likely will have searched the same line in the above example with depth 4. And stored it with draft 4 in the HT. You made the checking move. And searched again with depth 4, and stored with depth 4. No, the next time you visit the position, the first HT probe will fail to yield a cutoff (5 needed, 4 available), in the probe code above, you will have enough draft (4 is enough). But I think, this works against the idea of search extension. This is also the reason, why I did not experiment with ETC yet. To take search extensions into account will almost yield in a full fledged search loop. I must admit, that I had some problems to express myself clearly here :-( If it is still too confusing, please complain, and I will try again. Regards, Dieter
This page took 0.01 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.