Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Unmake move v copy the board

Author: Frank Schneider

Date: 23:27:56 01/24/99

Go up one level in this thread


On January 25, 1999 at 02:21:37, Frank Schneider wrote:

>On January 24, 1999 at 11:11:55, Hugh Cumper wrote:
>
>>This may be very simple matter to the old pros. When I first wrote a chess
>>program I created a stack of boards for lookahead and copied the current board
>>each time I wanted to look further ahead, discarding it again to go back up. I
>>suppose I did that because I started writing programs for games like Kalah where
>>the board is small and moves are relatively epensive to take back. Recently I
>>have seen programs the have one board and store unmake move information in
>>addition to move information so the move can be retracted. I am trying to think
>>which is more efficient but I can't decide. Has anyone worked this out
>>theoretically or practically?
>
>I think it depends on your program and the boardrepresentation. Gromit uses
>copy+update and >1KB is copied every move (which is maybe too much). When I
>decided to do it that way (on an Amiga) I only considered clockcycles, but

What I did on the Amiga was using self-modifying code:
a) When making a move I modified precomputed code to takeback the changes later.
   The precomputed code looked like
   move piece, from
   move piece, to
   ...
   and when doing a move the values for piece, from and to were inserted.
b) When undoing a move the modified code was executed and took back the changes.

Has anyone tried this on a PC or anywhere else????

Frank
>on a PC the low memory-bandwidth is the real problem. Since Gromits evaluation
>and searchheuristics use most of the processortime I never tried
>update+take back, because I guess it would give me less than 10% speedup,
>probably beeing slower than copy+update.
>
>There are some advantages of copy+update:
>- it is easy to program
>- it is easier to do some 'clever' things that would be difficult to take back
>- you can compare the current position with previous positions in the searchtree
>
>An alternative would use a mix of copied and static datastructures.
>
>Frank



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.