Simple fortress detection, engines fail

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

lech
Posts: 1175
Joined: Sun Feb 14, 2010 10:02 pm

Re: Simple fortress detection, engines fail

Post by lech »

Houdini wrote:
lech wrote:Try the fortress a few moves earlier.
[d]1R6/8/8/5bp1/4p2k/8/B1p2PKP/8 w - - 0 1
1.Rb1!
Can this trick help you now?
Ez pz.
Here's the analysis with the Houdini dev version, FiftyMoveDistance=12:

Code: Select all

1R6/8/8/5bp1/4p2k/8/B1p2PKP/8 w - -

Engine: Houdini DEV 3T (2048 MB)
by Robert Houdart

18/43  0:00   -3.64    1.Rh8+ Kg4 2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 
                       5.Bxf5 Qa3 6.Rf7 Qf3+ 7.Kg1 e3 
                       8.Re7+ Kf6 9.Rxe3 Qd1+ 10.Kg2 Kxf5 
                       11.Rf3+ Kg6 12.Re3 Qd6 13.Re1 Kf6 
                       14.Re3 (5.722.316) 6061 
...
20/70  0:16   -1.02    1.Rh8+ Kg4 2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 
                       5.Bxf5 Qa3 6.Rf7 Qf3+ 7.Kg1 e3 
                       8.Re7+ Kd6 9.Rxe3 Qxf5 10.Kg2 Qd5+ 
                       11.Rf3 Kc6 12.Kg3 Kb5 13.Re3 Qh1 
                       14.Rb3+ (113.508.989) 7017 
...
27/70  0:52   -0.97    1.Rh8+ Kg4 2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 
                       5.Bxf5 Qa3 6.Rf7 Qf3+ 7.Kg1 e3 
                       8.Re7+ Kd6 9.Rxe3 Qxf5 10.Kg2 Qd5+ 
                       11.Rf3 Kc6 12.Kg3 Kb5 13.Kg2 Qb7 
                       14.Kg3 (376.493.891) 7163 

28/70  1:11   -1.04--  1.Rh8+ Kg4 (517.544.774) 7243 

28/70  1:27   -0.91++  1.Rb1 (647.654.052) 7388 

28/70  1:33   -0.78++  1.Rb1 (690.981.636) 7369 

25/70  1:36   -0.49++  1.Rb1 (707.458.341) 7358 

25/70  1:42   -0.10    1.Rb1 cxb1Q 2.Bxb1 e3 3.Bxf5 e2 
                       4.Bg4 e1Q 5.h3 Qc3 6.Kh2 Qb2 7.Kg2 Qe5 
                       8.Kf1 Qd5 9.Ke2 Qg8 10.Kf1 Qg6 
                       11.Kg2 Qd3 12.Kg1 Qd2 13.Kg2 Qd5+ 
                       14.Bf3 (746.221.822) 7308 

26/70  1:46   -0.10    1.Rb1 cxb1Q 2.Bxb1 e3 3.Bxf5 e2 
                       4.Bg4 e1Q 5.h3 Qc3 6.Kh2 Qb2 7.Kg2 Qe5 
                       8.Kf1 Qd5 9.Ke2 Qg8 10.Kf1 Qg6 
                       11.Kg2 Qd3 12.Kg1 Qa6 13.Kg2 Qa8+ 
                       14.Bf3 (773.109.929) 7281 
Rb1 is a draw, but I'm not sure that Rh8+ is actually losing.
And it is the problem that Rh8+ gets (thanks to FiftyMoveDistance=12)draw too. This parametr can return a doubt analysis.
But it is a fact that can be used by chess composers. :D
Maybe, I can't be friendly, but let me be useful.
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Simple fortress detection, engines fail

Post by Houdini »

lech wrote:And it is the problem that Rh8+ gets (thanks to FiftyMoveDistance=12)draw too. This parametr can return a doubt analysis.
But it is a fact that can be used by chess composers. :D
It is only a "problem" if the assessment would be incorrect.
Running without FiftyMoveDistance Houdini doesn't find a way to make progress after 1.Rh8+ Kg4:

