Horizon limit.

Horizon limit.

Analyzing the positions with MScarface, during the tests, I have understood that the program, often finds the solution only from a least value of analysis depth. This is creditable to the horizon effect.

This position has been sending me by a user:
1k6/3p4/1B6/4Pp1p/1p5R/1p4p1/pP3n2/K6n w - - 0 1
                                                         1.Rxh1! =
1.Rxh1! Nxh1 2.e6 dxe6 3.Bc7+!
The Bishop cannot be captured (otherwise is stalemate) and it succeeds in stopping the pawns promotion and the mate from black knight.
Later 3. ..Kb7 4.Bxg3 Kc6 you always move the Bishop from e1 to f2 key and from f2 to e1 key. If the Black plays h4, you capture the h4 pawn and then return in e1.
MScarface, to default parameters, doesn't find the solution:
Log: y      Analisys: f
Depth: 7     Multipv:3
Delta=100
n.Moves LOW= 7
Depth LOW=7  Multipv LOW= 3
Delta LOW= 150

    moves white:

      1.  Bb6 c7  n. games 39  n.win=1 n.draw=9 n.lose=29  p.max=14%
      1.  Bb6 e3  n. games 46  n.win=0 n.draw=6 n.lose=40  p.max=6%
      1.  Rh4 c4  n. games 51  n.win=1 n.draw=5 n.lose=45  p.max=6%
      1.  Rh4:h5  n. games 56  n.win=0 n.draw=6 n.lose=50  p.max=5%
      1.  Bb6 d8  n. games 61  n.win=1 n.draw=3 n.lose=57  p.max=4%
      1.  Rh4:b4  n. games 56  n.win=1 n.draw=2 n.lose=53  p.max=3%
      1.  Bb6 d4  n. games 47  n.win=0 n.draw=3 n.lose=44  p.max=3%
      1.  Rh4:h1  n. games 56  n.win=0 n.draw=2 n.lose=54  p.max=1%
      1.  Bb6 c5  n. games 41  n.win=0 n.draw=1 n.lose=40  p.max=1%
      1.  Rh4 f4  n. games 52  n.win=0 n.draw=2 n.lose=50  p.max=1%
      1.   e5 e6  n. games 45  n.win=0 n.draw=0 n.lose=45  p.max=0%
      1.  Bb6:f2  n. games 68  n.win=0 n.draw=1 n.lose=67  p.max=0%
      1.  Bb6 a5  n. games 52  n.win=0 n.draw=1 n.lose=51  p.max=0%
      1.  Bb6 a7  n. games 51  n.win=0 n.draw=0 n.lose=51  p.max=0%
      1.  Rh4 h2  n. games 66  n.win=0 n.draw=0 n.lose=66  p.max=0%
      1.  Rh4 h3  n. games 50  n.win=0 n.draw=0 n.lose=50  p.max=0%
      1.  Rh4 d4  n. games 65  n.win=0 n.draw=0 n.lose=65  p.max=0%
      1.  Rh4 e4  n. games 59  n.win=0 n.draw=0 n.lose=59  p.max=0%
      1.  Rh4 g4  n. games 44  n.win=0 n.draw=0 n.lose=44  p.max=0%

  n.total games=1005   time: 0h 7' 1,203''
To find the move that draw, we have to lift the analysis depth to 13, least:

Log: y      Analisys: f
Depth: 13     Multipv:2
Delta=70
n.Moves LOW= 7
Depth LOW=13  Multipv LOW= 3
Delta LOW= 90
    moves white:
      1.  Rh4:h1  n. games 165  n.win=0 n.draw=96 n.lose=69  p.max=29%
      1.  Bb6 c7  n. games 101  n.win=1 n.draw=19 n.lose=81  p.max=10%
      1.  Rh4 c4  n. games 112  n.win=0 n.draw=15 n.lose=97  p.max=6%

 n.total games=378   time: 0h 17' 9,734''
(I have set Multipv=2 instead of 3 as LOW Multipv only to try to shorten the total time of the analysis.
But this is not well, it is better to use Multi PV=Low Multipv =3 or 4, if your PC is very powerful and allows you this, without employing biblical times. I have considered only 3 moves, also always for to increase the speed analysis, but is better to consider all the moves. I have clasped the Delta range, to reduce the useless moves and therefore to be able to perform an inferior quantity of games to have a reliable analysis (always to increase the speed), but it is better to use if possible the values of default). 

Then to depth >=13 Mscarface finds the best move, to depth<13 don't find 1. Rh4:h1. This is due to the horizon effect.
We see in the practice of Mscarface this:
After the Black capture the White tower in h1, the White has to sacrifice the 'e' pawn so to be able to play then Bc7+, and the Black can not capture the Bishop, otherwise is stalemate.
                                                        2. e6!
We see to depth 7 how many times the 2.e6 moves is played:
We see instead to depth 13:
Because this difference?  To depth=7 2.e6 is valued around 15,5 cp. and 2.Bg1 16/16,5 cp. To depth=13 2.e6 is valued 13,8 cp. and 2.Bg1 18,4 cp.
To depth=13 let's have a difference more of 450 cp!  For which 2.Bg1 (as the other moves, different from e6) it is never taking in consideration and is played only 2.e6. Here we already have a difference in the analysis.

Later 1.RxNh1 NxRh1 2.e6 dxe6 3.Bc7+ Kb7 4.Bxg3 Kc6 the best moves is 5.Be1, the Bishop has to remain on the diagonal e1-h4 to prevent the liberation of the knight.
                                                         5. Be1!    
We see what happens:
To depth=7
To depth=13
Because are played moves to depth=7 as 5.Bf4, which conduct to the mate in 7?
Simple, to Depth 7 the engine doesn't see the mate in 7 and valued 5.Bf4 -1200 cp and 5.Be1 -1300 cp.
To depth13 instead on Bf4 the mate is found, while Be1 is valued -1600cp.
The engine have a depth limit, a horizon, besides which don't see, obviously dependent from the analysis depth set.
Note:In reality mate in 7 means mate in 14 half moves. In this specific case in 13 half moves later 5.Bf4. In this case the matter and relatively simple,
because we have a mate to the horizon. In case of a position with non definitive evaluation the matter is more complicated, however the principle is equal.

Obviously when we analyze a position, we cannot know pre-emptive the horizon limit value. 
In a position, depth=13 would be not enough, in another depth=7 or 9 could be enough and set the depth to 13 could be a useless loss of time.

Conclusion: in a serious analysis, if you use the program to play correspondence games, I recommend:
1- To use the analysis mode type "Full Monte Carlo". The “Limited analysis" mode is an experimental modality. In the case of fortitudes or unbalanced positions but draw, It is useless.
2. - To always consider all the possible moves.
3- To perform least 100 games for every possible move.
4- To perform more than an analysis session for every position, set different parameters, of which at least an analysis to elevated depth.

1 comment:

Anonymous said...

Who is the author of the study? When/Where was it published?