Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: The Code for the Rybka-Mate-Bug

Author: Tony Werten

Date: 02:11:35 12/16/05

Go up one level in this thread


On December 14, 2005 at 18:53:21, Dann Corbit wrote:

>On December 14, 2005 at 08:00:00, Vasik Rajlich wrote:
>
>>On December 14, 2005 at 04:44:15, Steve Maughan wrote:
>>
>>>Vasik,
>>>
>>>>The problem is when the hash entry ages.
>>>
>>>This is easy to get around - just store the distance to mate from the *position*
>>>(i.e. not the root) in the hash table.
>>>
>>>In pseudo code:
>>>
>>>procedure push_hash(position)
>>>begin
>>>	if winning_mate_value_in_hash then
>>>		hash_draft_depth += position's_ply_from_root
>>>	else if losing_mate_value_in_hash then
>>>		hash_draft_depth -= position's_ply_from_root
>>>	store(position)
>>>end;
>>>
>>>procedure probe_hash(position)
>>>begin
>>>	if found_in_table(poistion) then
>>>	begin
>>>		get_hash(position)
>>>		if winning_mate_value_in_hash then
>>>			hash_draft_depth -= position's_ply_from_root
>>>		else if losing_mate_value_in_hash then
>>>			hash_draft_depth += position's_ply_from_root
>>>	end
>>>end;
>>>
>>>I hope this helps!
>>>
>>>Regards,
>>>
>>>Steve
>>
>>Steve,
>>
>>thanks, I guess this also works - although it's a bit dirty.
>
>What's the other way to do it?

One obvious one is to add an additional flag (besides UPPER,LOWER and EXACT )

It can then be used to:

1) calculate a score (the score following will be distance to mate) fe
CHECKMATE_IN_ZERO - current_ply - dtm

2) ignore hashtable depth


Tony



This page took 0.01 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.