Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: The key to improving a program

Author: Tom Likens

Date: 11:14:44 05/26/04

Go up one level in this thread


On May 26, 2004 at 12:33:43, Tord Romstad wrote:

>On May 25, 2004 at 22:12:04, Tom Likens wrote:
>
>>On May 25, 2004 at 20:45:08, Tord Romstad wrote:
>>
>>>2. Write a function to compute a mirror image of the position on the board
>>>   (i.e. black and white sides interchanged).  Find a big file of EPD
>>>   positions, and let your engine parse the file and evaluate each position
>>>   and its mirror image.  This helps you find asymmetry bugs in the evaluation
>>>   function.  This test should be done almost every time you do a change in
>>>   the eval.  It is surprising how easy it is to introduce new asymmetry bugs.
>>
>>This is a great way to catch asymmetry bugs.  Don't forget that you can
>>mirror the board top-to-bottom *and* left-to-right.  If you carry this
>>out you will get three additional boards to compare against (four if you
>>count the original position).
>>
>>1. original position
>>2. T-2-B
>>3. L-2-R
>>4. T-2-B followed by L-2-R
>
>In my case, the evaluation function isn't left-to-right symmetric.  For
>instance, I have a penalty for a knight on c3/c6 blocking the c pawn in
>the opening, but no corresponding evaluation term for the king's knight.
>
>Tord

I bumped into this *exact* case when I first programmed this feature.
It made me evaluate *why* a knight blocking the c3/c6 pawn was bad
and I realized that it has to do with the position of the king and
expansion on the side opposite wing to the king.  So to make the
symmetry work I added an evaluation term for blocking the f3/f6 pawn
*if* the king had castled queenside (and a few other conditions), which
is what it would look like once the left-right mirroring occurred.

I think in the long run (if done properly) this makes the evaluation
function more consistent *and* stronger.

--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.