Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Mate in 80

Author: Michael Henderson

Date: 15:24:34 08/15/04

Go up one level in this thread


On August 15, 2004 at 17:33:08, Alessandro Scotti wrote:

>Today I was quite surprised to see my program proudly announcing a mate in 80,
>especially considering that only a few days ago it missed a mate in one.
>Anyway after a lot of debugging I *think* I have an idea about what's happening.
>Suppose a position is stored as "mate in 5" in the hash table. If I transpose to
>this position at depth=3 during the search, I have now a "mate in 8", which if I
>transpose to at depth=7 becomes a "mate in 15" and so on...
>I start to get in trouble if the position is very open and has a lot of
>transpositions, in my case it was simply a KBB vs. K ending.
>The most annoying effect is: mate scores don't mean a thing... even on the last
>mate it returns a score of "mate in 12"!!!
>I have checked against other programs and they don't seem to suffer from this
>problem... am I doing something wrong? :-(

You could store "bounded" mate scores in the hash table.  If you checkmate the
opponent and get Mate in X, store a "weak" mate score in the hashtable (like
mate in 650).  The value should be lower than any mate score value you could
reasonably expect in the search.  Then, based on logic, you can say this mate in
X position is at least that weak mate value you just stored.  So, you store the
appropriate hash flag that goes with this logic.  You can apply the same logic
for when you get checkmated.



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.