Author: John Boyd
Date: 19:02:21 05/13/03
Hi, I have a TSCP-based engine (TRACE) and want to replace mvvlva with SEE and attack tables. It just has to be better... doesn't it? These are what I perceive to be the advantages... 1. An attack table lookup replaces the slow ray-based in_check() routine. 2. The qsearch tree should be greatly reduced. 3. Move ordering and thus branching factor should be improved. 4. Square control info will always be available. 5. Overworked pieces can be detected and targetted. (maybe) 6. King safety becomes more accurate. And these are the disadvantages... 1. Incrementally updating the attack tables is going to be costly in clock cycles. (But then so is bad move ordering) 2. The engine becomes more likely to have even more bugs... So, for those who've taken this step... what sort of rough ELO improvement can I expect? And implementation-wise... Do most people incrementally update the attack tables in makemove()? Or do some engines generate attack data before the search and use it for move ordering for the first few ply, and don't worry about updating the data during the search? I think Crafty mentions this... not sure if its doing it exactly this way, now. I like the look of Ed Schroeder's technique of using pre-calculated tables to resolve the expected capture gain on a certain square. This would save a lot of time rather than minimaxing the SEE data every time. Comments anyone? I'm hoping this will be what TRACE needs to get to the next level. Thanks for your feedback... Ross
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.