L’evoluzione di Stockfish: analisi quantitativa e qualitativa a nodi fissi

Introduzione

Stockfish è da anni considerato il miglior motore di scacchi al mondo. Domina costantemente le classifiche e vince praticamente tutti i tornei a cui partecipa. Ogni nuova versione sembra superare la precedente, e sebbene negli ultimi due anni la crescita sia apparsa più lenta, le analisi del motore sono diventate sempre più precise e veloci.

L’evoluzione di Stockfish non è stata lineare: si è trattato di una successione di innovazioni algoritmiche, ottimizzazioni del codice e, più recentemente, di una vera e propria rivoluzione con l’introduzione delle reti neurali NNUE.

Le rating list disponibili online, compresa quella che curo, mostrano la forza dei motori principalmente a parità di tempo (ad esempio x secondi per mossa o x mosse in y minuti). Sebbene questi test misurino la forza complessiva in contesti pratici, un approccio alternativo consiste nel valutare i motori a nodi fissi: questo metodo esamina l’efficienza dell’analisi (qualità della valutazione e efficacia della potatura alfa-beta), eliminando la variabile della pura velocità di calcolo.

Per questo motivo ho condotto un test rigoroso in single-core, limitato a 20.000 nodi per mossa, un numero basso, che permette di confrontare tutte le principali versioni storiche di Stockfish. Ogni motore ha esplorato esattamente lo stesso numero di nodi prima di scegliere una mossa, giocando almeno 5.000 partite ciascuno (alcuni quasi 15.000) per ridurre al minimo l’errore statistico. Alla fine dell’articolo è presente un link con la rating list di tutti i motori testati a 20.000 nodi per mossa.

Per contestualizzare i risultati, Stockfish 17.1, limitato a 20.000 nodi per mossa, è stato poi confrontato con decine di altri motori, a cui è stato assegnato il consueto tempo di riflessione utilizzato nei miei test (40 mosse in 120 secondi, equivalente a circa 40 mosse in 120 minuti su un Pentium 90). Questo ha permesso di ottenere un punteggio confrontabile con la mia rating list, il cui obiettivo è correlare i punteggi Elo dei motori con quelli FIDE dei giocatori umani.

Risultati

Progressione della forza di Stockfish a 20000 nodi per mossa

Come prevedibile, la qualità dell’analisi migliora progressivamente con il rilascio di nuove versioni. In quasi vent’anni, Stockfish è passato da un Elo stimato di 2101 (vicino al livello di un candidato maestro) alla forza sovraumana delle versioni attuali. L’incremento complessivo supera i 1250 punti Elo, riflettendo decenni di miglioramenti algoritmici, ingegneristici e di addestramento. I valori intermedi mostrano una progressione generalmente crescente, sebbene non sempre lineare.

Un punto di svolta è l’introduzione delle reti neurali NNUE (Neural Network Updatable Efficiently) tra le versioni 11 e 12. Questo sviluppo ha prodotto un salto di forza significativo, evidente soprattutto intorno al periodo 2020–2021. Già Stockfish 12, limitato a soli 20.000 nodi per mossa, sarebbe in grado di battere gran parte dei GM umani con facilità, e le versioni successive non sfigurerebbero nelle rating list tradizionali basate sul tempo.

Dal punto di vista tecnico, NNUE ha ridotto la dipendenza da valutazioni manuali, consentendo al motore di catturare pattern posizionali e interazioni tra pezzi difficili da rappresentare con formule tradizionali. Inoltre, l’implementazione efficiente (aggiornamenti incrementali e uso di istruzioni SIMD) ha permesso di ottenere questi miglioramenti senza ricorrere a GPU dedicate, mantenendo semplicità d’uso e portabilità.

Prima dell’avvento delle reti neurali, la crescita era più lenta e talvolta non uniforme. Alcune versioni, pur essendo complessivamente più forti, hanno ottenuto punteggi Elo inferiori nei test a nodi fissi (ad esempio Stockfish 9 e 11 rispetto alle versioni 8.0 e 10.0). Chiaro indice che ottimizzazioni legate alla velocità di calcolo hanno più che compensato valutazioni meno efficienti.

La nuova rete TI

Negli ultimi due anni, il progresso è notevolmente rallentato. A partire dalla versione 15, gli incrementi Elo sono stati più contenuti. Tuttavia, recentemente, una versione in sviluppo di Stockfish 18 ha introdotto una nuova tipologia di rete NNUE, che non considera solo la posizione dei pezzi, ma anche le minacce potenziali. Essendo circa il 50% più grande, richiede maggiore capacità di calcolo e riduce il numero di nodi al secondo calcolati.

Sebbene sia computazionalmente più pesante, l’analisi a nodi fissi mostra un guadagno di circa 60 Elo rispetto a Stockfish 17.1, suggerendo un potenziale significativo per questa nuova innovazione.

Conclusione

In circa 18 anni, Stockfish ha migliorato enormemente la valutazione delle posizioni, migliorando di oltre 1250 punti Elo. Le cause principali sono due:

  1. Innovazioni fondamentali nella funzione di valutazione, con NNUE e la sua evoluzione, che hanno generato salti di forza significativi.
  2. Ottimizzazioni della ricerca e dell’ingegneria (tuning, pruning, move ordering, ottimizzazioni hardware), che hanno migliorato la qualità delle decisioni a parità di nodi.

Per rendere l’idea dell’impressionante progresso: Deep Blue, il supercomputer che batté Kasparov nel 1997, analizzava mediamente 200 milioni di mosse al secondo, impiegando tra 60 e 120 secondi per ogni mossa, esplorando quindi tra 12 e 24 miliardi di nodi per mossa, e aveva un Elo stimato di 2800. Le moderne versioni di Stockfish ottengono risultati migliori analizzando appena 20.000 nodi per mossa, una differenza di diversi ordini di grandezza che evidenzia il salto tecnologico raggiunto.

Rating list: Stockfish 20knodes

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *