Home

LaMoSca v0.10

Quiescenza

Obiettivo

In questa versione del programma la profondità di ricerca nell'albero delle mosse è resa variabile, per fermare l'analisi in posizioni di gioco stabile eliminando l'effetto orizzonte.

Il codice

La ricerca della variante ottima nell'albero delle mosse con una profondità fissa di ricerca espone all'"effetto orizzonte". Questo deriva da una valutazione sbagliata di una posizione per non aver considerato mosse immediatamente successive a quelle prese in esame. Questo è particolarmente vero nel caso di un troncamento di una sequenza di catture. In questo caso, infatti, la valutazione della posizione è falsata dal temporaneo sbilanciamento del materiale tra le due parti che si ha fino a che tutta la sequenza di cattura non è completata. Dopo aver analizzato l'albero alla profondità voluta, quindi, è opportuno continuare la ricerca per i rami corrispondenti a delle catture fino a che tutte le catture sono terminate (quiescenza) o fino ad un secondo livello massimo di ricerca.

Un modo per realizzare questa ricerca "ridotta" può essere quello di modificare la generazione delle mosse, salvando nello stack solo quelle corrispondenti a delle catture (eventualmente con anche promozioni, uscita da posizioni di scacco, ...) e proseguendo poi la ricerca con gli algoritmi convenzionali.

L'esecuzione del programma

Analizzando il file di log per l'apertura del programma si hanno le seguenti mosse:

LaMoSca v0.10 Log File - Livelli=4

L=1, A=-2147483647, B=2147483647:
L=2, A=-2147483647, B=2147483647:
L=3, A=-2147483647, B=2147483647:
L=4, A=-2147483647, B=2147483647: L4a8b8=1 L4g8f6=9 L4g8h6=4 L4b7b6=3
L=5, A=-2147483647, B=-9: L5a4b5=103 //Cut Risultato L5: T=1, A=-2147483647, B=-9
L4b7b5=9 L4c7c6=4 L4c7c5=7 L4d7d6=9 L4d7d5=13 L4e7e6=9 L4e7e5=13 L4f7f6=4 L4f7f5=7 L4g7g6=3 L4g7g5=5 L4h7h6=2 L4h7h5=3 L4a6b8=-2 L4a6c5=6 L4a6b4=1
Risultato L4: T=1, A=13, B=2147483647

Si vede come, in corrispondenza di una cattura, l'analisi venga proseguita a livelli di profondità maggiore.

Download

LaMoSca10.zip (9.06 k)

Da completare

  • generazione di arrocco, promozioni, catture en-passant;
  • controllo di situazioni di patta;

Da fare

  • gestione del tempo;
  • efficienza.

Link


Indietro Indice Avanti