Author: Larry Coon
Date: 13:38:52 10/22/98
My own very amateurish program doesn't evaluate things correctly when doing selective extensions. I wondered if anybody could tell me where my assumptions are getting me into trouble. If I'm extending the search past what would normally be the leaf level (because the position isn't quiet) I generate a smaller set of "interesting" moves, which only includes things like captures, promotions, killers, etc. My assumption is that if I wanted to look at -all- the available moves, I would have just set depth higher to begin with. Extending has lower overhead that a full ply search because it considers fewer moves. So here's what it does wrong -- let's say it's btm, and it's already searched to depth=1, and max_extensions=2. At depth 1 it's wtm. So it generates all moves for white at depth=1, and one of them is h4. It makes this move and recurses for depth=0. At depth=0 it can extend if there's a an interesting move, and there is one -- Qxh4. So it extends and looks at Qxh4. At the next depth, white does Nxh4, winning a queen for the h pawn. Now since the move generator for extensions only generates the really interesting moves, the -only- move it generated at depth 0 was Qxh4. So as far as the search engine can tell, Qxh4 was forced, and white's h4 was a -great- move. Obviously, it was mistaken. Is my premise of generating only the interesting moves when I extend the search a bad one? Do I have to generate the full set of moves when I extend for just this reason? Or is there something else that can be done to make it work correctly using this system? I realize that extensions still buy me something even if I generate all moves (because it doesn't go past depth=0 for positions that are quiet), but I'd sure like to keep the extra time savings I get the way I do it now. Thanks, and sorry for the long post. Larry Coon
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.