Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: evaluation tuning tricks

Author: Tom Likens

Date: 07:42:43 03/17/04

Go up one level in this thread


On March 17, 2004 at 06:49:38, Volker Böhm wrote:

>On March 17, 2004 at 04:58:06, Peter Alloysius wrote:
>
>>what are tricks for evaluation tuning so that it could
>>search less nodes?
>>
>>i noted that my engine use exactly same move ordering scheme as
>>crafty but it still search much more nodes.
>>my engine also use adaptive null move, and futility pruning.
>
>Make sure that you use the same extension rules than crafty if you whant to
>compare.
>
>>
>>so i think the problem is on evaluation tuning.
>>i heard that tuning evaluation function can reduces node searched,
>>so what's the trick?
>>
>>i will appreciate any answer. thanks
>>sorry with my poor english.
>
>All you can do is to Build a stable eval. I.e. an Eval that don´t "jump" if you
>make the next (non-hit) move.
>
>Identify your biggest eval factors and find a way to "smell" changes on them.
>Trivial Examples that will explain it:
>
>Mate -> king attack -> king security -> superior pieces at kingside
>Promotion -> passed pawn (advanced/not advanced, blocked/non-blocked) -> hidden
>passed pawn -> superior advanced pawns -> advanced pawns
>Material  -> pieces that have to flee/pinned pieces -> defendet pieces/attacked
>pieces
>...
>
>I have a "reference-game" that I evaluate with fixed depth on every change of
>eval. If ever the amout of nodes searched raises I have to check the changes.
>Mostly a bad change of eval leads to  increase of nodes searched.
>
>Greetings Volker

I agree with Volker.  Creating an evaluation function that doesn't contain large
discontinuities (i.e. "jumps") is important.  As my program has matured I've
moved
further and further away from scaling evaluation terms depending on wheter
the position is an opening, middlegame or endgame position.  Using hard
demarcation lines or game phases can cause strange search behavior when
the game transistions from one phase to another.

Instead, almost all my evaluation terms are scaled based on the amount of
material in the position (and note, more often than not, the amount of *enemy*
material).

Once your evaluation function is self-consistent, your biggest reductions in the
search tree (IMHO) come from changes to the search (move ordering, pruning,
reductions, and oddly enough, extensions).  Alpha-beta is the fastest, by far,
when it looks at the correct moves first.

regards,
--tom



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.