Author: Heiner Marxen
Date: 05:59:06 07/29/01
Go up one level in this thread
On July 28, 2001 at 18:47:21, Ron Murawski wrote: > >I have implemented a pin bitboard for king-pinned >pieces and it has helped the strength of my program. The lesson to learn here is not 100% clear: either you have identified a worthwhile additional feature/calculation, or you have identified a lack of feature elsewhere. Most programs appear to not process pins specially, an still they do not appear to have major troubles with pins. I.e. they handle them by search. (This is second hand information and guess work, so take with a grain of salt.) >My question is: Is it worthwhile to identify ALL >pinned pieces? > >Whereas the king-pinned pieces were quite easy to >determine and very important to the scoring, any >queen-pinned, etc. pieces will take much longer to >calculate and have less effect. In fact, some of the >pins seem to be phantoms as they might disappear >because of possible checking moves, tactical threats, >etc. > >Is it better to discover these pinned pieces in the >search, or is it better to do all the additional >processing in the evaluator? Has anyone tried >implementing the detection of all pinned pieces and >was the time spent looking for these pieces worth the >effort? > >Thanks in advance, >Ron Murawski Since there is not yet much generally available wisdom about this, you will have to find out yourself. Lots of work :-(. Can be lots of fun :-) I would either commit to the concept and just do it, or implement it conditionally (i.e. it can be diasabled later), and reevaluate from time to time, what it's worth and what it costs. I don't do a chess playing program, but rather a "mate prover" (Chest). Hence, the following may not fit well to playing programs. In Chest I always have up to date attack information, with which pins (or the absence thereof) can be determined very quickly. Maintaining this attack information (during MakeMove() and UndoMove()) OTOH is quite expensive. But using it for generation of strictly legal moves already balances the cost. I also us it for many other purposes, like move ordering and forward pruning. It pays off for Chest. In order to detect pins Chest uses not only "direct" attack sets, but also "indirect" attack sets. An indirect attack would be a direct attack, if one piece would be missing (making transparant the first piece hit by the attack). A piece P may be pinned to its king K only if some enemy piece E directly attacks P and indirectly does attack K (NB: this is not a sufficient condition, only a necessary one). As always, YMMV. Regards, Heiner
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.