Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: hash collisions

Author: Robert Hyatt

Date: 08:40:08 07/11/02

Go up one level in this thread


On July 11, 2002 at 00:34:56, Ricardo Gibert wrote:

>On July 10, 2002 at 22:04:44, Robert Hyatt wrote:
>
>>On July 10, 2002 at 20:42:45, Ricardo Gibert wrote:
>>
>>>On July 10, 2002 at 11:04:34, Sune Fischer wrote:
>>>
>>>>On July 10, 2002 at 09:30:30, Ricardo Gibert wrote:
>>>>
>>>>>On July 10, 2002 at 04:30:28, Sune Fischer wrote:
>>>>>
>>>>>>On July 10, 2002 at 01:02:38, Ricardo Gibert wrote:
>>>>>>
>>>>>>>I find it fascinating that so many very experienced computer chess programmers
>>>>>>>do not understand some rather fundamental properties of alpha-beta search.
>>>>>>>
>>>>>>>What RH ran into was actually quite predictable. As MF put it, "I'm surprised
>>>>>>>that you're surprised."
>>>>>>
>>>>>>In a PV search some of the nodes are searched twice, so if you get something
>>>>>>outside the zero window because of a collision, it slows you down as you have to
>>>>>>research, but it doesn't hurt you unless you get another collision while
>>>>>>researching.
>>>>>>
>>>>>>-S.
>>>>>
>>>>>This is not a property of using PVS. A normal alpha-beta search plus hash table
>>>>>does this too.
>>>>
>>>>How so?
>>>>I would say it does the opposite, since its about refuting moves.
>>>
>>>What either one of us has to say on this is really irrelevant. RH needs to
>>>conduct a more reasonable test. The manner in which he generated the collisions
>>>plus the use of PVS should be changed.
>>
>>How would you suggest generating the collisions?  As far as dropping PVS
>>however, I disagree on.  That is what I _use_ in real games.  That is what
>>I want to understand the behavior of.  I don't care about variants of
>>alpha/beta that I am not using myself (ie mtd(f) or something else that
>>is non-PVS).
>
>You are forcing a collision every 1000 nodes, but then the same position will
>not likely produce the same collision when the position is researched.


That is true in PVS regardless.  The first false match is almost guaranteed
to be a >beta or <alpha type match.  On the re-search, this will be useless
_anyway_.


> You are
>testing something very different and valuable than if you were generating the
>collisions in a consistent way unless I have misunderstood what you were doing.
>


I don't think it matters with PVS since the first search is on a null-window
but the second (research) is not.  There are hardly any "exact" scores in the
table anyway, so about all we will see are fail high/fail low entries.  And they
will be useless on any re-search.



>I think studying alpha-beta first will afford a more precise understanding of
>what is going on. Start with the simple before moving on to the more complex. I
>just think it is better to be more methodical.


My "first cut" was not intended to be a 100% determining test.  It was
intended to get some initial data, without requiring a huge amount of work.
The first cut added 3-4 lines of code.  Removing PVS would be more complicated
than that...  I'm not sure I will ever care what pure alpha/beta does since
I never plan on using it again, but futher experiments will certainly be more
comprehensive than this "pilot study".




>
>>
>>
>>
>>
>>>
>>>>
>>>>But thinking further about it, the collision could also return a false score
>>>>outside alpha-beta, so the move is refuted when it should not be. I don't know
>>>>which is worse, but at least landing _inside_ is harmless as we just research,
>>>>which was my point.
>>>>
>>>>-S.



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.