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.