Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: One mate to solve...

Author: leonid

Date: 14:35:38 05/19/01

Go up one level in this thread


On May 19, 2001 at 16:25:27, Heiner Marxen wrote:

>On May 19, 2001 at 14:51:11, leonid wrote:
>
>>Hi!
>>
>>Today had very busy day mainly because should go into library and had few thing
>>to do at home. Will later look into your description. But do you remember what
>>is about your file that sound like "Mate 2"? It is not about searching mate at
>>two plys deep?
>
>Hi,
>
>yes, it is about searching mate, but in 2 moves (i.e. 3 plies, to be exact).
>It is about reducing the attacker's candidates for a mate-in-2 solution.
>But be warned, this is a very complex part of Chest.

Never mind that it is complex, it is not what is so interesting for me. The most
interesting that this respond to my old question: Do other programmers write all
their plies in the same way? Before response was: "Yes". I was astounded. Now I
see that there are people that write other way.

In my program around 8 plies are done in special way but in the most different
only last two plies.


>> It is the occasion when many shortening in the search process
>>could be done. Attacker can generate only checking moves and for responding side
>>only one legal move will be enough to say that mate not existe. Without taking
>>in consideration this special character of last two plys, general searching
>>process will go some 40% longer. Now I don't remember for what depth I looked
>>when I found this.
>
>For the last ply, where the attacker is to deliver mate-in-1, Chest has a
>special move generator (move1gen() in move1gen.c).

The same for mine. One move generator create all legal checking moves and the
next one look for first legal move. Probably when looking for legality for this
one legal move that your program goes one ply deeper, in order to see that it is
legal. In reality, our programs do the same. Mine check for legality in move
generator.


>For the second-last ply, where the defender tries to find a move not
>followed by mate, Chest has the "answer heuristic": answer.c provides
>a sort function on defender's move list.  fac.c provides functions,
>to recognize many cases, where a defender can check the attacker, who in
>turn is so busy to deal with the check, that he does not find any reource
>to mate the defender.  Such a "fatal anti check" immediately solves the
>job of the defender within a mate-in-2, without executing the move.

I recently changed just this part where the move on the last ply (not in last
two moves) was not executed. Now it go on chess board. It permit to do the job
in almost exactly the same time like before but give me now exact numbers in my
node/per/second. I did it when installed my counter for mate solver.


>All of these make a better first reading than "mate2.c".
>What the heck ... just read them all  ;-)

Thanks, will try to do. But for me it is not the code that is interesting but to
find in what extent our programs are done in the same way. I have one fixed idea
that the same game parameters lead to the same program conception. Sometime I
feel that it is true but sometime no. Very often in all those "no" I miss also
some extra coincidence hidden by new phraseology. My question is the attempt to
have less problems with "no".

Cheers,
Leonid.



>Cheers,
>Heiner



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.