Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How Many Clock Cycles to Generate One Legal Move?

Author: Bob Durrett

Date: 05:32:54 11/17/02

Go up one level in this thread


On November 16, 2002 at 23:40:29, Zach Wegner wrote:

>On November 16, 2002 at 22:00:27, Bob Durrett wrote:
>
>>
>>I was thinking it might be *fun* to create a machine which does nothing more
>>than create legal move sequences from some preset legal chess position.  These
>>sequences might be dumped into a large part of RAM for later copy to a hard disk
>>or printout.
>>
>>The key idea I'm toying with is to represent a chess position by a listing of
>>legal moves.  Whenever a new move is made [by the person (or thing) playing
>>against the machine, or by the machine if it's playing against itself,] then the
>>machine would do nothing more than modify that listing (plus copy the move
>>representation to a temporary storage place in RAM). The new listing of legal
>>moves would then represent the new position.  The key idea is to represent a
>>position by a listing of legal moves.  When a move is made, there is a "from"
>>square and a "to" square.  Only consequences of changes made on these two
>>squares would have to be considered to modify the legal move list.
>>
>>Then, to make it more interesting, a really fast random number generator would
>>be used to select one of the resulting legal moves.  If the machine were playing
>>against itself, the sequences of moves should be generated very quickly.  How
>>quickly?
>>
>>In the beginning, I am only interested in the time it would take to modify that
>>listing.  The machine could play both sides, removing the need for
>>time-consuming input/output.  After generating a legal move sequence ending in
>>mate, it would then start working on the next legal move sequence.  After a
>>million or so moves were made, then the time required could be divided by the
>>number of moves.  That resulting time per move that I'm asking about.  Rather
>>than worry about the fact that some computers are faster than others, maybe the
>>best bet would be to express it as number of clock cycles per move.  A modern
>>high-end processor should be assumed.
>>
>>Each sequence would be what two "really dumb" chessplayers would produce if they
>>knew how to produce legal moves but knew NOTHING at all else about chess.
>>
>>P.S.  Is there a better way?
>>
>>Bob D.
>
>This would be entirely inefficient, and it would take off most of the abilities
>of the engine. Evaluating, for instance, would be practically impossible without
>making a piece array. The hashtable would not be possible, for different
>positions would be much longer move lists, even >100 moves. Then fen positions
>would need to have a proof game constructed for it. Fantasy positions, e.g. ones
>with more than 32 pieces, couldnt be represented. Also most modern engines are
>bitboard-based, which means that more than one legal move is generated at once.
>And sequences of moves made by the first legal move on the list would almost
>always be repetition draws. Playing a random move could take thousands of moves
>to mate or draw. My machine is playing a game against itself by playing random
>moves, and it currently has played over 13000 moves. So finding a list from
>every position could take a very, very long time.

Thank you very much for the commentary.  As I get more into the chess engine
thesis I'm looking at, and the chess engines book I ordered from Amazon.com, I
will become knowledgable enough, hopefully, to understand what you said.

I will save this until I am ready to understand it.  Right now, I don't know
enough to appreciate the points you have made.

Thanks again,

Bob D.



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.