Computer Chess Club Archives


Search

Terms

Messages

Subject: Back moves and TB: answer to Anthony Bailey

Author: Guido

Date: 14:33:01 10/04/99


About the possibility of using back moves for a faster generation of endings
tablebases, Anthony Bailey on September 19, 1999 wrote:

[snip]
"
I'm interested to know whether ones that work by "unmoving" pieces back from
evaluated positions rather than repeatedly moving them forwards from unevaluated
positions have been given attention.

(I would assume so; given that the average number of ply required to reduce a
position is L it would seem to reduce the number of times you have to calculate
the legal moves (or "unmoves") in any one position from L to 2. I suspect this
is all old ground, but I'm uncertain as to where the best place is to go to
catch up; if there are any references available on-line, I'd love to know about
them.)
"

After reading this message, I decided to follow the hint, but I found that
saving  in cpu time is almost insignificant: depending on the ending, it amounts
to some % if applied to the first cycle, when the program is looking for losses
in 0 moves and stalemates for both the players.

Applying the same procedure to all the cycles, cpu time increases!!!
IMO the best solutions consists in applying this procedure only to the first 2
cycles, with a saving not greater than 5-6 % in the best cases (but I have to
try more).

The reason of it depends on the fact that the program, every time it finds a
loss during the nth cycle, calculates the back moves to set  victory in n+1
moves, but, with the increase of the cycle number, spends a lot of time in
finding positions already solved.

In my program introduction of back moves in the usual scheme for TB generation
is a very easy job, because nothing has to be changed: _only_when_a_loss is
found, it is sufficient to make a call to a function that calculates back moves
and set the _victory_in_n+1_ moves in the corresponding bytes. In the successive
cycle the program will skip automatically the calculated positions. I introduce
a parameter in my command string to choose if back moves must be used or not,
and, in the first case, for how many cycles this feature must be on.

I imagine that there are better ideas than mine for using back moves. IMO there
are no possibilities to use back moves in order to generate losing positions
that must be calculated with forward moves.

Best regards
Guido






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.