Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: My algorithm for KBN vs. K

Author: David Dahlem

Date: 15:27:55 09/05/04

Go up one level in this thread


On September 05, 2004 at 17:54:25, Alessandro Scotti wrote:

>First, thanks to all who sent suggestions for playing the KBNK endgame: they
>have been very helpful! Today I could finally do some tests and the following
>has been working quite well so far:
>
>        // bk=black king square, wk=white king square, wn=white knight square
>
>        int res = materialScore;
>
>        res += 5000; // Bonus for won position
>
>        // note: evaluation scaffolded for light squared bishop
>        int distance_from_bishop_corner = imin(
>            KingDistance[bk][H1],
>            KingDistance[bk][A8] );
>
>        int b_distance_from_center = imin(
>            KingDistance[bk][D4],
>            KingDistance[bk][E4],
>            KingDistance[bk][D5],
>            KingDistance[bk][E5] );
>
>        int w_distance_from_center = imin(
>            KingDistance[wk][D4],
>            KingDistance[wk][E4],
>            KingDistance[wk][D5],
>            KingDistance[wk][E5] );
>
>        int distance_of_opposition = Distance[bk][wk]; // Taxicab distance
>
>        int distance_from_knight = KingDistance[bk][wn];
>
>        res -= 50 * distance_from_bishop_corner;
>
>        res -=  5 * distance_of_opposition;
>
>        res -=  5 * distance_from_knight;
>
>        // centralization: make sure white king is closer to the
>        // center than the black king
>        if( b_distance_from_center <= w_distance_from_center )
>            res -= 100;
>
>In the test position I posted earlier (black king centralized and white king in
>the corner), I was getting very long sequences, sometimes long enough to make
>the position a draw by the 50 moves rule. When I added the last "centralization"
>factor, I got the mate in 30-35 moves on average.
>I must also add that pruning doesn't work well in this kind of position for me,
>so I had to add a guard or two. Without them, I have often seen my engine
>playing moves that do not make any real progress towards the mate.

Does this help your engine when it plays the losing side of KBNK endgames? I
think it's equally important to avoid the mate if possible. :-)

Regards
Dave



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.