Code: Select all

10/33  0:00   -3.72    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kg3 Qc5 
                       12.Kg2 Qc6+ 13.Kg3 Qc2 14.Kg2 (97.498) 3482 
...
20/47  0:01   -3.83    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Re3 Qa2 14.Kg2 Qa8+ 
                       15.Kh2 (7.753.232) 6581 
...
30/66  1:21   -3.82    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf5 
                       15.Rg3 (631.372.452) 7745 

31/66  2:04   -3.82    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (966.174.444) 7758 

32/73  4:41   -3.99--  2.h3+ Kf4 (2.236.367.913) 7936 

32/73  5:27   -3.82    2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (2.594.140.559) 7917 

33/73  6:29   -3.82    2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (3.073.625.678) 7894 

34/73  9:41   -3.82    2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (4.587.526.719) 7893 
This suggests that Rh8+ could be a draw, and that the "FiftyMoveDistance=12" setting picks this up correctly.
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: Simple fortress detection, engines fail

Post by zullil »

Vinvin wrote:[d] 8/8/8/5Bp1/7k/7P/4pPK1/8 b - - 0 1
No top 3 free engine finds the winning 1...g4! ; 1...e1? is draw after 2. Bg4!.
Critter finds g4 in a standard search:

Code: Select all

Critter v1.6a 64-bit, by Richard Vida
hardware POPCNT enabled
setoption name Hash value 4096
setboard 8/8/8/5Bp1/7k/7P/4pPK1/8 b - - 0 1
info string Opening book: "book.cbk" - 57853 entries [native]
info string GTB Init OK (5 piece set)
info string Using 8 thread(s), 4096 MB hash LP=off

    A   B   C   D   E   F   G   H
  +---+---+---+---+---+---+---+---+
8 |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+
7 |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+
5 |   |   |   |   |   | B | p |   |
  +---+---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   | k |
  +---+---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   | P |
  +---+---+---+---+---+---+---+---+
2 |   |   |   |   | p | P | K |   |
  +---+---+---+---+---+---+---+---+
1 |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+
FEN: 8/8/8/5Bp1/7k/7P/4pPK1/8 b - - 0 1
Hashkey: e3383396d2a19d94 mgpsq: -0.04
Pawnkey: 855918b65233e02d egpsq: +0.02
Mtrlkey: 7fe6986e

go infinite
 2/ 4  00:00      187  187000  +6.58 e1=Q Bd3 Qe5
 3/ 4  00:00      893  223250  +6.82 e1=Q Bg4 Qd2 Bf3
 4/ 6  00:00     1039  207800  +6.74 e1=Q Bg4 Qd2 Bf3 Qb2
 5/ 6  00:00     1459  243166  +6.81 e1=Q Bg4 Qd2 Bf3 Qd3 Bg4 Qe4+ Bf3
 6/ 8  00:00     2027  289571  +6.81 e1=Q Bg4 Qd2 Bf3 Qd3 Bg4 Qe4+ Bf3
 7/10  00:00     3749  374900  +6.84 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qb2 Bf3
 8/11  00:00     5841  449307  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qd2 Be6 Qd3 Bg4 Qc2 Bf3
 9/12  00:00     8618  574533  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qd2 Be6 Qd3 Bg4 Qc2 Bf3 Qc3
