Limite Orizzonte - Italian

Limite orizzonte.

Analizzando le posizioni con MScarface, mi sono accorto che spesso il programma trova la mossa migliore solo a partire da una minima profondità d'analisi. Sotto questo valore la soluzione non è rilevata, qualsiasi settaggio di parametri sia impostato.

Questa posizione mi è stata spedita da uno scacchista di un forum:
1k6/3p4/1B6/4Pp1p/1p5R/1p4p1/pP3n2/K6n w - - 0 1
                                                         1.Txh1! =
1.Txh1! Cxh1 2.e6 dxe6 3.Ac7+!
L'alfiere non può essere catturato (altrimenti è stallo) e riesce a fermare la promozione dei pedoni e il matto dal cavallo nero.
Dopo 3. ..Rb7 4.Axg3 Rc6 muoviamo sempre l'alfiere dalla casa e1a f2 e da f2 a e1. Se il Nero spinge il pedone in h4, noi lo catturiamo e torniamo in e1. E' patta.
MScarface, con parametri a valori di default, non trova la soluzione:
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''
Per trovare la mossa che patta, dobbiamo aumentare la profondità d'analisi minimo a 13.

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''
(Io ho impostato Multipv=2 invece di 3 come LOW Multipv solo per tentare di velocizzare l'analisi..
Ma questo non è bene, è meglio usare Multi PV=Low Multipv =3 or 4, se il tuo PC è abbastanza potente per permetterti di farlo, senza impiegare tempi biblici. Io ho considerato solo 3 delle mosse possibili sempre per aumentare la velocità d'analisi, ma è meglio considerare tutte le mosse. Io ho ridotto il range Delta, per ridurre il numero di mosse prese in considerazione e quindi potere generare una minore quantità di partite per un'analisi attendibile. (Sempre per diminuire il tempo totale dell'analisi). Ma è meglio usare i valori di default per Delta.)

Quindi a depth >=13 MScarface trova la miglior mossa, mentre a depth<13 non trova 1.Rxh1. Questo è dovuto all'effetto orizzonte.
Vediamo il fenomeno in pratica:
Dopo che il nero cattura la torre bianca in h1, il bianco deve sacrificare il pedone 'e' in modo da poter giocare 3.Ac7+, senza che il nero possa catturare l'alfiere, altrimenti è stallo.
                                                         2. e6!
Vediamo a depth 7 quante volte è giocata la mossa 2. e6:


 Vediamo invece quante volte è giocata a depth 13:

Perchè questa differenza? A depth=7 2.e6 è valutata circa 15,5 cp. e 2.Ag1 16/16,5 cp. A depth=13 2.e6 è valutata 13,8 cp. and 2.Ag1 18,4 cp.
A depth=13 abbiamo una differenza di valutazione di 450 cp!  Per cui 2.Ag1 (come le altre mosse differenti da e6) non è mai resa in considerazione ed è giocata solo 2.e6. Qua abbiamo già una differenza nell'analisi.

Dopo 1.TxNh1 CxTh1 2.e6 dxe6 3.Ac7+ Rb7 4.Bxg3 Rc6 la miglior mossa è 5.Ae1, l'alfiere deve rimanere sulla diagonale e1-h4 per impedire la liberazione del cavallo nero.
                                                         5. Ae1!
Vediamo cosa succede:
A depth=7

A depth=13


Perchè a depth7 sono giocate mosse come 5.Af4, che conducono al matto in sette?
Semplice, a Depth 7 l'engine non vede il matto in 7  e valuta 5.Bf4 -1200 cp e 5.Be1 -1300 cp.
A depth13 invece dopo 5.Af4 il matto è trovato, mentre 5.Ae1 è valutata -1600cp.
L'engine ha un limite di profondità, un orizzonte di veduta, oltre il quale non vede, ovviamente dipendente dalla profondità d'analisi impostata.
Nota:In realtà matto in 7 significa matto in 14 semi mosse. In questo specifico caso, dopo  5.Af4 in 13 semi mosse. In questo caso la questione è relativamente semplice, perchè noi abbiamo un matto all'orizzonte.
In caso di posizioni con una valutazione non risolutiva la questione è più complessa, ma il principio è lo stesso. 

Ovviamente quando analizziamo una posizione, noi non possiamo conoscere a priori il valore del limite orizzonte.  
In una posizione, depth=13 potrebbe non essere sufficiente, in un'altra depth=7 or 9 potrebbe essere sufficiente e impostare la depth a 13 potrebbe essere un'inutile perdita di tempo.

Conclusione: in una analisi seria, se tu usi il programma a giocare partite per corrispondenza, io consiglio:
1- Usare la modalità d'analisi "Full Monte Carlo". La modalità “Limited analysis" è una modalità sperimentale. In caso di fortezze o posizioni sbilanciate ma patte, è inutile.
2. - Considerare sempre tutte le mosse possibili.
3- Eseguire almeno 100 partite per mossa.
4- Eseguire più di una sessione d'analisi per ogni posizione, impostando differenti parametri e almeno un'analisi ad alta profondità d'analisi.

No comments: