Home

LaMoSca v0.05

La valutazione delle posizioni

Obiettivo

In questa versione del programma, la mossa del programma viene scelta sulla base della valutazione dalla posizione raggiungibile dalla posizione corrente.

Le metriche

La scelta della mossa è fatta sulla base della bontà della posizione sulla scacchiera alla quale porta. Questo giudizio, però deve essere reso numericamente valutabile per essere calcolato dal programma. Sono possibili differenti metriche, che giudicano differenti aspetti di una posizione e, spesso, la valutazione adottata dai programmi è una combinazione pesata di queste metriche.

Il materiale

E' il criterio più semplice di valutazione, adottato tipicamente da chiunque inizi a giocare a scacchi. Una mossa è giudicata tanto migliore quanto più riesce a rendere favorevole il bilancio dei pezzi sulla scacchiera.
Assegnando i valori tradizionali ai pezzi (pedone = 1, cavallo = alfiere = 3, torre = 5, regina = 10), questa valutazione può essere fatta come differenza tra la somma dei pezzi del programma e la somma dei pezzi dell'avversario.

La posizione

Il valore di un pezzo non è solo legato alla sua tipologia, ma anche alla sua posizione sulla scacchiera. Un pedone, ad esempio, è tanto più importante quanto più è in grado di controllare il cento e di portarsi verso la sua promozione.

Questa valutazione può essere fatta correggendo il valore dei pezzi (solitamente moltiplicato per 100 per lavorare con degli interi) con quantità variabili in funzione della posizione del pezzo, memorizzate tramite matrici. Ad esempio, per i pedoni, per spingerli ad avanzare potrebbero essere utilizzati valori del tipo mostrati nella prima matrice a lato.

Per Alfieri e cavalli, potrebbe essere usata una matrice che li spinga a convergere al centro del tipo di quelli mostrati nella seconda matrice a lato.

I valori negativi di queste matrici servono per forzare alcune mosse classiche nelle aperture.

0,  0,  0,  0,  0,  0,  0, 0,
5, 10, 15, 20, 20, 15, 10, 5,
4,  8, 12, 16, 16, 12,  8, 4,
3,  6,  9, 12, 12,  9,  6, 3,
2,  4,  6,  8,  8,  6,  4, 2,
1,  2,  3,  4,  4,  3,  2, 1,
0,  0,  0, -4, -4,  0,  0, 0,
0,  0,  0,  0,  0,  0,  0, 0
0,  0,  0,  0,  0,  0,  0,  0,
0,  0,  0,  0,  0,  0,  0,  0,
0,  0,  5,  5,  5,  5,  0,  0,
0,  0,  5, 10, 10,  5,  0,  0,
0,  0,  5, 10, 10,  5,  0,  0,
0,  0,  5,  5,  5,  5,  0,  0,
0,  0,  0,  0,  0,  0,  0,  0,
0, -5, -5,  0,  0, -5, -5,  0

La mobilità

Il valore di un pezzo dipende anche dalla possibilità di utilizzarlo nel gioco, considerando negativamente quelle posizioni nelle quali i pezzi sono ostacolati nei loro movimenti.
Una misura complessiva della mobilità può essere data dal numero di mosse generate per quella posizione. Tanto maggiore è il numero delle mosse, tanto più liberi sono i pezzi di muoversi. Altre misure possono essere introdotte per i singoli pezzi (es.: posizionamento delle torri su colonne aperte, ecc.).

I pedoni

La forza dei pedoni dipende molto dalla loro posizione relativa e di come riescono a difendersi organizzandosi in strutture complesse.
Posizioni che riducono il valore di un pedone sono quelle di pedoni bloccati, doppiati, isolati o arretrati, mentre sono vantaggiose posizioni con pedoni passati o allineati.

Protezione del re

La difesa del re tramite pezzi leggeri garantisce una relativa tranquillità, lasciando liberi i pezzi più pesanti di attaccare il lato avversario.
E' possibile, quindi, valutare la protezione del re con la sua distanza dai pezzi più vicini, con il peso di questi e in funzione della protezione che a loro volta godono.

Il bilanciamento dei fattori

Combinare metriche differenti è piuttosto complesso in quanto può risultare difficile trovarne il giusto peso relativo ottimizzando la velocità e l'accuratezza della valutazione. Questa difficoltà nasce dal fatto che spesso le valutazioni sono tra loro complementari ed il loro peso cambia durante lo svolgimento della partita, per cui riuscire ad apprezzare i benefici di una o dell'altra metrica è piuttosto complesso.
In prima approssimazione può valere la pena rinunciare ad una valutazione molto raffinata, risparmiando capacità di elaborazione per la ricerca.

Il codice

In questa versione del programma, la valutazione della posizione viene fatta solamente sulla base del bilancio del materiale, corretto in funzione della posizione dei pezzi solo per i pedoni, per spingerli ad avanzare, e alfieri e cavalli, per farli convergere al centro.

Per il materiale, viste le correzioni adottate per la posizione, è necessario scalare i valori convenzionali di un fattore 100, per cui i valori di pedone, cavallo, alfiere, torre e regina diventano:

100, 300, 300, 500, 1000

Anche se questa valutazione è semplicistica, non è opportuno per il momento complicare il codice e l'insieme dei valori generabili. Funzioni di valutazione più raffinate possono essere studiate nei programmi indicati nell'indice.

L'esecuzione del programma

Lanciando il programma con il log attivato, è possibile vedere la valutazione per le posizioni raggiunte tramite ciascuna delle mosse generate. Ad esempio, per l'apertura i valori sono:

a2a3=1 a2a4=2 b2b3=2 b2b4=4 c2c3=3 c2c4=6 d2d3=8 d2d4=12 e2e3=8 e2e4=12 f2f3=3 f2f4=6 g2g3=2 g2g4=4 h2h3=1 h2h4=2 b1a3=5 b1c3=10 g1f3=10 g1h3=5

Non essendoci scambi di pezzi, questi valori derivano solamente da valutazioni posizionali. In particolare, le mosse a valore maggiore sono le spinte dei pedoni centrali (d2d4, e2e4) che combinano il valore della casa di arrivo con i pesi negativi delle case di partenza.

Download

LaMoSca05.zip (7.56 k)

Da completare

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

Da fare

  • scelta della mossa ottima tramite la valutazione delle posizioni su più livelli di analisi.

Riferimenti

Paolo Ciancarini:
"I Giocatori Artificiali";
 Mursia

Link


Indietro Indice Avanti