Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: chain of responsibility

Author: Robert Hyatt

Date: 07:02:29 05/02/00

Go up one level in this thread


On May 01, 2000 at 04:08:04, Bruce Moreland wrote:

>On April 29, 2000 at 09:47:23, Robert Hyatt wrote:
>
>>On April 28, 2000 at 10:51:01, Dave Gomboc wrote:
>>
>>>On April 27, 2000 at 19:06:52, Bruce Moreland wrote:
>>>
>>>>Maybe I used the word "hierarchy" wrong.  What I meant is a series of handlers,
>>>>the first ones having priority over the latter ones.
>>>
>>>I think you mean "chain of responsibility" (GoF)?  Some time ago I thought about
>>>this issue and decided that this was the way to handle it, and I'm glad to read
>>>that 1) somebody actually does it! and 2) it works! :-)
>>>
>>>Dave
>>
>>
>>There is one small problem here, but it is very serious.  You can't really
>>afford to turn a module on or off.  Doing so causes discontinuities in the
>>evaluation and can cause really bizarre moves to be played.  The right way
>>is to use _all_ evaluation modules, but scale them based on the guidance
>>term somehow...  but the scaling has to be a continuous function.  IE in
>>Crafty, passed pawns are evaluated from move 1 on.  But they are not weighed
>>very big until material starts to come off. Initially king safety is weighed
>>very big, but tapers off as material comes off (particularly queens).
>>
>>When you just slam something on or off, then right around the place where
>>you make this decision, you have a discontinuity that appears in the form of
>>an "edge effect".  If the thing you are about to turn on is bad for you, you
>>keep playing moves that prevent it from being turned on, and possibly wreck
>>your position.  If the thing you are about to turn off is good for you, you
>>keep playing moves that prevent it from being turned off.
>
>The funniest case I saw was when SOS preferred to play KBN vs KP, rather than
>KBN vs K, apparently because its special case KBN vs K handler returned scores
>lower than the normal eval of KBN vs KP.
>
>It is very difficult to get this stuff right.  If you tell your program that KRB
>vs KR is a draw, it will prefer to play KRB vs KRPP, and might find a way to
>lose.
>
>bruce
>



this happened on ICC the other night.  Fortunately I had the KRPP vs KRN
position.  In that position, I _know_ I will either win or draw, while my
opponent apparently thought he was winning.  And he missed the one golden
opportunity to trade the knight for my two pawns.  And went down in flames
a good while later...

I believe that a program _must_ know some basic things about endings, including
KRX vs KR where X=b/n.  But many don't.  Of course, it would be nice to
generalize to KRXP vs KRP, but that is harder.



>>Berliner first mentioned this about 20 years ago.  It continues to be a well-
>>known problem, even though many step into it until they realize what they have
>>done, and stop to clean their shoe.
>>
>>:)
>>
>>Humans don't evaluate like that.  I _always_ am considering king safety, pawn
>>structure, passed pawns, even if I am weighing one more than the others.



This page took 0.01 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.