Computer Chess Club Archives


Search

Terms

Messages

Subject: Thats not incremental

Author: Severi Salminen

Date: 01:45:02 10/29/02

Go up one level in this thread


>In incremental move generation I understand that we have different phases of
>move generation viz GEN_HASH_MOVE, GEN_KILLER_MOVE, GEN_CAP etc
>My question is, suppose we generate the lone hash move in the GEN_HASH_MOVE
>phase and suppose (unfortunately) it did'nt result in a cutoff so we have to
>generate more moves, say we are in GEN_CAP phase, do we test each move whether
>it has already been tried in GEN_HASH_MOVE and GEN_KILLER_MOVE phase OR do we
>simply generate all the moves without worrying whether the hash move (or killer
>moves) gets tried twice.

First of all: I think the above is not traditionally called incremental move
generation. Incremental move generation means (if I'm not mistaken here) that we
update the legal moves list only when necessary between plies - we don't
generate them every ply. So in opening position we generate all moves for black
and white. White then moves e4. This affects then e4 pawn (of course) and king,
queen, g-knight and light bishop. Other pieces (including black) can make same
moves as before e4. So maybe the above should be called generation of moves in
phases or something.

Secondly: what do you think is faster: searching a branch of maybe hundreds of
thousands of nodes (usually hash move generates a big sub-tree), or going
through an array of about 40 elements? The latter of course. So I think that
also in your engine you definitely should _not_ search any moves twice.

Severi



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.