Author: Gian-Carlo Pascutto
Date: 03:50:42 07/15/05
Go up one level in this thread
On July 15, 2005 at 06:33:26, Alvaro Jose Povoa Cardoso wrote: >Hi, actually this is not lazy eval but rather a complement to it. >Suppose we structure our eval function in the way of having the fastest >computing terms near the top of the function and the most time expensive to >compute at the end of the function. >Let's say that at the middle we try to bail out sooner in order to avoid those >costly terms. >We do this by comparing the current score with the alpha and beta bounds: >(score is the acumulated eval terms to this point) > > temp_score = (wtm) ? score : -score; > > if (temp_score <= alpha) > return (alpha); > if (temp_score >= beta) > return (beta); > >or maybe return the score itself: > > temp_score = (wtm) ? score : -score; > > if (temp_score <= alpha) > return (temp_score); > if (temp_score >= beta) > return (temp_score); > >My question is: Is this a correct thing to do? >If so, is it free of any dangers? It's completely wrong. There's no guarantee that because the score is now below alpha that any subsequent evaluation won't change that. That's why one uses margins. Also note that since alpha == beta + 1 (almost always), you didn't do anything but throw out all evaluation after that check! -- GCP
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.