10/14  00:00    14123  641954  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qd2 Be6 Qd3 Bg4 Qc2 Bf3 Qc3
11/16  00:00    24791  885392  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qd5+ Bf3 Qe6 Bg4 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qd2 Be6 Qd3 Bg4
12/16  00:00    35644  913948  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qd5+ Bf3 Qe6 Bg4 Qb3 Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qd2 Be6 Qd3 Bg4
13/18  00:00    62143   1018K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qe4+ Bf3
14/19  00:00    95052   1105K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qc6+ Bf3 Qe6 Bg4 Qb3 Bf3 Qe6
15/20  00:00   149046   1211K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qc6+ Bf3 Qe6 Bg4 Qb3 Bf3 Qe6
16/22  00:00   229655   1319K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qc6+ Bf3 Qe6 Bg4 Qb3 Bf3 Qe6
17/22  00:00   382409   1416K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qe6 Bg4
18/24  00:00   587744   1526K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qe6 Bg4
19/25  00:00    1009K   1773K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qe6 Bg4
20/26  00:00    1189K   1844K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qe6 Bg4
21/28  00:00    1733K   2001K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qd2 Bg4 Qb2 Bf3 Qb1 Bg4 Qb3 Bf3 Qe6 Bg4 Qb3
22/29  00:01    2656K   2259K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qa2 Bg4 Qb2 Bf3 Qb1 Bg4 Qa2 Bf3 Qd2 Bg4 Qb2
23/32  00:01    3817K   2534K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qb1 Bg4 Qb3
24/34  00:02    6877K   3200K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qc2 Bg4 Qb2 Bf3 Qb1 Bg4 Qb3
25/35  00:02   11444K   4025K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qc2 Bg4 Qc6+ Bf3 Qe6 Bg4
26/37  00:03   20471K   5212K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qc2 Bg4 Qb2 Bf3 Qb1 Bg4 Qb3
27/40  00:05   30012K   5903K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qc2 Bg4 Qb2 Bf3 Qb1 Bg4 Qb3
28/40  00:07   47130K   6669K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qc2 Bg4 Qb2 Bf3 Qb1 Bg4 Qa2 Bf3 Qe6 Bg4 Qb3 Bf3 Qc2
29/40  00:10   76907K   7207K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qc2 Bg4 Qb2 Bf3 Qb1 Bg4 Qb3 Bf3 Qc2
30/42  00:14  106063K   7253K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qc2 Bg4 Qb1 Bf3 Qb6 Bg4 Qc6+ Bf3 Qe6 Bg4
31/48  00:21  159821K   7447K  +6.82 e1=Q Bg4 Qb4 Bf3 Qc3 Bg4 Qe5 Bd1 Qe4+ Bf3 Qd3 Bg4 Qc2 Bf3 Qb2 Bg4 Qc3 Bf3 Qf6 Be2 Qe6 Bg4 Qb3 Bf3 Qc2 Bg4 Qb2 Bf3 Qb1 Bg4 Qd3 Bf3 Qb3 Bg4 Qb6 Bf3 Qf6
32/54  00:38  311671K   8173K  +6.86 e1=Q Bg4 Qa5 Bf3 g4 Bxg4 Kg5 Kg3 Qc3+ Kg2 Kf4 Kg1 Qc1+ Kg2 Qc6+ Kh2 Ke4 Kg2 Kd3+ Kg3 Kd2 Kf4 Qf6+ Bf5 Ke1 f3 Kf2 Ke4 Qe7+ Kf4 Qe3+ Kg4 Qxf3+ Kg5 Qe3+ Kf6 Qf4 Ke6 Ke3 Bg4 Ke4 Kd7 Ke5 Kc6 Qb4 Kc7 Qc5+ Kb7 Qd4 Kc6 Qd6+ Kb5 Kf4 Kc4 Qe5 Kb3 Qc5 Ka4 Qb6 Ka3 Ke3 h4 Kf4
32/54+ 00:49  403608K   8184K  +7.25 g4 Bxg4 e1=Q Bf3 Kg5 Bg4 Kf4 Bf3 Qd2 Bg4 Ke4 Kg1 Qd5 Kh2 Qc6 Kg2 Kd3+ Kg3 Kd2 Kf4 Qf6+ Bf5 Ke1 f3 Kf2 Ke4 Qe7+ Kd5 Kxf3 Bg4+ Ke3 Kc6 Kf4 Kb5 Qb7+ Kc5 Ke4 Kc4 Qb6 Kc3 Qb5 Kc2 Qc5+ Kb3 Kf4 Ka4 Qb6 Ka3 Ke3 h4 Kf4
32/70  01:09  575845K   8275K  +7.72 g4 Bxg4 e1=Q Bf3 Kg5 Bg4 Kf4 Bf3 Qd2 Bg4 Ke4 Kg1 Qd5 Kh2 Qf7 Kg2 Kd3 Kg3 Kd2 Bf3 Ke1 Be4 Qxf2+ Kg4 Qd4 Kf5 Kf2 Kf4 Qe3+ Ke5 Qxh3 Bd5 Qc3+ Kf5 Qd4 Ke6 Ke3 Bc6 Qg7 Kd5 Qg5+ Kc4 Qg4+ Kb5 Qf5+ Kc4 Qc2+ Kd5 Qe4+ Kd6 Qd4+ Bd5 Qf6+ Kd7 Qg6 Kc7 Qg3+ Kd7 Kd4 Be6 Qg5 Bh3 Qe5 Kc6 Qc5+ Kb7 Qb4+ Kc6 Qc3+
33/70+ 01:28  744733K   8432K  +8.20 g4 Bxg4 e1=Q Bf3 Kg5 Bg4 Kf4 Bf3 Qd2 Bg4 Ke4 Kg1 Qd5 Kh2 Qf7 Kg2 Kd3 Kg3 Kd2 Bf3 Ke1 Be4 Qxf2+ Kg4 Qd4 Kf5 Kf2 Kf4 Qe3+ Ke5 Qxh3 Kd4 Qe3+ Kd5 Qc3 Bf5 Qf3+ Ke6 Ke3 Bh7 Kd4 Bf5 Qd5+ Kf6 Qe5+ Kg6 Ke3 Kg5 Qe7+ Kh6 Qf6+ Bg6 Qd6 Kg5 Qf4+ Kh5 Kd4 Bh7 Qh2+ Kg6 Qh3 Kg7 Qh4 Bg6 Ke5 Bh7 Qf6+ Kg8 Qh6 Bb1 Qe6+ Kg7 Qf6+ Kh7 Qc6 Bg6 Qd7+ Kg8 Kf6
33/70+ 01:46  904890K   8506K  +8.92 g4 Bxg4 e1=Q Bf3 Kg5 Bg4 Kf4 Bf3 Qd2 Bg4 Ke4 Kg1 Qd5 Kh2 Qf7 Kg2 Kd3 Kg3 Kd2 Bf3 Ke1 Be4 Qxf2+ Kg4 Qd4 Kf5 Kf2 Kf4 Qe3+ Ke5 Qxh3 Kd4 Qe3+ Kd5 Qc3 Bf5 Qf3+ Ke6 Ke3 Bh7 Kd4 Bf5 Qd5+ Kf6 Qe5+ Kg6 Ke3 Kg5 Qe7+ Kh6 Qf6+ Bg6 Kf4 Kh7 Qe7+ Kg8 Qd7 Kf8 Qd5 Kg7 Qg5 Kf7 Qh6 Kf6 Qh8+ Ke6 Qe5+ Kf7 Qc5 Kf6 Qg5+ Kf7
33/70+ 02:08    1086M   8464K +10.00 g4 Bxg4 e1=Q Bf3 Kg5 Bg4 Kf4 Bf3 Qd2 Bg4 Ke4 Kg1 Qd5 Kh2 Qf7 Kg2 Kd3 Kg3 Kd2 Bf3 Ke1 Be4 Qxf2+ Kg4 Qd4 Kf5 Kf2 Kf4 Qe3+ Ke5 Qxh3 Bc6 Qg4 Bd5 Ke3 Bc6 Qg5+ Kd6 Kd4 Bb7 Qf6+ Kc7 Qe5+ Kc6 Qf5 Kb6 Qe6+ Ka5 Qe7 Kb6 Qc5+ Ka6 Qc4+ Kb6 Qc5+
33/70  04:19    2282M   8797K +11.57 g4 Bxg4 e1=Q Bf3 Kg5 Bg4 Kf4 Bf3 Qd2 Bg4 Ke4 Bh5 Kd3 Kg3 Qc3 Bg4 Qe5+ Kf3 Qf6+ Kg3 Qf7 Bf3 Qc7+ Kg4 Qe5 Bg2 Qe6+ Kf4 Qf6+ Kg4 Qxf2 Bf3 Ke3 Bd5 Qf4+ Kh5 Qe5+ Kg6 Qxd5 Kg7 Kf4 h4 Kg4 Kf8 Kxh4 Ke7 Kg4 Ke8 Kg3 Kf8 Kf2 Ke7 Qc5+ Kd7 Qd4+ Kc6 Qb4 Kc7 Qb1 Kd7 Qb7+ Kd6 Ke3 Ke6 Qb6+ Ke5 Qc6 Kf5 Qd6 Kg5 Ke4 Kh4 Qf6+ Kg4 Ke3 Kh5 Qd6 Kg5
Arpad Rusz
Posts: 273
Joined: Sat Apr 17, 2010 2:34 pm
Location: Budapest

