Computer Chess Club Archives




Subject: Re: Very easy mate to solve.

Author: Heiner Marxen

Date: 17:48:54 12/31/01

Go up one level in this thread

On December 31, 2001 at 15:19:22, leonid wrote:

>On December 31, 2001 at 10:58:46, Heiner Marxen wrote:
>>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
>>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.
>Exact! And since in my program all checking moves are already at the head of the
>chain, I should use some data that it already there.
>>- 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.
>This is very close to what I expect to see but, like in the past, I will do it
>in parts. First I will see how many times king can escape the mate when its side
>(I speak about 3 ply) give check to whites. Only after this I will look into
>second part, when on ply 3 blacks have no moves to check but black king have
>around 5 moves or more. This possibility is very much present in position that
>you brought today.

Lets look at statistics from Chest:
mvx  9:         50         79  [ 50.000  1.580]    mvskip     lvskip
mvx  8:        528        542  [  6.684  1.027]
mvx  7:       4621       4409  [  8.526  0.954]          8
mvx  6:      34852      30307  [  7.905  0.870]        112          1
mvx  5:     196096     177735  [  6.470  0.906]      11985         19
mvx  4:    1172529    1037151  [  6.597  0.885]      24179         64
mvx  3:    8138955    7049843  [  7.847  0.866]
mvx  2:   13256189    7032443  [  1.880  0.531]
mvx  1:    1314511          0  [  0.187       ]

The small black EBF 0.531 (ply 3) is due to FAC:
fac  :  10923553 calls, 10810677 scans, 5650313 ck, 4680226 success (42.8%)
fact :   4074088 calls, 3660805 candidates, 2332632 success (57.3%)
fackm:   6372715 calls, 4736464 inchk, 4092589 scans, 5295446 dirs
         3621958 used [0.57]

And the comparatively small EBF one ply higher (1.880) is due to "mate2",
which does not try to check the attacker, but to escape with the king:
mate2:  6372715, 71787466 cand [11.3], 13256189 mvx [18.5%]
m2e: avg 5.25, cnt = 6064322

The defending king has 5.25 flight squares on average (including the king's
square). That is a lot.  Delivering mate is not easy, then.
(This statistic is done _before_ the attackers move at ply 4)

Yes, if you do not yet do something like that, there is still a lot of
potential.  But it is not easy to do the necessary calculations quick enough.

>>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.
>>Well, I learned "heuristic" as a technical term in computer science.
>Before I read a lot about programming but it was only Assembler related books.
>Nothing about chess. I don't remember "heuristic" word on all my reading.
>After your previous message I went to search in "Oxford American Dictionary" for
>1979 "heuristic". Wanted to "refresh my mind". Dictionary is around 50000 words
>but this word is missing.

My "Advanced Learner's Oxford" from 1974 contains:
heuristic: adj, of the theory in education that a learner should discover
things for himself.
heuristics: n, method of solving problems by inductive reasoning, by
evaluating past experience and moving by trial and error to a solution.

May be you should not ask a German to explain English words ;-)

>>>>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).
>At the time when my first mate solver version was done, in around 1995, this
>position could easily take months to solve.
>>>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.
>When you write only for fun, Assembler could be the most amusing thing to use. I
>like its freedom.

Sure.  I like that too.  In fact, around 1980 I did write my chess problem
solver in assembler (for an IBM/370).  Yes, it was a lot of fun, but then
I realized how difficult (time consuming) it was to test new ideas, and
therefore permanently switched to C.  That was much better to experiment with.
Debugging time reduced, also.
No, I will not do assembler, again.  Not for Chest, at least.

>>>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.


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