Author: h.g.muller
Date: 00:28:09 02/28/06
Go up one level in this thread
On February 27, 2006 at 15:34:52, Alessandro Scotti wrote: >Hi H.G., >thanks for this explanation, it's a very interesting and new approach for me... >will try to see if it works for me too, although it seems it will take a bit of >work. That might depend on how your search is structured. In my case it was recognizing threats at the horizon in a static way (formally: a null move followed by a SEE-based eval), and so it was very natural to add Pawn non-captures to the SEE as if they were promotions. At the larger depths available today I would use null move followed by a search (at least a QS), and my QS would consider null-move. In that case simply making the pawn race part of the QS repertoire you would automatically follow lines like P - null - P - null - P - null - P->Q and the threat would be percieved. The more subtle part in a QS that recognizes threats is always what to do if there is one. Usually a threat is one of your pieces being captured in the null-move reply, and you would enable moves in your search like retreating or defending it. I this case the threatening move would be a Pawn non-capture, and the proper defence would be to run towards the promotion square with your King. Like minimax works it would do this starting at the end of the line, i.e. if th promootion can not be followed by KxQ, the null move just before it would receive a bad score, and it would try a 'hunt' King move there. If the King was only 2 steps away from the promotion square substituting this move for the last null move would solve the problem satisfactory, and the null-move before it would no longer be percieved as a threat. If the King is farther away, it would try to substitute hunt moves for the null moves working its way back from the end. All this is automatic minimax behavior. With alpha-beta a promotion that can be stopped leads to a tree that only branches on the plies of the hunter, with a branching factor 2 (first null move, then hunt if needed), if you are adept in sorting the hunt moves: these nodes are then beta nodes. The alpha nodes of the racer are all-nodes, but in this case 'all' is one! The 'danger' is in when the promotion can not be stopped. Then the hunter's plies all become all-nodes, and the search can blow up. IMO this is justified, because almost always you are talking about a variation that will decide the game, then. Nevertheless, to maintain efficiency, one should be a little selective what to allow as hunt moves. In particular, you don't want the search to figure out in how many million ways the hunting King can NOT catch the Pawn if it is outside the 'square', so a move that does not step into the square is not a valid hunting move (an easy static test). Moves that increase the distance to the Pawn or promotion square seldomly lead to anything, and can be dropped as well. I allowed some variation in hunt moves rather than only allowing the 'best' (in terms of approach), to prevent problems with positions like: [D] 8/8/8/3pp3/1P3k2/8/8/8 w where the fastest approach to the promotion square is blocked, and the merit of the two detours can only be judged on later plies. So try them both! If your program does not do threat detection at the horizon, an easy alternative would be to (in QS) allow the Pawn to make a multiple step from anywhere on the board (rather than only a double step on its initial row), like a 'Lance' in Shogi, allowing a semi-passer to promote in a single move. To not sort-change the defense, the opponent should be allowed on his reply to do e.p. capture of that Pawn (now a Queen) on any square that was skipped, and in addition the King should be allowed to do e.p. captures on some of those squares as well (based on the square rule). This would not be as clever in discovering and navigating around King obstructions as a dynamic search, unless you make a smart routine for selecting the e.p. captures with King. The only other important issue is when to allow the start of a race with a new Pawn. If you do the races not only in QS but also as extensions, such starts are made automatically in the full-width search, even after the Pawn in question was 'liberated' only at the end of another race (or Pawn's leap). Like in: [D] 8/1p6/1P6/P3k3/8/8/8/8 w you would get 1. a5-a8Q, b7xa6 e.p. 2. b6-b8Q, (Ke5 too far away to capture e.p.)
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.