Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Very easy mate to solve.

Author: Heiner Marxen

Date: 07:58:46 12/31/01

Go up one level in this thread


On December 31, 2001 at 07:44:24, leonid wrote:

>Hi, Heiner!
>
>
>>>What is "immediate mate move"?
>>
>>If the defender is to move, and the current depth is at least 3 (mate-in-2
>>or more left after defender move), and the defender has more than just his bare
>>king, then, before even generating the legal defender moves, Chest calls
>>the special mate-move-generator, trying to find a "mate the attacker in 1".
>>The moves found by that move generator are just candidates, and must be
>>executed to verify them, but there are not many false candidates.
>
>This is probably what I expected to write but never come to my code. Recently I
>put all kind of counters in plys three. What is interesting to see there is that
>biggest part of all positions for this ply have checking moves. So, if this side
>use its checking move and have certain number of legal moves for his king, it
>have good chances to escape mate after response. All work should be in finding
>how many initially legal king's moves are needed. Also it is important to see if
>each if its moves do not diminish number of already existing king's escape
>moves.

With "ply three", do you mean the defender is to move as part of the mate-in-2,
with the attacker asked to solve a mate-in-1 after this move?

If so, then yes: most of these moves are checking moves, and almost all of
them are quite successful.  In Chest I have a special handling for this.
The main thought (from the perspective of the defender) is:
- After the move I will select now, he (the attacker) is trying to mate me.
  I will keep him busy by checking him, so he has to defend to the check,
  instead of checking me.
- Ok, I could check him with this piece from there.  Now, could he defend
  against that check and at the same time check me?
  Well... if his king moves out of check... could be a discovered check
  to me, at most... but from there, where his king is leaving to there,
  where my king still is, there is no geometric connection... no discovered
  check.

More cases and details are tested, until one finds, that the defender by
checking the attacker in a certain way, already avoids any mate in the next
move.  In Chest I estimate that by verifying that the attacker cannot even
follow up with a checking move.  I call that "fatal anti check", FAC.
This is a very successful heuristic.


>
>>>>That really sounds like a (special sort of) killer heuristic.
>>>
>>>Will try to remember this strange expression.
>>
>>To me it appears to be standard term in the computer chess community.
>
>After having everything named in my own way in intensive initial writing, it is
>too hard for me to retain some words that are not explicit. Heuristic is not
>something that we use in daily English.

Well, I learned "heuristic" as a technical term in computer science.

>>>And how Holger wrote its move sorting? Did he started by doing move generator
>>>first? Don't be afraid to be very descriptive. It is just too interesting to
>>>know how other big projects started.
>>
>>First, we developped together some complete version of Chest, including
>>move generator, hash table etc.
>>Sorting of defender moves was done by the simple "basic" logic I already
>>explained, and which still is used for depth=2 analysis.
>>
>>Then we (Holger and I) had some intensive discussions, how to improve the
>>situation.  The defenders most important job has to be to cut down the
>>tree size.  On that we did agree.  But how to achieve this in a better way?
>>The simple heuristic we already had appeared to be not appropriate for
>>really deep analysis, say depth=6 remaining.  Tree sizes would vary very
>>drastically depending on the choice of the defender move.  And to avoid
>>such large trees we felt that some more effort should be spent.
>>
>>We agreed on a benchmark position: "Das unsterbliche Schachproblem"
>>by C.Bayer, a mate-in-9:
>>[D]3Q4/5q1k/4ppp1/2Kp1N1B/RR6/3P1r2/4nP1b/3b4 w - -

By the way, how does your program do on the above?
Here is my current result (K7/600, 350 MB hash):  9.7 minutes

#  4      0.04s [  4.00]        2kN [  4.82]  1.05        360-         0
#  5      0.26s [  6.50]       12kN [  5.58]  1.20       2822-         0
#  6      1.94s [  7.46]      127kN [ 10.83]  1.38      23726-         0
#  7     11.99s [  6.18]      755kN [  5.93]  1.75     145647-         0
#  8     70.42s [  5.87]     4550kN [  6.03]  2.05     882018-         0
#  9    579.43s [  8.23]    39451kN [  8.67]  2.17    6591614-    190219

PV: Rb7 Qxb7 Bxg6+ Kxg6 Qg8+ Kxf5 Qg4+ Ke5 Qh5+ Rf5 f4+ Bxf4 Qxe2+ Bxe2 Re4+
dxe4 d4#

>>Holger was interested to do research and experiments on this, and tried
>>to work on the tree size estimation idea.  He spent 2 weeks of his vacations
>>on this, and came back with an extended version of Chest, which now solved
>>that mate-in-9 much, much faster.  Actually, it was the first time that
>>we did solve that position (took 32.5 hours on a HP9000-835 in 1991).
>
>If this man was able to do everything in two weeks, he was stronger that me.

Not "everything", just the extension :-)
Also, trying out ideas is _much_ faster in C than in assembler.
That is the main reason for me to not use assembler, any more.

>I was coming all two weeks with some kind of new ideas and biggest part of them
>never worked.

I forgot to mention: we also introduced options for all three authors,
so that every author can trigger his own extensions without disturbing the
research of the others.  Anyway, it is a good idea to make extensions
conditional, so one can play with and without them, until the case is settled,
at which time a default is chosen.

>>So I took his code, cleaned it up somewhat, added some comments, and
>>asked him about all those peculiar details in there, which I did not
>>understand.  Most often he could not explain much more than "I tried
>>several things, and this worked best... don't know why".
>
>So, he, probably, did like me after statistics.

:-))

>Thanks, Heiner, for saying how it was done!
>
>Leonid.

Cheers,
Heiner



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