Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to evaluate KQ vs KR?

Author: Sune Fischer

Date: 17:04:17 05/05/04

Go up one level in this thread


On May 05, 2004 at 19:39:48, Dieter Buerssner wrote:

>>Why do you use special code for this endgame?
>
>Out of curiosity. Also, because Tord specifically asked for this. My normal code
>got a draw only from that maximum mate position in game in one minute (although
>it won your position). Game in 2 minutes, it won.

It's tougher, needed 45 moves in selfplay at 5 seconds without TBs.

Then I gave the defender TBs and it couldn't do it 5 seconds or 10 seconds.
Managed to do it in 1 minute, though still 10 moves away from optimal:

[Event "WinBoard"]
[Site "Local Event"]
[Result "1-0"]
[Date "05/06/04"]
[White "Frenzee 156.4"]
[Black "Frenzee 156.4TBs"]
[WhiteElo "2400"]
[BlackElo "2400"]
[PlyCount "89"]
[FEN "8/8/8/8/2r5/8/2k5/K6Q w - - 0 1"]
[TimeControl "0 1 0"]

{hash 58,ponder 0,egtbs 0,threads 1
[moves,time,score,depth/seldepth,mnps,tbhits/tbprobes,pv]}
1.Qg2+ Kc3 	{00:00.81,   4.91,   8/18,  0.92,  0/0,  1.Qg2+ Kd3 2.Kb2 }
2.Qg7+ Kc2 	{00:00.96,   4.92,   9/19,  1.11,  0/0,  2.Qg7+ }
3.Qg6+ Kc3 	{00:00.96,   4.92,   9/23,  1.12,  0/0,  3.Qg6+ }
4.Kb1 Kd4 	{00:00.94,   4.98,  10/21,  1.15,  0/0,  4.Kb1 Kd4 5.Qd6+ Ke3 6.Kb2
Ke4 7.Qe6+ Kd4 8.Qd7+ Ke5 9.Qb5+ }
5.Qd6+ Kc3 	{00:00.92,   5.06,  10/20,  1.16,  0/0,  5.Qd6+ Ke3 6.Kb2 Ke4 7.Kb3
Rd4 8.Qe6+ Kf4 9.Kc2 Re4 10.Qd6+ Kg4 11.Kd3 }
6.Kc1 Rd4 	{00:01.11,   5.07,  10/22,  1.18,  0/0,  6.Kc1 Rd4 7.Qf6 Kc4 8.Kc2
Kd5 9.Kc3 Re4 10.Kd3 }
7.Qf6 Kd3 	{00:01.07,   5.12,  10/21,  1.13,  0/0,  7.Qf6 Kc4 8.Kc2 Kd5 9.Qf5+
Kd6 10.Kb3 Kc6 }
8.Qf3+ Kc4 	{00:01.05,   5.13,  10/21,  1.15,  0/0,  8.Qf3+ Kc4 9.Kc2 Kc5
10.Qf8+ Kd5 11.Qf6 }
9.Kc2 Kc5 	{00:01.03,   5.13,  11/21,  1.14,  0/0,  9.Kc2 Kc5 10.Qf8+ Kd5 11.Qf6
Ke4 12.Kc3 Rd3+ 13.Kc4 Re3 14.Qg5 Re2 15.Qg4+ Ke3 }
10.Qf5+ Rd5 	{00:01.02,   5.14,  10/21,  1.14,  0/0,  10.Qf5+ Rd5 11.Qf8+ Kc4
12.Qf7 Kc5 13.Kc3 Kd6 }
11.Qf8+ Kc4 	{00:01.11,   5.14,  10/22,  1.14,  0/0,  11.Qf8+ Kc4 12.Qf4+ }
12.Qf1+ Kc5 	{00:01.08,   5.15,  10/22,  1.20,  0/0,  12.Qf1+ Kc5 13.Kc3 Re5
14.Qf8+ Kd5 15.Qa8+ Ke6 16.Kd4 Rg5 17.Qe8+ Kf6 18.Qd8+ Kf5 19.Kd3 }
13.Kc3 Re5 	{00:01.07,   5.20,  10/21,  1.15,  0/0,  13.Kc3 Re5 14.Qf8+ Kd5
15.Qa8+ Ke6 16.Kd4 Rg5 17.Qe8+ Kf6 18.Qd7 Re5 19.Qd6+ Re6 }
14.Qf8+ Kd5 	{00:01.03,   5.20,   9/21,  1.12,  0/0,  14.Qf8+ Kd5 15.Qa8+ Ke6
16.Kd4 Rg5 17.Qe8+ Kf6 18.Qf8+ Ke6 19.Qh6+ Kf5 20.Qh3+ }
15.Qa8+ Ke6 	{00:00.98,   5.24,   9/21,  1.15,  0/0,  15.Qa8+ Ke6 16.Kd4 Rg5
17.Qe8+ Kf6 18.Qf8+ Ke6 19.Qh6+ Kf5 20.Kd5 Kg4+ 21.Ke4 Rc5 22.Ke3 }
16.Kd4 Rg5 	{00:01.13,   5.24,  10/23,  1.13,  0/0,  16.Kd4 Rg5 17.Qe8+ Kf6
18.Qd8+ Kf5 19.Qd7+ Kf4 }
17.Qe8+ Kf6 	{00:01.09,   5.24,   9/21,  1.10,  0/0,  17.Qe8+ Kf6 18.Qd8+ Kf5
19.Qd7+ Kf6 20.Qd6+ }
18.Qd8+ Kf5 	{00:01.06,   5.32,   9/23,  1.12,  0/0,  18.Qd8+ Kf5 19.Qd7+ Kf6
20.Qd6+ Kf5 }
19.Qd7+ Kf6 	{00:01.03,   5.32,   9/21,  1.11,  0/0,  19.Qd7+ Kf6 20.Qd6+ Kf5
21.Qe5+ Kg6 22.Qe6+ Kg7 23.Ke4 Rg2 24.Qe7+ }
20.Qd6+ Kf5 	{00:01.00,   5.34,  10/22,  1.12,  0/0,  20.Qd6+ Kf5 21.Qe5+ Kg6
22.Qe6+ Kg7 23.Ke4 Rh5 }
21.Qe5+ Kg4 	{00:01.11,   5.34,   9/20,  1.12,  0/0,  21.Qe5+ Kg6 22.Qe6+ Kg7
23.Ke4 Rh5 }
22.Qe6+ Kh5 	{00:01.08,   5.40,  10/21,  1.15,  0/0,  22.Qe6+ Kh4 23.Ke3 Ra5
24.Qe7+ Kh5 25.Qe8+ Kg4 26.Qd7+ Kh5 27.Kf4 Kg6 28.Qc6+ Kh5 29.Qe8+ }
23.Ke4 Rg4+ 	{00:01.03,   5.41,   9/21,  1.16,  0/0,  23.Ke4 Rg6 24.Qe8 }
24.Kf5 Rg5+ 	{00:01.00,   5.62,  10/23,  1.16,  0/0,  24.Kf5 Rg5+ 25.Kf4 Rg7
26.Qf5+ Kh6 }
25.Kf4 Rg7 	{00:00.97,   5.62,  11/25,  1.16,  0/0,  25.Kf4 Rg7 26.Qf5+ Kh6 }
26.Qf5+ Kh6 	{00:00.94,   5.57,   9/24,  1.19,  0/0,  26.Qf5+ Kh6 27.Qf6+ }
27.Qf6+ Kh7 	{00:00.92,   5.62,   9/23,  1.17,  0/0,  27.Qf6+ Kh7 28.Kf5 Kg8
29.Qd6 Kh7 }
28.Kf5 Kg8 	{00:00.89,   5.62,  10/19,  1.15,  0/0,  28.Kf5 Kg8 29.Qd6 Kh7
30.Qd5 }
29.Qd4 Kf8 	{00:00.86,   5.64,  10/21,  1.14,  0/0,  29.Qd4 }
30.Qc5+ Kf7 	{00:00.84,   5.63,   9/23,  1.16,  0/0,  30.Qc5+ Kg8 31.Qd5+ Kh7
32.Kf6 Kh8 33.Qa8+ Kh7 34.Qe8 Rc7 35.Qg6+ Kh8 36.Qg3 Rc6+ 37.Kf5 }
31.Qc4+ Ke7 	{00:00.81,   5.68,   9/21,  1.14,  0/0,  31.Qc4+ Ke7 32.Qh4+ Ke8
33.Qh8+ Kf7 34.Qd8 }
32.Qh4+ Ke8 	{00:00.80,   5.68,   9/21,  1.17,  0/0,  32.Qh4+ Ke8 33.Qh8+ Kf7
34.Qd8 }
33.Qh8+ Kf7 	{00:00.77,   9.82,  10/23,  1.14,  0/0,  33.Qh8+ Kf7 34.Qd8 Rh7
35.Qd7+ Kg8 36.Qe8+ Kg7 37.Kg5 Rh1 38.Qd7+ Kf8 39.Qc8+ Ke7 40.Qb7+ Kd6 41.Qxh1
Ke7 }
34.Qd8 Rg1 	{00:00.79,     #501,  10/28,  1.14,  0/0,  34.Qd8 }
35.Qd5+ Ke8 	{00:00.19,     #501,   8/20,  1.08,  0/0,  35.Qd5+ Ke7 }
36.Qa8+ Kd7 	{00:00.99,     #501,   9/22,  1.14,  0/0,  36.Qa8+ Ke7 }
37.Qa7+ Kc6 	{00:00.28,     #501,   8/20,  1.06,  0/0,  37.Qa7+ Kd6 }
38.Qxg1 Kb5 	{00:00.27,     #501,   8/19,  1.04,  0/0,  38.Qxg1 Kd7 }
39.Qd4 Kc6 	{00:00.92,     #501,   9/18,  1.20,  0/0,  39.Qd4 }
40.Qc4+ Kb6 	{00:00.88,      #6,  10/22,  1.32,  0/0,  40.Qc4+ Kb6 41.Ke5 Ka5
42.Kd6 Kb6 43.Qb4+ Ka7 44.Kc6 Ka8 }
41.Ke5 Ka5 	{00:00.73,      #5,  10/24,  1.34,  0/0,  41.Ke5 Ka5 42.Kd6 Kb6
43.Qb4+ Ka7 44.Kc6 }
42.Kd6 Kb6 	{00:00.83,      #4,  11/20,  1.29,  0/0,  42.Kd6 Kb6 43.Qb4+ Ka7
44.Kc6 }
43.Qb4+ Ka6 	{00:00.18,      #3,  10/ 0,  1.28,  0/0,  43.Qb4+ Ka7 44.Kc6 }
44.Kc6 Ka7 	{00:00.00,      #2,   8/ 0,  0.44,  0/0,  44.Kc6 Ka7 }
45.Qb7++ {White mates} 1-0

>>[FEN "8/4kr2/8/8/8/2Q5/2K5/8 w - - 0 1"]
>
>This is a bit easier, than the position I used. Out of more curiosity, I changed
>the formula again (just from my feeling).
>
>  score = 600 + 5*DISTANCE(kl,r) - 20*EDGE_DIST(kl)
>          - 10*CORNER_DIST(kl) - 15*DISTANCE(kl,kw);
>  if (EDGE_DIST(kw) < 2) /* Keep winning K away from the edge */
>     score += 8 * (EDGE_DIST(kw)-2);
>  if (CORNER_DIST(kw) < 2) /* Keep winning K away from the corner */
>     score += 8 * (CORNER_DIST(kw)-2);
>
>With this, a fixed search depth of 6 (+ normal extensions, also using normal
>null move R=2 as long as both pieces are on the board) was enough to win the
>maximum mate position I gave in an earlier post against TBs. The previous
>formula needed a search depth of 8. But it could also be noise, what I saw, and
>with other positions, other results will occure.

I don't use nullmove in pawnless positions, not sure if it matters. I guess it
only fails-high if you actually lose a piece.

>I won't doubt, that your general scoring of pawnless endgames is just as good
>(mine was not).

If it works in 99% of the cases then that's a good start.
The remaining problems are not urgent, perhaps I can leave them to TBs entirely
and claim it's a waste of time for a programmer to fiddle with :)

Actually there are positions where the code doesn't work, e.g. KRKN.
I think the right plan is to isolate the knight and capture it by hunting it to
a corner. I wonder how many engines has that knowledge? :)

-S.
>Regards,
>Dieter



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.