Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Shredder 6 "knowledge" question

Author: Christophe Drieu

Date: 09:50:54 03/19/02

Go up one level in this thread


On March 19, 2002 at 08:51:46, Jonas Cohonas wrote:

>If you crank up the "knowledge" parameter in Shredder 6 i have noticed that it
>overevaluates the given position by a mile and therefore plays relativly weak.
>Can anyone explain how this works, howcome the more knowledge the weaker play
>from Shredder 6? (100 is the default setting, i am talking anything above that)
>does this mean that if you turn this setting up to max (150 IIRC) that Shredder
>6 needs longer time to make good use of more knowledge?
>The last post about the "perfect" program made me think of this, maybe there is
>a comparison.
>
>Regards
>Jonas

Rebel have a knowledge parameter too, and Ed explain on www.rebel.nl how this
works:

 [Chess Knowledge = 200] Chess Knowledge above 100 will result in more accurate
positional play but a lower search depth. Chess Knowledge below 100 will result
in less accurate positional play but a higher search depth. This function needs
a detailed (and quite technical) explanation:

The heart of a (any) chess program is its evaluation function (EVAL). In there
all chess knowledge is present. The most important ones are already discussed
above (King Safety, Mobility, Pawn Structure, Passed Pawns etc). Above these
major items EVAL contains over 200 specific (position oriented) chess knowledge
cases of all kind. To name a few: Bishop of opposite colors, bad (or good)
bishops, piece development in the opening, castling, rook endings, pawn endings
and and and... EVAL is the soul of a (any) chess program and will reflect the
playing style the programmer has (had) in mind.

EVAL in REBEL takes a lot of processor time even for todays fast computers.
EVAL's size is over 120 Kb (pure assembler code) containing over 30,000
instructions which is very big for a chess program. Calling EVAL for every
position in the tree-search is very expensive and will slow down the search
tremendously, in REBEL's case a slow down factor of 7 to 8 (nodes per second) is
not unusual.

To handle this chess programmers invented LAZY EVAL in all kind of sorts.
LAZY-EVAL is a smart algorithm that only picks the main important parts of EVAL
belonging to the (current position) and then skips the rest of EVAL. This is of
course a very dangerous approach as often LAZY-EVAL is not 100% right and will
return a score that isn't 100% accurate which (sometimes) in the end may result
in a lesser quality move.

On the other hand Rebel's LAZY-EVAL algorithm will speed-up the search
tremendously and allows REBEL to look 2-3 plies deeper than without LAZY-EVAL
which in the end is by far is superior in terms of chess strength.

With the option [Chess Knowledge = 200] you can tune REBEL's LAZY-EVAL. The
higher you set its value the more accurate REBEL will play but the search depth
will decrease. If you set Chess Knowledge to its maximum [Chess Knowledge = 500]
you actually see REBEL's EVAL in its full glory as LAZY-EVAL is hardly active
anymore. However REBEL'S nodes per second (NPS) will drop typically with a
factor of 7-8. On a PII-333 REBEL searches about 100,000 positions a second.
Using [Chess Knowledge = 500] REBEL's NPS will drop to 12,000-15,000.

More technical stuff: all of the above is true for current and older INTEL
processors. However times are changing, chips are equiped with larger and faster
cache memory. On the new AMD-K6-III the cache runs at full processor clock
speed. INTEL processors cache memory is just running on 100 or 66 Mhz. The
result is that on AMD K6-III using the maximum [Chess Knowledge = 500] REBEL
will run 2-2½ times faster than on INTEL.

All of this makes it very difficult to tune Chess Knowledge for its best setting
because it is very dependant on the processor you have in your PC. This month
AMD released the new K7 processor which again doubled the cache memory and REBEL
will profit a lot from that. INTEL surely will answer. The bottom line is that
one day the ideal setting will be [Chess Knowledge = 500] and you can use
REBEL's EVAL in its full glory.

3 examples are justified to show the effects of [Chess Knowledge = 200] which
slows down REBEL's search not too much (typically 20-40% depending on your
processor). In the above position REBEL will find the winning move Rxa1! one ply
sooner.

 [Chess Knowledge = 200] Chess Knowledge above 100 will result in more accurate
positional play but a lower search depth. Chess Knowledge below 100 will result
in less accurate positional play but a higher search depth.

In this position REBEL will find the winning move Nxc6! one ply sooner.





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.