Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: incremental attack tables?

Author: Tony Werten

Date: 02:32:10 05/05/04

Go up one level in this thread


On May 05, 2004 at 05:22:54, Daniel Shawul wrote:

>On May 05, 2004 at 05:16:49, Uri Blass wrote:
>
>>On May 05, 2004 at 05:06:43, Daniel Shawul wrote:
>>
>>>On May 05, 2004 at 05:01:55, Uri Blass wrote:
>>>
>>>>On May 05, 2004 at 04:40:43, Andrew Williams wrote:
>>>>
>>>>>On May 05, 2004 at 03:03:15, Daniel Shawul wrote:
>>>>>
>>>>>>Hello
>>>>>>
>>>>>>Is incremental attack table slower than creating them on fly?
>>>>>>I have both versions working properly right now but the incremental
>>>>>>one further drops NPS by 30% , though InCheck and Checks are for free in this
>>>>>>case. Anybody have similar experience? I am sure i have made no mistake in
>>>>>>updating because i checked it with the known perft positions and node count is
>>>>>>perfect.
>>>>>>
>>>>>>best
>>>>>>daniel
>>>>>
>>>>>It's a very long time since I implemented them, but at the time I compared the
>>>>>incremental ones were faster. I can't remember exactly how much faster it was,
>>>>>but I think it was of the order of 10 to 15%, if only because that is what a
>>>>>comment in an old source file says. What I don't know is if this was *after*
>>>>>thorough debugging.
>>>>>
>>>>>Andrew
>>>>
>>>>I have different attack tables.
>>>>
>>>>Last time that I implemented incremental tables was a long time ago before I had
>>>>a chess program.
>>>>
>>>>I did not make notes to see  how much faster it was but it was more than being
>>>>1000% faster in calculating perft.
>>>>
>>>>Uri
>>>
>>>How can incrementally updating attack tables make perft faster?
>>
>>I need the attack tables to generate legal moves.
>>
>>I have a function that generates the legal moves and it is dependent on the
>>tables.
>>
>>My tables tell me if a square is attacked by the opponent so I do not generate
>>moves that put the king in check.
>
>   First you update the attack table with the move and then you generate only
>legal moves based on the attack tables , right? What i do is update the attack
>table and then generate "pseudo legal" moves,except king moves to an attacked
>square. So our difference is you have a routine which calculates only legal
>moves based on your attack tables. I don't see how that can speed up perft
>immensely.

At the last ply you don't do make_move but just count the moves since you
already know they're legal.

Tony

>
>daniel
>
>>
>>My tables also tell me the directions that a square is attacked and the square
>>of the attacker from every direction so in case that the king is attacked I have
>>a special function to generate moves that is using this information.
>>
>>I never had move generator that is not dependent on the tables and makemove
>>always updated the tables.
>>
>>Uri



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.