
L’Intelligenza Artificiale e l’apprendimento automatico sono all’apice dell’attenzione globale. Ma sai dove queste tecnologie stanno facendo un vero “scacco matto”? Nel mondo degli scacchi, dove le macchine stanno sfidando i grandi maestri e ridefinendo la strategia di gioco. Scopri di più su come l’AI sta rivoluzionando il gioco degli scacchi a livello esperto.
Dal rilascio di alcuni dei migliori motori scacchistici, l’intelligenza artificiale ha avuto un enorme impatto sul modo in cui i migliori giocatori impostano le loro strategie. Praticamente tutti i migliori Grandi Maestri (che hanno valutazioni FIDE superiori a 2700) utilizzano ampiamente gli strumenti di intelligenza artificiale per analizzare le loro partite. E di conseguenza eseguire le mosse dai consigli del motore di scacchi.
In questo articolo, analizzeremo l’importanza dei meccanismi di intelligenza artificiale per gli scacchi. Inoltre discuteremo quattro dei motori scacchistici più noti: Stockfish, AlphaZero, Leela Chess Zero e il motore più recente, Mittens. Vedremo come sono costruiti e quali strategie applicano per portare a termine il lavoro: vincere.

L’importanza dell’intelligenza artificiale nel mondo degli scacchi
Gli scacchi sono diventati uno dei principali campi di applicazione per l’intelligenza artificiale e i motori scacchistici. Con l’aiuto dell’AI, i giocatori possono ora analizzare e migliorare le loro mosse come mai prima d’ora. Questo è possibile grazie alla capacità dei motori scacchistici di valutare le posizioni e prendere decisioni informate, rendendo l’intelligenza artificiale un elemento essenziale in questo mondo affascinante.
I motori scacchistici utilizzano vari algoritmi e tecniche, incluso l’apprendimento automatico, per valutare le posizioni ed eseguire la mossa successiva. Lo fanno analizzando grandi quantità di dati per trovare scelte di posizione molto solide e accurate, consentendo loro di giocare molto più velocemente di quanto potrebbe fare un essere umano. Questo lo rende uno strumento prezioso per i giocatori di scacchi che vogliono studiare e migliorare il proprio gioco. Meglio ancora, i motori scacchistici possono funzionare anche a livelli professionali, rendendolo un avversario impegnativo anche per i giocatori umani più forti. Quindi, come funziona esattamente l’intelligenza artificiale dietro i motori scacchistici?
I motori di scacchi valutano le mosse migliori utilizzando diversi potenti algoritmi e tecniche di intelligenza artificiale, tra cui:
- Algoritmi di ricerca: algoritmi usati per cercare attraverso il vasto numero di possibili mosse e posizioni in un dato turno. Guardano la posizione corrente, generano tutte le mosse possibili. Quindi valutano ogni posizione risultante per determinare quale mossa porta al miglior risultato.
- Funzioni di valutazione: funzioni che possono valutare la forza di una data posizione. Prendono in considerazione fattori come l’equilibrio materiale, la struttura dei pedoni, la mobilità, la sicurezza del re, il controllo delle case chiave, tra gli altri. La funzione di valutazione fornisce un punteggio numerico per una determinata posizione, che l’algoritmo di ricerca utilizza per determinare la mossa migliore.
- Tablebase di fine partita: database precalcolati che consentono ai motori di scacchi di giocare posizioni di fine partita perfette. Quando il motore rileva che una posizione è una posizione di fine partita, può utilizzare questo database per determinare le mosse migliori.
- Tecniche di apprendimento automatico: tecniche utilizzate per migliorare le funzioni di valutazione dei motori scacchistici. Possono imparare dai risultati dei giochi precedenti per migliorare la loro comprensione delle posizioni buone e cattive e regolare il peso di vari fattori nella funzione di valutazione.
In termini di strategia, i motori scacchistici possono essere programmati per giocare in vari stili a seconda delle preferenze del programmatore o dell’utente. Ad esempio, alcuni motori potrebbero essere progettati per giocare in modo aggressivo e dare la priorità all’attacco al re dell’avversario. Mentre altri potrebbero essere progettati per giocare con maggiore cautela e dare priorità al vantaggio materiale e alla sicurezza del re. La scelta della strategia dipenderà spesso dalla funzione di valutazione e dal peso assegnato ai vari fattori.
I motori scacchistici più famosi e apprezzati finora utilizzano una combinazione di algoritmi di ricerca, funzioni di valutazione, tabelle finali e apprendimento automatico per valutare le mosse migliori e decidere la loro strategia. La qualità e la forza di un motore scacchistico dipenderanno dalla sofisticatezza di questi algoritmi e tecniche insieme all’accuratezza della funzione di valutazione.
Ora analizziamo brevemente quattro dei motori scacchistici più famosi.
Stockfish
Stockfish ( https://stockfishchess.org/ ) è un motore di scacchi open-source, compatibile con UCI (che significa Universal Chess Interface, un protocollo per comunicare con i motori di scacchi in modo standardizzato) che è ampiamente considerato come uno dei più potenti motori di scacchi motori nel mondo. È scritto in C++ ed è progettato per essere eseguito su una varietà di piattaforme, tra cui Windows, Mac e Linux.
In termini di forza, Stockfish è noto per la sua capacità di analizzare accuratamente e accuratamente le posizioni. Di conseguenza, è stato costantemente valutato al vertice delle classifiche di scacchi per computer e ha vinto diversi campionati di scacchi per computer.
Stockfish utilizza una combinazione di algoritmi avanzati di intelligenza artificiale per esaminare e valutare le posizioni, tra cui:
- Alpha-Beta Pruning: un algoritmo di ricerca che riduce il numero di nodi nell’albero di ricerca potando i rami che difficilmente conterranno la mossa migliore. Ciò consente al motore di cercare le diverse scelte di mossa nello stesso lasso di tempo.
- Quiescence Search: un’estensione della ricerca alfa-beta che affronta il problema delle posizioni tattiche. Quando si trovano in questi scenari, le mosse silenziose (o piuttosto le mosse che non catturano materiale) potrebbero non essere abbastanza buone per evitare posizioni tattiche future in modo accurato. Quindi il motore deve continuare a cercare possibili mosse tattiche che potrebbero seguire fino a quando la posizione non è priva di dubbio.
- Null Move Pruning: una tecnica che consente al motore di identificare rapidamente le posizioni in cui un lato non ha mosse utili. In queste posizioni, il motore può semplicemente passare la mossa all’avversario, consentendo di esaminare meglio le scelte di mossa in un lasso di tempo più breve.
- Multi-Threading: un algoritmo progettato per sfruttare i processori multi-core, con ciascun core che gestisce una porzione separata dell’albero di ricerca. Ciò consente al motore di cercare più velocemente e analizzare più posizioni in un determinato periodo di tempo.
Possiamo etichettare Stockfish come un “motore di scacchi tradizionale”, che viene addestrato utilizzando ampi database di giochi Grandmaster per guidarne la valutazione e il processo decisionale attraverso le suddette strategie di intelligenza artificiale.
Il codice sorgente di Stockfish è ospitato pubblicamente su Github e puoi trovarlo qui: https://github.com/official-stockfish/Stockfish, rilasciato sotto GPL (GNU General Public License).
AlphaZero
AlphaZero è un motore di scacchi sviluppato da DeepMind, una società di ricerca sull’intelligenza artificiale acquisita da Google.
Scritto in C++ e Python e non disponibile al pubblico, AlphaZero è diventato famoso per la sua rapida padronanza del gioco dopo solo poche ore di addestramento all’auto-gioco.
Utilizza una combinazione di reti neurali profonde e Monte Carlo Tree Search (MCTS) per giocare a scacchi. Le reti neurali sono addestrate per valutare le posizioni e prevedere la mossa migliore da fare mentre l’algoritmo MCTS viene utilizzato per cercare la mossa migliore simulando molti giochi casuali da una data posizione. Le reti neurali e gli algoritmi MCTS vengono addestrati insieme, consentendo ad AlphaZero di migliorare sia la sua capacità di esaminare le posizioni che le sue capacità di ricerca.
La differenza fondamentale tra AlphaZero e Stockfish è il modo in cui considerano le posizioni e scelgono la mossa successiva. Stockfish utilizza una funzione di valutazione tradizionale basata su regole che tiene conto di fattori come l’equilibrio materiale, il controllo del centro e la sicurezza del re. AlphaZero, d’altra parte, utilizza una rete neurale profonda addestrata per prevedere l’esito del gioco da una data posizione riconoscendo schemi importanti per avere successo.
AlphaZero utilizza MCTS, che è un algoritmo di ricerca probabilistica che simula molti giochi casuali da una data posizione e utilizza i risultati per guidare la sua ricerca. MCTS consente ad AlphaZero di esplorare una gamma molto più ampia di possibilità, rendendolo meno incline a essere fuorviato dalle tattiche e più propenso a trovare la mossa migliore.
Come già accennato, dopo sole quattro ore di allenamento in modalità self-play AlphaZero è riuscito a battere il miglior motore scacchistico del mondo, Stockfish, in una serie di 100 partite, con 28 vittorie, 72 pareggi e 0 sconfitte. Questo è stato un risultato straordinario e ha dimostrato la potenza e l’efficacia dell’approccio al gioco degli scacchi basato sull’intelligenza artificiale di AlphaZero.
La rapida padronanza degli scacchi di AlphaZero dopo solo poche ore di allenamento self-play evidenzia il potenziale dell’apprendimento per rinforzo profondo e dell’intelligenza artificiale in generale. E ha inoltre ispirato ulteriori ricerche e sviluppi in questo gioco.
Leela Chess Zero
Leela Chess Zero (LC0) è un motore scacchistico open source basato sull’intelligenza artificiale che utilizza i principi dell’apprendimento profondo e dell’apprendimento per rinforzo. È stato ispirato da AlphaZero.
LC0 è scritto in una combinazione di C++ e CUDA, una piattaforma di calcolo parallelo e un’API (Application Programming Interface) per l’utilizzo di unità di elaborazione grafica (GPU) per eseguire calcoli generici.
LC0 utilizza le reti neurali per valutare le posizioni e prendere decisioni. Le reti neurali vengono addestrate utilizzando un processo di self-play, in cui il motore gioca contro sé stesso e regola i propri parametri in base al risultato di tali giochi. Ciò consente a LC0 di migliorare nel tempo e diventare un giocatore di scacchi più forte. Il processo di auto-gioco e apprendimento per rinforzo viene implementato utilizzando una varietà di algoritmi, tra cui Monte Carlo Tree Search (MCTS) e l’apprendimento delle differenze temporali.
Mittens
Mittens era un motore di scacchi bot AI rilasciato alcune settimane fa dal popolare Chess.com come parte di cinque motori di scacchi basati sul tema di gatti.
Apparendo sia come un gatto carino che innocente all’interno della sua UX, il motore della spazzatura di Mittens parla all’avversario con una selezione di battute vocali. Incluse citazioni di Robert Oppenheimer, Vincent van Gogh, Thanos e Friedrich Nietzsche.
Anche se sembra un motore con una valutazione Elo di 1, Mittens è molto forte ed è in grado di vincere il 99% dei milioni di partite che ha giocato contro giocatori umani. Si pensa che il suo vero Elo sia di circa 3200-3500 punti (i migliori GM hanno circa 2700-2800 punti Elo). Poiché può sconfiggere i robot IA intorno a questo livello ma non Stockfish 15, un motore di 3700.
Grazie al clamore pubblico dato da famosi giocatori di scacchi e streamer, come il top GM Hikaru Nakamura, il motore è diventato presto virale, aumentando notevolmente il traffico verso il sito web. A gennaio è stato giocato il 40% in più di partite rispetto alla media mensile. Con conseguenti problemi di database relativi al processo di ridimensionamento. A febbraio, Chess.com, per il momento, ha rimosso Mittens e gli altri motori a tema felino e li ha sostituiti con altri cinque motori alimentati dall’intelligenza artificiale. Chess.com ha dichiarato che avrebbe dovuto aggiornare i propri server e investire di più nel cloud computing per risolvere i problemi causati dall’aumento di popolarità del sito web.
Non sono disponibili informazioni specifiche sulle tecnologie con cui è stato realizzato questo motore scacchistico. Anche se alcune speculazioni indicano che potrebbe essere stato costruito sopra Komodo, un motore scacchistico UCI scritto in C e C++ la cui forza è paragonabile a quella dei motori discussi in precedenza.
Contro dell’intelligenza artificiale negli scacchi
La presenza dell’intelligenza artificiale negli scacchi ha portato numerosi vantaggi. Ma alcuni appassionati del gioco non sono soddisfatti di questa rivoluzione. Molti ritengono che il gioco abbia perso la sua creatività, poiché spesso le prime 15-20 mosse sono prese da aperture già analizzate con i motori scacchistici. Vladimir Kramnik, ex campione del mondo, ha persino affermato che la creatività nel gioco sia stata sostituita dalla memorizzazione delle mosse: “Non stai giocando la tua preparazione, stai giocando la preparazione del tuo computer”.