Computer Chess Club Archives


Search

Terms

Messages

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

Author: Zach Wegner

Date: 20:40:29 11/16/02

Go up one level in this thread


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.



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.