Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Lazy eval enhanced

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.