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.