Simple fortress detection, engines fail

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

Moderator: Ras

Vinvin
Posts: 5333
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Simple fortress detection, engines fail

Post by Vinvin »

[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!.
(Intel 3.1 Ghz, 32 bits 2 cores.)
Long time taking by Houdini and Critter to reach next depth is a sign they become to "smell" something. But how much time to find g4! with multivariations off ?


3 best moves :

FEN: 8/8/8/5Bp1/7k/7P/4pPK1/8 b - - 0 1

Critter_1.4_32bit:
---------------------------------------------------------------------------
28/44 00:23 119.354.223 5.146.353 +1,07 e2-e1T Rg2-f3 Te1-e7 Ff5-g4 Te7-f7+ Rf3-e3 Tf7-a7 Re3-f3 Ta7-a2 Rf3-e3 Ta2-a4 Re3-f3 Ta4-a3+ Rf3-e4 Ta3-b3 Re4-d4 Tb3-b5 Rd4-e4 Tb5-b2 Re4-f3 Tb2-b3+ Rf3-e4 Tb3-a3 Re4-d4 Ta3-a5 Rd4-e4 Ta5-b5 Re4-d4 Tb5-b2 Rd4-e3 Tb2-b4 Re3-f3 Tb4-b8 Rf3-e3 Tb8-b2 Fg4-e6 Tb2-b4 Fe6-g4 Tb4-f4 Fg4-e6 Tf4-a4 Fe6-f5 Ta4-a3+ Re3-e4 Ta3-a2 f2-f3 Ta2-a4+ Re4-e5 Rh4-g3 Ff5-g4 Ta4-a3 Re5-e4 Ta3-a4+ Re4-f5 Ta4-a5+ Rf5-e4 Ta5-a4+
28/44 00:23 119.354.223 5.146.353 +6,98 g5-g4 Ff5xg4 e2-e1D Fg4-f3 Rh4-g5 Ff3-g4 Rg5-f4 Fg4-f3 De1-e6 Ff3-g4 De6-h6 Rg2-g1 Rf4-e4 Rg1-g2 Re4-d3 Rg2-g3 Dh6-f6 Fg4-f3 Rd3-d2 Ff3-g4 Df6-d6+ Rg3-f3 Rd2-e1 Rf3-e3 Dd6-d2+ Re3-f3 Dd2-c3+ Rf3-f4 Dc3-d2+ Rf4-f3
29/44 00:23 119.354.223 5.146.353 +7,09 e2-e1D Ff5-g4 De1-d2 Fg4-f3 Dd2-d7 Ff3-g4 Dd7-d5+ Fg4-f3 Dd5-d2 Ff3-g4 Dd2-d3 Fg4-f3 Dd3-c2 Ff3-g4 Dc2-e4+ Fg4-f3 De4-e5 Ff3-g4 De5-b2 Fg4-f3 Db2-c3 Ff3-g4 Dc3-c6+ Fg4-f3 Dc6-e6 Ff3-g4 De6-e5 Fg4-f3 De5-f5 Ff3-g4 Df5-c2 Fg4-f3 Dc2-a2 Ff3-g4 Da2-b3 Fg4-f3 Db3-b2 Ff3-g4 Db2-c2



Stockfish-222-32-ja:
---------------------------------------------------------------------------
56/69 04:40 867.064.049 3.088.912 +1,45 e2-e1T Rg2-f3 Te1-a1 Rf3-e2 Ta1-a3 Ff5-g4 Ta3-a7 Re2-e3 Ta7-f7 Re3-e2 Tf7-f6 Re2-e3 Tf6-a6 Re3-d3 Ta6-a5 Rd3-e3 Ta5-a6
57/69 04:40 867.064.049 3.088.912 +7,39 g5-g4 Ff5xg4 e2-e1D Fg4-f3 De1-e6 Ff3-g4 De6-g6 Rg2-h2 Dg6-e4 Rh2-g1 De4-b1+ Rg1-g2 Db1-c2 Rg2-g1 Dc2-b1+
57/69 04:40 867.064.049 3.088.912 +7,79 e2-e1D Ff5-g4 De1-e4+ Rg2-g1 De4-d5 Rg1-h2 Dd5-c6 Rh2-g1 Dc6-c2 Rg1-g2 Dc2-b3 Fg4-f3 Db3-e6 Ff3-g4 De6-e5 Fg4-f3 De5-b2 Ff3-g4 Db2-d2 Fg4-f3 Dd2-d4 Ff3-g4 Dd4-d3 Rg2-g1 Dd3-c3 Rg1-g2 Dc3-d4 Rg2-g1 Dd4-c5 Rg1-g2 Dc5-c2 Fg4-f3 Dc2-d3 Ff3-g4 Dd3-b1 Fg4-e2 Db1-b2 Fe2-g4

FEN: 8/8/8/5Bp1/7k/7P/4pPK1/8 b - - 0 1

Houdini_15_w32:
---------------------------------------------------------------------------
27/48 00:09 42.224.140 4.565.000 +0,66 e2-e1T Rg2-f3 Te1-e8 Ff5-d7 Te8-f8+ Rf3-e2 Tf8-b8 Fd7-g4 Tb8-b3 Fg4-e6 Tb3-c3 Fe6-g4 Tc3-a3 Re2-d2 Ta3-b3 Rd2-c2 Tb3-b4 Rc2-d3 Tb4-f4 Rd3-e3 Tf4-f7 Re3-e2 Tf7-a7 Re2-f3 Ta7-e7 Fg4-f5 Te7-e1 Ff5-d7 Te1-b1 Fd7-f5 Tb1-a1 Rf3-e4 Ta1-a2 f2-f3 Ta2-a4+ Re4-e5 Ta4-a5+ Re5-e4 Ta5-a3 Ff5-g4 Rh4-g3 Re4-f5 Ta3-a5+ Rf5-e4 Ta5-a4+ Re4-f5 Ta4-a5+ Rf5-e4
27/48 00:09 42.224.140 4.565.000 +5,32 g5-g4 Ff5xg4 e2-e1D Fg4-f3 Rh4-g5 Ff3-g4 Rg5-f4 Fg4-f3 De1-e6 Ff3-g4 De6-d5+ Rg2-g1 Dd5-c4 Rg1-g2 Dc4-c6+ Rg2-h2 Dc6-e4 Rh2-g1 De4-c2 Rg1-g2 Dc2-g6 Rg2-g1 Dg6-b1+ Rg1-g2 Db1-d3 Fg4-c8 Dd3-e4+ Rg2-g1 De4-e5 Fc8-g4 De5-d5 Rg1-h2 Dd5-d3 Rh2-g2 Dd3-g6 Rg2-g1
28/48 00:09 42.224.140 4.565.000 +5,92 e2-e1D Ff5-g4 De1-e4+ Fg4-f3 De4-d3 Ff3-g4 Dd3-c2 Fg4-f3 Dc2-g6 Ff3-g4 Dg6-d3 Fg4-f3 Dd3-f5 Ff3-g4 Df5-f4 Fg4-f3 Df4-d2 Ff3-g4 Dd2-d6 Fg4-f3 Dd6-h6 Ff3-g4 Dh6-b6 Fg4-f3 Db6-a7 Ff3-g4 Da7-e7 Fg4-f3 De7-d7 Ff3-g4 Dd7-d2 Fg4-f3 Dd2-c1 Ff3-g4 Dc1-b1 Fg4-f3 Db1-a1 Ff3-g4 Da1-e5 Fg4-f3 De5-c3 Ff3-g4 Dc3-d2 Fg4-f3
Arpad Rusz
Posts: 273
Joined: Sat Apr 17, 2010 2:34 pm
Location: Budapest

Re: Simple fortress detection, engines fail

Post by Arpad Rusz »

That position is from the following study:

V. Checkover (1954)
[d]1R6/8/8/5bp1/4p2k/8/B1p2PKP/8 w - - 0 1

Engines choose 1.Rh8+? instead of the correct 1.Rb1!
Arpad Rusz
Posts: 273
Joined: Sat Apr 17, 2010 2:34 pm
Location: Budapest

Re: Simple fortress detection, engines fail

Post by Arpad Rusz »

Another position which leads to a fortress:

[d]8/2p5/2Pp1k2/3Pp3/p3P3/5P1p/6p1/4K1B1 w - - 0 1

1.Kf2! (1.Kd1?, 1.Kd2?)
Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

Re: Simple fortress detection, engines fail

Post by Dirt »

Vinvin wrote:But how much time to find g4! with multivariations off ?
Houdini 1.5 takes just over a minute on an I5 750, using two cores.

Did you really only run Houdini for nine seconds, or am I misreading your post?
Dan Astrachan
Posts: 134
Joined: Fri May 28, 2010 11:07 am

Re: Simple fortress detection, engines fail

Post by Dan Astrachan »

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!.
(Intel 3.1 Ghz, 32 bits 2 cores.)
Long time taking by Houdini and Critter to reach next depth is a sign they become to "smell" something. But how much time to find g4! with multivariations off ?
On my quad-core system, Ivanhoe finds g4 in less than a minute :

Code: Select all

FEN: 8/8/8/5Bp1/7k/7P/4pPK1/8 b - - 0 1 

IvanHoe999946h:

  32	00:33	 345 725 665	10 508 000	+4,93	e2-e1Q Bf5-g4 Qe1-a5 Bg4-f3 Qa5-c3 Bf3-g4 Qc3-e1 Bg4-f3 Qe1-d2 Bf3-g4 Qd2-d3 Bg4-f3 Qd3-d7 Bf3-g4 Qd7-d5+ Bg4-f3 Qd5-e6 Bf3-g4 Qe6-b3 Bg4-f3 Qb3-a3 Bf3-g4 Qa3-a2 Bg4-d1 Qa2-c4 Bd1-g4 Qc4-c6+ Bg4-f3 Qc6-c1 Bf3-g4 Qc1-c2 Bg4-f3 Qc2-b2 Bf3-g4 Qb2-e5 Bg4-f3 Qe5-d6 Bf3-g4 Qd6-a3 Bg4-f3 Qa3-a1 Bf3-g4 Qa1-a8+ Bg4-f3 Qa8-g8 Bf3-g4 Qg8-d5+
  33	00:36	 384 532 828	10 592 000	+4,93	e2-e1Q Bf5-g4 Qe1-a5 Bg4-f3 Qa5-c3 Bf3-g4 Qc3-e1 Bg4-f3 Qe1-d2 Bf3-g4 Qd2-f4 Bg4-f3 Qf4-e5 Bf3-g4 Qe5-b2 Bg4-f3 Qb2-c1 Bf3-g4 Qc1-c2 Bg4-f3 Qc2-b2 Bf3-g4 Qb2-d2 Bg4-f3 Qd2-b2
  33+	00:47	 494 542 927	10 466 000	+5,01	g5-g4
  33+	01:06	 686 738 798	10 451 000	+5,66	g5-g4
  33	01:18	 831 034 921	10 626 000	+5,81	g5-g4 Bf5xg4 e2-e1Q Bg4-f5 Kh4-h5 Bf5-g4+ Kh5-g5 Bg4-f3 Kg5-f4 Bf3-g4 Kf4-e4 Bg4-c8 Ke4-d4 Bc8-g4 Qe1-e5 Bg4-f3 Kd4-c3 Bf3-g4 Kc3-d2 Kg2-f3 Kd2-e1 h3-h4 Qe5-e2+ Kf3-f4 Qe2xf2+ Kf4-g5 Qf2-e3+ Kg5-f6 Qe3-f4+ Bg4-f5 Qf4xh4+ Kf6-f7 Qh4-f4 Kf7-e6 Ke1-f2 Bf5-g6 Kf2-g3 Bg6-f5 Kg3-f3 Bf5-g6 Qf4-g4+ Ke6-f7 Qg4-c4+ Kf7-f8 Qc4-c8+ Kf8-g7 Qc8-c7+ Bg6-f7 Qc7-c3+ Kg7-g8
  33	01:23	 877 763 078	10 604 000	+5,81	g5-g4 Bf5xg4 e2-e1Q Bg4-f5 Kh4-h5 Bf5-g4+ Kh5-g5 Bg4-f3 Kg5-f4 Bf3-g4 Kf4-e4 Bg4-c8 Ke4-d4 Bc8-g4 Qe1-e5 Bg4-f3 Kd4-c3 Bf3-g4 Kc3-d2 Kg2-f3 Kd2-e1 h3-h4 Qe5-e2+ Kf3-f4 Qe2xf2+ Kf4-g5 Qf2-e3+ Kg5-f6 Qe3-f4+ Bg4-f5 Qf4xh4+ Kf6-f7 Qh4-f4 Kf7-e6 Ke1-f2 Bf5-g6 Kf2-g3 Bg6-f5 Kg3-f3 Bf5-g6 Qf4-g4+ Ke6-f7 Qg4-c4+ Kf7-f8 Qc4-c8+ Kf8-g7 Qc8-c7+ Bg6-f7 Qc7-c3+ Kg7-g8
  34+	01:38	1 056 119 442	10 759 000	+5,89	g5-g4 Bf5xg4 e2-e1Q Bg4-f5 Kh4-h5 Bf5-g4+ Kh5-g5 Bg4-f3 Kg5-f4 Bf3-g4 Kf4-e4 Bg4-c8 Ke4-d4 Bc8-g4 Qe1-e5 Bg4-f3 Kd4-c3 Bf3-g4 Kc3-d2 Kg2-f3 Kd2-e1 h3-h4 Qe5-e2+ Kf3-f4 Qe2xf2+ Kf4-g5 Qf2-e3+ Kg5-f6 Qe3-f4+ Bg4-f5 Qf4xh4+ Kf6-f7 Qh4-f4 Kf7-e6 Ke1-f2 Bf5-g6 Kf2-g3 Bg6-f5 Kg3-f3 Bf5-g6 Qf4-g4+ Ke6-f7 Qg4-c4+ Kf7-f8 Qc4-c8+ Kf8-g7 Qc8-c7+ Bg6-f7 Qc7-c3+ Kg7-g8
Vinvin
Posts: 5333
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Re: Simple fortress detection, engines fail

Post by Vinvin »

Dirt wrote:
Vinvin wrote:But how much time to find g4! with multivariations off ?
Houdini 1.5 takes just over a minute on an I5 750, using two cores.

Did you really only run Houdini for nine seconds, or am I misreading your post?
I ran it for more than 1 minute but got no new lines ...

Did you get this result at first run ? SMP timing results can vary a lot ...
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Simple fortress detection, engines fail

Post by Houdini »

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
User avatar
Daniel Mehrmann
Posts: 858
Joined: Wed Mar 08, 2006 9:24 pm
Location: Germany
Full name: Daniel Mehrmann

Re: Simple fortress detection: Solution

Post by Daniel Mehrmann »

I found together with Sune Fisher a simple idea how to fix fortress positions. I added it some years ago in Homer, but never released such a version.

The basic idea:

If we enter a position, we'll do a search and store the result in a hashtable.
We store the used number of plys to reach this position in the tree as well. Every time we enter this position again, we take a look to the hashtable and compare the used plys. If we used more then as before we reduce the result or just return a draw value.

Of course you need a lot of code exceptions and verifications before you can do this, but basicly it works very well. I rthink it's the best way to detect if we have no "progress" in the game.

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

Re: Simple fortress detection, engines fail

Post by lech »

Houdini wrote:If you say "fortress" I reply "FiftyMoveDistance=12" and get the following result with Houdini 2.0c:
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?
Some parameters "are useful" :wink: if someone know solutions.
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: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.