Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Crafty CCT6 notes

Author: Robert Hyatt

Date: 10:33:22 02/02/04

Go up one level in this thread


On February 02, 2004 at 13:12:35, José Carlos wrote:

>On February 02, 2004 at 11:24:28, Robert Hyatt wrote:
>
>>On February 02, 2004 at 11:02:53, José Carlos wrote:
>>
>>>>White helps, but crafty has this inate built-in idea of not "sitting".
>>>
>>>  Can you explain in simple words how you code that idea?
>>>
>>>  José C.
>>
>>Sure.  Basically a "cascading" evaluation where the most important feature is to
>>avoid blocked pawns.  If pawns can move, they can produce open lines.  Open
>>lines lead to active pieces, active pieces lead to king safety issues for the
>>opponent, and so forth.
>
>  IIRC, you do detect which pawns can safely move forward and which ones can't.
>I guess you use that to determine your "pawn mobility", because otherwise pawn
>blocked for white and black would be the same (except for rare cases of doubled
>& blocked pawns) and thus the score would be zero.

Note that this is not exactly reflexive.  IE I can have a pawn that is not
blocked even though you do not.  This is the concept of "potential levers" that
I added years ago to combat the "blockers" that play on ICC looking only for
draws against computers. :)

I also evaluate pure "rams" but that is a different concept, as a pawn ram can
obviously not move at all.

>
>>It also requires some "speculative" evaluation where you accept some risk
>>for some gain, rather than doing nothing.  Asymmetry also plays here or
>>else you are tempted to sit still.
>
>  This is most interesting to me. I've seen my program being happy with his
>position and starting moving a piece back and forth, changing basically nothing
>in the position and wasting time. Later, when it's forced to open the position
>due to the 50 move rule or some repetition, it has little time and falls in
>tactical problems.
>  So how do I know I'm doing nothing? Checking the position history (or move
>path) seems too expensive. I'd like to detect it in static eval but how?


One thing is to use the 50 move rule counter.  As it gets bigger, drag the score
toward a draw.  This prevents you from doing nothing, unless there is nothing
you can do.  IE it will encourage a pawn push to reset the counter, but you have
to make sure you are not locking things up worse by doing so..




>
>  Thanks for the explanation.
>
>  José C.



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.