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.