Computer Chess Club Archives




Subject: Re: Very easy mate to solve. Correction!!!

Author: leonid

Date: 11:47:47 12/31/01

Go up one level in this thread

Hi, Heiner!

It is to this message that I am now writing for the 3 time. I hope that this one
will work.

>>By thinking about your remark about defender side, I found that I did one
>>mistake. To be sure that this time I not lost next "small" nuance, I went
>>actually back to my mate solver code to read it before speaking. There I found
>>what I wanted to find and even why I was confused about "active" and "passive"
>>moves. But before every thing else, exact mate solver move construction.
>>Each move, composed from attacking and defending ply, contain identical sorting
>>for both sides. The same move generator and two move sorting for two plys. Both
>>sides try as hard as they can reach mate.
>>In attacking side it is only move that lead to mate that is solved as the next
>>"best move".
>I.e. you save a move that does solve this current position.

Yes, "black side" save just one move after another and the last previous move
saved in this way is "best move". It is best because it stopped "white side"
from making mate with its white (offensive) move.

White (offensive side) don't save each move but only move that lead to mate.

>>On defending side it is move that lead to mate, or last move of search that is
>>saved as "best move".
>>Previous mistake from my side was in saying that it is only move that lead to
>>mate that is saved for defending side.
>Again, you save that move, that "solves" this current position for the defender.
>A defender "solves" a position if he avoids its own forced mate.


>Some (minor) questions remain:
>- meaning of "active" and "passive" move:  I suspect an "active" move is one
>  that checks the opposing king.  Correct?
>- Storing saved "best moves" for each ply:  do you index from top (i.e. with
>  the depth you have searched into the tree, already), or do you index from
>  bottom (i.e. by the remaining depth to go/search)?

Active move - move that give check to the enemy side, or contain material
advantage. Inside of active moves, checking moves goes first.

Sorting of moves, where active goes first and passive later, is done in both
parts of my program (mate solver and chess playing part) but only in chess
playing part each ply is devided between active and passive part. For each part
of each ply (active and passive) two variables are saved (chess playing part).
Reason for splitting chess playing ply in active and passive, but not in mate
solver, is that mate solver is not material oriented logic.

Devision in chess playing part between active and passive is done because of two

1) All active moves are the most promissing and goes first. Biggest part of them
contain material advantage and deposition of those moves demand calculation of
this advantage. For passive is already no need for calculating material gain.

2) Since passive moves goes only after active, it is very often even not needed
service. Only when search will reach passive part then best passive move will be
used. Then special sorting for passive moves will be done by using previously
found "best passive".

>Intuitively I would index by remaining depth, but the other way may make sense,

It is exactly like you say. Each "best move" represent globale variable that is
used just for special ply, or depth. For instance, "best active for ply 8" will
be something like "active8" but for ply 7, "active7" and so like.

My counting of plys start with initial ply of search that bring biggest number.
If search goes 10 plys deep, it start with ply 9 and goes down to ply zero.

Cheers and I do wish that this time my computer will play no trick to me.

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.