Computer Chess Club Archives


Search

Terms

Messages

Subject: Interesting mate test for hashing

Author: Robert Hyatt

Date: 21:19:37 09/09/99


Here is an interesting position given to me by Steffen Jakob:

 /p/P5p/7p/7P/4kpK/// w

       +---+---+---+---+---+---+---+---+
    8  |   |   |   |   |   |   |   |   |
       +---+---+---+---+---+---+---+---+
    7  | *P|   |   |   |   |   |   |   |
       +---+---+---+---+---+---+---+---+
    6  | P |   |   |   |   |   | *P|   |
       +---+---+---+---+---+---+---+---+
    5  |   |   |   |   |   |   |   | *P|
       +---+---+---+---+---+---+---+---+
    4  |   |   |   |   |   |   |   | P |
       +---+---+---+---+---+---+---+---+
    3  |   |   |   |   | *K| *P| K |   |
       +---+---+---+---+---+---+---+---+
    2  |   |   |   |   |   |   |   |   |
       +---+---+---+---+---+---+---+---+
    1  |   |   |   |   |   |   |   |   |
       +---+---+---+---+---+---+---+---+
         a   b   c   d   e   f   g   h


Obviously black is getting crushed.  He has one move, Kh3, which leads to a
mate in 6.  Steffen asked me to try this and Crafty found a mate in 4, which
doesn't exist.  I spent the entire day debugging this thing and here is what
I found:

If you recall the discussion here a couple of weeks ago, I reported that I store
absolute mate scores (EXACT scores) in the hash table, and that I adjust them
so that they are always stored as "mate in N from the current position".  This
has always worked flawlessly for me, and still does.

For bounds, I once tried adjusting the bounds as well, but found quirks, and
left them alone.  Wrong answer.  To fix this mate in 4 problem, I decided to
adjust the bounds as well, but I now set any bound value that is larger than
MATE-300, by reducing it to exactly MATE-300, but still using the "LOWER"
flag to say that this is the lowest value this position could have.  For bound
values < -MATE+300, I set them to exactly -MATE+300 and leave the flag as is.

This position is cute.  Because not only is it a mate in 6, but there are
transpositions that lead to mate in 7, mate in 8, and there are shorter (but
non-forced) mates in 4 and 5.  And there are stalemates, and positions with
1 legal move, and so forth.

You ought to find the following variation as one mate in 6:

Kh3, f2, Kg2, Ke2, Kg3, f1=Q, Kh2, g5, hg, Kf3, g6, Qg2#

If you find a shorter mate, it is wrong.  If you find a longer mate, you
are probably just extending like mad on checks (crafty finds a mate in 8 at
shallow depths (9 plies, 2 secs on my PII/300 notebook), and doesn't find the
mate in 6 until depth 10, 3 seconds.

It is a good test as the transpositions are real cute with white's king caught
in a tiny box, but with several different moves that triangulate and transpose
into other variations...

If you get it right, you have either handled the bounds right, or else you are
very lucky.  IE Crafty 16.17 gets this dead right.  But if I disable the eval,
it goes bananas, yet the eval is not important when mate is possible.

Have fun...

I did... :)



This page took 0.13 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.