Re: Simple fortress detection, engines fail

Post by Arpad Rusz »

[d]1R6/8/8/5bp1/4p2k/8/B1p2PKP/8 w - - 0 1

It seems like the study has a double solution:
1. Rh8+ Kg4 2. Rf8 c1=Q 3. h3+ Kf4 4. Be6 Ke5 5. Bxf5 Qa3 6. Rf7 Qf3+ 7. Kg1 e3 8. Re7+ Kf4 9. Rxe3 Qd1+ 10. Kg2 Kxf5 11. Rg3 = (fortress)
lucasart
Posts: 3243
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Simple fortress detection, engines fail

Post by lucasart »

Houdini wrote:If you say "fortress" I reply "FiftyMoveDistance=12" and get the following result with Houdini 2.0c
I completely agree with Robert Houdart. The point is that any "normal search" will choose what is, from a materialistic point of view, "best play": e1=Q Bg4, leading to this position
[d]8/8/8/6p1/6Bk/7P/5PK1/4q3 b - -
now you can search all you want, but unless the horizon of your search reaches the 50 move draws, it's unlikely to be any useful. So you basically need something in your search that detects, that if a certain number of reversible moves has been played, and no "progress" can be made, then we're likely to have a 50 move draw ahead.
I can't really see any other way for an engine to solve it, unless the eval itself knows that this position is a draw. But implementing such a knowledge in the eval is likely to hurt more than it helps: think of how complicated the conditions would have to be, and how many other positions like that would be missed, as well as how many positions will be incorrectly flagged as a fortress. Also the cost in terms of speed (in nodes/sec), because most positions aren't like that, yet a lot of time will be wasted trying to apply the fortress detection code.
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Simple fortress detection, engines fail

