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.