Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hashing question

Author: Matthias Gemuh

Date: 07:21:46 12/31/01

Go up one level in this thread


On December 31, 2001 at 09:25:41, Miguel A. Ballicora wrote:

>On December 31, 2001 at 09:18:54, Matthias Gemuh wrote:
>
>>On December 31, 2001 at 06:56:28, Michel Langeveld wrote:
>>
>>>I hash the movecolor in the hashtable.
>>>So I have one table with all of them.
>>>
>>>void doWhiteMove(moveType m)
>>>{
>>>
>>>   .... blablabla...
>>>
>>>   //change color
>>>   XOR(p.dynHash, moveColorHash[0]);
>>>   p.moveColor = BLACK;
>>>   XOR(p.dynHash, moveColorHash[1]);
>>>}
>>>
>>>What is better.. I don't know my program is only 2 months old.
>>>
>>>I think the inverting of all bits for black like Crafty does is maybe a little
>>>faster then my method.
>>>
>>>In my method if I search 5 ply for example White - Black - White - Black  -
>>>White and a lot of white to moves are in the hashtable I have them spread
>>>through all the table at random.
>>>
>>>And maybe the disadvantage of that is that spreading all hashkeys can give a
>>>performance penalty with page switches. Why not build both and keep what suits
>>>you best.
>>>
>>>Michel
>>
>>
>>
>>I think mixing black and white is a bit tricky if you want to
>>guarantee that black shall NEVER try to play a white move, or vice versa.
>
>That's an illegal move as any other that you might find when you have
>a (rare) collision. So, you deal with that in the same way, there is no
>difference.
>
>Regards,
>Miguel
>
>
>>
>>Matt.


Mixing greatly increases chances of collision.
I simply store relative to color-dependent base adress.








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.