Post by Houdini »

Arpad Rusz wrote:[d]1R6/8/8/5bp1/4p2k/8/B1p2PKP/8 w - - 0 1
It seems like the study has a double solution:
1. Rh8+ Kg4 2. Rf8 c1=Q 3. h3+ Kf4 4. Be6 Ke5 5. Bxf5 Qa3 6. Rf7 Qf3+ 7. Kg1 e3 8. Re7+ Kf4 9. Rxe3 Qd1+ 10. Kg2 Kxf5 11. Rg3 = (fortress)
Amazing, isn't it?
It adds a nice (a)symmetry with 2 slightly different fortresses: with the white bishop the black king needs to be locked in at h4, with the white rook the black king is free to go.
The study is incorrect, but remains very nice :).

Robert
lech
Posts: 1175
Joined: Sun Feb 14, 2010 10:02 pm

Re: Simple fortress detection, engines fail

Post by lech »

Houdini wrote:
lech wrote:And it is the problem that Rh8+ gets (thanks to FiftyMoveDistance=12)draw too. This parametr can return a doubt analysis.
But it is a fact that can be used by chess composers. :D
It is only a "problem" if the assessment would be incorrect.
Running without FiftyMoveDistance Houdini doesn't find a way to make progress after 1.Rh8+ Kg4:

