Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: ETC problem

Author: Robert Hyatt

Date: 07:21:57 11/01/97

Go up one level in this thread


On November 01, 1997 at 08:35:04, Stormbringer wrote:

>I tried to implement ETC unsuccesfully few time
>  - either it decreases node count but generates a wrong PV
>   either it seems to do nothing
>I wonder if anyone could give me some useful hints.
>Here is a pseudo-code of my ETC implementation :
>ETC(alpha,beta,depth,side)
>  for each possible move m
>    make_move(m)
>    hashtable_lookup(hashcode,alpha,beta,depth-1,-side)
>    unmake_move(m)
>    if (hash_node == EXACT_SCORE OR LOWER_BOUND) &&
>       (node is max) && (hash_value >= beta) return hash_value
>    if (hash_node == EXACT_SCORE OR UPPER_BOUND) &&
>       (node is min) && (hash_value <= alpha) return hash_value

Make a small change:

      if (hash_node == EXACT_SCORE) return hash_value
      if (hash_node == LOWER_BOUND ...)
      if (hash_node == UPPER_BOUND ...)

main point is if you get exact score, it doesn't *have* to lie outside
alpha/beta to be used.

Other than that you are doing exactly what I tried about a year ago.  I
am going to try this again, but without using MakeMove() which is a
little
slow in my code.  I'm going to write a new one that only produces a new
hash signature, which is really all that is needed.

I saw little improvement in node count, but a noticable slowdown.  One
problem
is this makes me generate all moves up front, where I currently try the
hash
move before generating anything, and I try captures and then killers
before generating any non-captures.

I am going to try it again, however...



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.