Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Draw Detection by Move Repetition Procedure -- Comments

Author: Christophe Theron

Date: 10:51:46 08/02/04

Go up one level in this thread


On August 01, 2004 at 17:40:31, vladan wrote:

>On August 01, 2004 at 14:12:23, Christophe Theron wrote:
>
>>On August 01, 2004 at 13:51:47, vladan wrote:
>>
>>>
>>>
>>>
>>>
>>>Hi Remi,
>>>
>>>
>>>"Extender" is Alfa-Beta procedure we use in terminal nodes instead of static
>>>evaluator. Only a fraction of all generated moves are computed (captures, some
>>>checks and promotion moves). It is very important to optimize this procedure as
>>>much as possible.
>>
>>
>>
>>We call this a "quiescence search" or "QSearch". This term has been used for the
>>last 50 years I think.
>>
>>When you publish papers, it is a good idea to use terms that are commonly used
>>in your field of research.
>>
>>Or maybe I do not understand what you extender does?
>>
>>
>>
>>
>>>Hash system used in Axon is simple:
>>>
>>>6 bytes (48 bit):
>>>
>>>
>>>24 bit - fractional position key,
>>>16 bit - best move,
>>>8 bit - other flags.
>>>
>>>
>>>Using this compressed hash system we have tested Axon with 32 million
>>>positions/best moves memory. All nodes (included ones generated by the extender)
>>>could be supplied with best moves efficiently.
>>>
>>>
>>>Of course, 24-bit is not enough to determine positions exactly (like Zobrist
>>>64-bit hash); different positions could generate the same 24-bit hash key. But
>>>those cases (hash failure) are not fatal for searcher - they only could decrease
>>>quality of move ordering. But if the best move is found, Alfa-Beta, Null-Move
>>>and Extender procedures could make a great number of cutoffs.
>>>
>>>This is the main reason why our hash could be used for searcher and not for
>>>draw-detector.
>>
>>
>>
>>If I understand correctly, you use your hash table only for move ordering. You
>>do not use it to produce direct cut-offs. Correct?
>>
>>
>>
>>    Christophe
>>
>>
>>
>>
>>>
>>>
>>>Best regards,
>>>
>>>Vladan      (Axon programmer)
>
>
>
>
>Hi Christophe,
>
>
>You have understood everything, thanks for the very competent previous comments.
>
>
>"Extender" is the name of our Qsearch procedure   (sorry, I always think like a
>programmer :)
>
>
>
>Our current strongest version of Axon engine (about 2470-2500 ELO) use 6-byte
>hash with no direct cutoffs. It is very fast but not selective enough. Best-move
>hash is able to increase only number of Alfa-Beta cutoffs. But, as the
>compensation, this extra-compressed hash system could store millions of
>positions in operating memory - our record is 32 millions using Windows 98 on
>256 DDR Ram machine. (not 2000 or XP, they use too much memory for their
>needs!).



In Chess Tiger the size of the main hash table entries is 12 bytes. I store much
information than you do and use it to produce direct cutoffs (by transposition
detection).

As doubling the size of the hash table typically speed up the engine by 6%, I
think that using 12 bytes instead of 6 and using the information to produce
direct cutoffs is more efficient.




>Now, we try to find new optimal hash solutions for our program. In my opinion
>the right combination is probably:
>
>1. Zobrist 64-bit in normal search, where all techniques (direct hash pruning of
>course) will be used. Draw detection in that case will be performed using
>standard approaches.
>
>2.   Our new approach using variant strings could be performed in Qsearch, in
>the nodes where Zobrist key is not calculated.



I have found that using the hash table during QSearch was still the most
efficient approach, but this could change for a program with a faster QSearch
than mine.

Ultimately, and depending how many non-capture moves your QSearch generates, the
best approach could be to have a very FAST QSearch that computes less positional
information and that does not use hashing at all.




>Next versions of Axon will have this hybrid hash architecture; we'll test it.
>
>
>The main intention of the paper is to explain the new solution for the
>draw-detection problem when it is not possible to use hash keys. This is the
>first implementation of the new class of algorithms; of course some improvements
>could be included.
>
>We hope that new Chess Tiger will have benefits from the variant string
>approach, if you decide to use it.
>
>
>best regards,
>
>Vladan
>
>(Axon programmer)



I would not use your variant strings approach because I believe that the
algorithm I have recently published here is more efficient.

However I must admit that it is by reading your paper that I found this "piece
vector sum" algorithm. So thank you very much for publishing it.



    Christophe



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.