Code: Select all

10/33  0:00   -3.72    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kg3 Qc5 
                       12.Kg2 Qc6+ 13.Kg3 Qc2 14.Kg2 (97.498) 3482 
...
20/47  0:01   -3.83    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Re3 Qa2 14.Kg2 Qa8+ 
                       15.Kh2 (7.753.232) 6581 
...
30/66  1:21   -3.82    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf5 
                       15.Rg3 (631.372.452) 7745 

31/66  2:04   -3.82    2.h3+ Kf4 3.Rf8 c1Q 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (966.174.444) 7758 

32/73  4:41   -3.99--  2.h3+ Kf4 (2.236.367.913) 7936 

32/73  5:27   -3.82    2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (2.594.140.559) 7917 

33/73  6:29   -3.82    2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (3.073.625.678) 7894 

34/73  9:41   -3.82    2.Rf8 c1Q 3.h3+ Kf4 4.Be6 Ke5 5.Bxf5 Qa3 
                       6.Rf7 Qf3+ 7.Kg1 e3 8.Re7+ Kf6 
                       9.Rxe3 Qxf5 10.Kg2 Qd5+ 11.Kh2 Kf5 
                       12.Rg3 Kf4 13.Kg1 Ke4 14.Rg4+ Kf3 
                       15.Rg3+ (4.587.526.719) 7893 
This suggests that Rh8+ could be a draw, and that the "FiftyMoveDistance=12" setting picks this up correctly.
Robert it may only mean that this study is incorrect.
It means nothing for the question. There are lots, LOTS of endgame positions which needs more than 12 moves without captures or pawn moves to win.
I hope that you are able to say all: Use this parameter always in each analysis. :(
If not, are you such an expert to know that in this position appear a fortress? :wink:
Maybe, I can't be friendly, but let me be useful.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Simple fortress detection, engines fail

Post by bob »

Houdini wrote:If you say "fortress" I reply "FiftyMoveDistance=12" and get the following result with Houdini 2.0c:

Code: Select all

8/8/8/5Bp1/7k/7P/4pPK1/8 b - -
Engine: Houdini 2.0c x64 (2048 MB)

12/18  0:00   -5.67    1...e1Q 2.Bg4 Qe4+ 3.Bf3 Qd3 4.Bg4 Qd2 
                       5.Bf3 Qc2 6.Bg4 Qb2 7.Bd1 (20.648) 439 

13/22  0:00   -5.43--  1...e1Q 2.Bg4 (43.264) 865 

13/27  0:00   -4.96--  1...e1Q 2.Bg4 (216.016) 2734 

13/27  0:00   -4.83    1...e1Q 2.Bg4 Qe5 3.Kf3 Qh2 4.Ke3 Qh1 
                       5.Ke2 Qc6 6.Kf1 Qc7 7.Kg1 Qc4 8.Bd7 g4 
                       9.hxg4 Kg5 10.Bf5 (392.572) 3738 

14/27  0:00   -4.63--  1...e1Q 2.Bg4 (441.663) 3874 

14/27  0:00   -4.95    1...g4 2.Bxg4 e1Q 3.Bf5 Kg5 4.Bg4 Qc3 
                       5.Bf3 Kf4 6.Bg4 Qd2 7.Kf1 Qd3+ 8.Kg2 Qc3 
                       9.Kf1 (654.710) 4453 

15/27  0:00   -4.95    1...g4 2.Bxg4 e1Q 3.Bf3 Kg5 4.Bg4 Qe5 
                       5.Kf3 Qc3+ 6.Kg2 Qd3 7.Bf3 Kf4 8.Bg4 Qc3 
                       9.Kf1 (706.705) 4588 

16/27  0:00   -4.75--  1...g4 2.Bxg4 (869.958) 4915 

16/29  0:00   -4.34--  1...g4 2.Bxg4 (1.464.484) 5834 

16/37  0:00   -3.12--  1...g4 2.Bxg4 (3.435.292) 7650 

16/38  0:01   -4.49    1...g4 2.Bxg4 e1Q 3.Bf3 Kg5 4.Bg4 Kf4 
                       5.Bf3 Qe7 6.Bg4 Ke5 7.Kg3 Kd4 8.Kf3 Kc3 
                       9.Bf5 Kd2 10.Kg4 Ke1 11.f4 Kf2 
                       12.Bg6 Qe2+ 13.Kg5 Kg3 (8.266.212) 8184 

17/38  0:01   -4.52    1...g4 2.Bxg4 e1Q 3.Bf3 Kg5 4.Bg4 Kf4 
                       5.Bf3 Qe7 6.Bg4 Ke5 7.Kg3 Kd4 8.Kf3 Kc3 
                       9.Bf5 Kd2 10.Kg4 Ke1 11.f4 Kf2 
                       12.Bg6 Qe2+ 13.Kh4 Kg2 14.f5 Qe4+ (8.330.990) 8175
The obvious question, why not run with that set to 12 all the time? Tuning a parameter to a specific position is not exactly solving the position as one would generally do. Setting the counter to 12 would be quite harmful overall, which makes it useless here as well.
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Simple fortress detection, engines fail

Post by Houdini »

bob wrote:The obvious question, why not run with that set to 12 all the time? Tuning a parameter to a specific position is not exactly solving the position as one would generally do. Setting the counter to 12 would be quite harmful overall, which makes it useless here as well.
It is indeed an obvious question, and I have considered it before. Your assessment that it would be "quite harmful overall" is unproven, it will depend on the implementation details. I might end up setting a default FiftyMoveDistance of 12 or 15 in Houdini 3.

In this thread the parameter has been key to demonstrate that a classical study has a very nice dual solution, that is quite the opposite of "useless"... then again, it would be against your nature to say anything positive about Houdini ;).
Uri Blass
Posts: 11244
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Simple fortress detection, engines fail

Post by Uri Blass »

Houdini wrote:
bob wrote:The obvious question, why not run with that set to 12 all the time? Tuning a parameter to a specific position is not exactly solving the position as one would generally do. Setting the counter to 12 would be quite harmful overall, which makes it useless here as well.
It is indeed an obvious question, and I have considered it before. Your assessment that it would be "quite harmful overall" is unproven, it will depend on the implementation details. I might end up setting a default FiftyMoveDistance of 12 or 15 in Houdini 3.

In this thread the parameter has been key to demonstrate that a classical study has a very nice dual solution, that is quite the opposite of "useless"... then again, it would be against your nature to say anything positive about Houdini ;).
There are many positions that you need more than 15 moves to win without captures or pawn moves like KBB vs K and the main question is if houdini is not going to have trouble to win them without tablebases with FiftyMoveDistance=15 or if it is going to evaluate correctly a position that you can win by forcing a KBB vs K in case of deep search that goes 30 plies after the first KBB vs K position.

You can solve the problem of KBB vs K by static evaluation of these positions without searching after them but there are clearly cases of positions that you need more than 15 moves to win with no conversion also with more pieces on the board and I am afraid that houdini is not going to be more useful without fifty=15

Note that it is obvious that a simple implementation is going to be counter productive and I know that even some programs with fifty=100 blundered by allowing mate in 1 in the last ply of the fifty move rule(and certainly detecting mate before checking the fifty move rule is not going to help much here if you use fifty<100 because the program is going to simply not going to see the mate because it is going to stop the search one ply before the mate).

Maybe you think to start to count fifty only from the root position to avoid the problem of stupid blunders
but in this case hash information that you have from the previous
search may be useless.