Intelligenza artificiale: il software che impara a giocare a scacchi e che in 72 ore ne diventa Maestro

Prima o poi l'intelligenza artificiale batterà l'uomo e lo porrà in secondo ordine. Parliamo di vera intelligenza, di come un computer potrà affrontare i problemi e risolverli senza un algoritmo predeterminato e conosciuto dall'uomo. Questo avverrà massivamente con l'avvento dei computer quantistici. Al momento, un grandioso progetto ha permesso di mettere a punto un software che impara da solo gli scacchi giocando contro se stesso e che è in grado di battere il campione del mondo.

Introduzione

Il predominio nel gioco degli scacchi da parte del computer è ormai affermato da quando parecchi anni fa il famoso sistema informatico Deep Blue ha battuto l'ex campione del mondo Garry Kasparov. Ciò ha costituito un evento così importante da aver stravolto l'immagine dei software nel calcolo computazionale. Oggi esistono nel mondo informatico migliaia di Chess Engine, ossia dei programmi che sanno giocare a scacchi. E il loro livello di gioco è di gran lunga migliore di quello del campione del mondo. Basti pensare che il punteggio ELO attuale di Magnus Carlsen è di circa 2820 punti ELO (quello di un medio giocatore da torneo varia tra 1600 e 2000 punti ELO). Esistono centinaia di software, molti dei quali gratuiti, con un punteggio ELO molto maggiore di 2800, in grado di battere tranquillamente qualsiasi giocatore umano e rendendo quest'ultimo un principiante nei confronti del computer. Al momento della scrittura del presente articolo i tre più forti Chess Engine al mondo sono i seguenti:

  • Komodo 11 con 3393 punti ELO
  • Stockfish 8 con 3388 punti ELO
  • Houdini 5 con 3384 punti ELO

Attualmente la forza di un chess engine dipende, in grande misura, anche dalla velocità e della potenza della CPU (vedi, ad esempio, il multiprocessore e calcolo parallelo).

La forza bruta

Fino ad ora il computer è riuscito a battere l'uomo solo grazie alla sua forza bruta, ossia alla capacità di calcolare miliardi di varianti e mosse consecutive contro le 2-3 del giocatore umano, in maniera non molto intelligente. Il paragone è simile all'utilizzo di una normale calcolatrice per l'esecuzione di calcoli di numeri composti da decine di cifre, per i quali il computer è sicuramente più forte rispetto all'operatore umano. Tale forza bruta basa la propria potenza su ricerche ricorsive di svariati alberi di mosse, a volte "potati" un po' per ridurre il numero di varianti e, quindi, di soluzioni finali. Assicuriamo che tale numero è estremamente elevato e composto da decine di zeri, sicuramente fuori dalle capacità intellettive dell'uomo. Le posizioni possibili e univoche di tutti i pezzi collocati sulla scacchiera sono, infatti, maggiori di 2*10^32, mentre il numero di partite univoche con un massimo di quaranta mosse è maggiore di 25*10^79, molte di più del numero degli atomi presenti in tutto l'Universo. Solamente dopo 3 mosse di gioco di ambedue i giocatori, il numero di mosse possibili è circa 9 milioni. A prima vista non sembra, ma il gioco degli Scacchi è enormemente profondo, matematicamente parlando.

A livello "sentimentale", ossia di pensiero, di autonomia computazionale e d'iniziative personali, ancora tali programmi non mettono nulla di proprio. Solo calcoli matematici, algoritmi di ricerca e di profondità, calcolo di varianti e processi automatizzati sbalorditivi, ma nulla più. Anche l'uomo, adottando tali algoritmi, potrebbe diventare indistruttibile e imbattibile, a patto di usare calcolatrice, carta e penna, migliaia di ore di calcoli a disposizione e molta pazienza. Ma ciò è tassativamente vietato dal regolamento scacchistico e anche irrealizzabile praticamente. Quasi tutti i motori scacchistici esistenti oggi, utilizzano i medesimi algoritmi. Essi si basano sull'algoritmo di Minimax a profondità fissa sviluppato da John von Neumann nel 1928 (vedi Figura 3).

Come detto nel precedente paragrafo, al momento il più forte chess engine (motore scacchistico) è Komodo 11 che, con i suoi 3393 punti ELO, "stritola" qualsiasi avversario, umano o informatico (vedi classifica CCRL 40/40 in Figura 1). Un vero gigante nel calcolo che esegue miliardi di operazioni al secondo, computa altrettante posizioni strategiche e seleziona, alla fine, la migliore mossa. Ma gli algoritmi utilizzati sono, ovviamente, conosciuti a priori dai programmatori. Il software esegue solo ciò che gli è stato insegnato, nulla più, e l'uomo potrebbe giungere alle medesime conclusioni, rieseguendo manualmente tutte le istruzioni imposte. Attualmente il computer è solo un mezzo per eseguire più velocemente (e senza errori) le operazioni insegnategli.

Figura 1: la classifica Top 20 dei Chess Engine, aggiornata alla data del presente articolo

Figura 1. La classifica Top 20 dei Chess Engine, aggiornata alla data del presente articolo

Nel gioco degli scacchi il calcolo completo a forza bruta allungherebbe drammaticamente il tempo impiegato nell'elaborazione delle mosse, poiché verrebbero inclusi anche i tratti assurdi, perdenti o apparentemente senza senso. Per questo motivo esistono delle operazioni di "cut of tree" che riducono di molto l'albero di ricerca e, parallelamente, il tempo necessario. Un esempio di ciò è testimoniato dal diagramma di cui alla Figura 2, nella quale il Bianco vince sacrificando la Donna ed eseguendo una lunga manovra che porta allo Scacco Matto.

Figura 2: un problema di scacchi che solo pochi Motori Scacchistici riescono a risolvere

Figura 2. Un problema di scacchi che solo pochi Motori Scacchistici riescono a risolvere

Quasi nessun chess engine "penserebbe" di perdere la Donna (non lo accetterebbe nemmeno un forte giocatore di scacchi umano), per cui la corretta soluzione viene trovata, attualmente, solo da pochi motori scacchistici, dopo lunga elaborazione. Per gli appassionati dei problemi scacchistici, la corretta sequenza vincente è la seguente:

1.Bc7 Qxc8 2.gxf7+ Kh8 3.Be5 Qc5 4.Bb2 Nc7 5.Ba1 a4 6.Bb2 a3 7.Ba1 a2 8.Bb2 a1=Q 9.Bxa1 Nb5 10.Ke6+ Nc3 11.Bxc3+ Qxc3 12.f8=Q#

Il progetto Giraffe

C'è una grande svolta a riguardo. Si tratta del progetto Giraffe (con il relativo motore scacchistico open source, scritto in linguaggio C++11 e basato sull'apprendimento profondo, o Deep Learning), portato avanti da Matthew Lai al Collegio Imperiale di Londra. Egli, divenuto successivamente dipendente di Google DeepMind, ha creato un software basato sull'intelligenza artificiale, che prevede un approccio al gioco molto più simile al pensiero utilizzato dagli esseri umani che non a quello dei motori scacchistici. Inoltre, Lai ha affermato che entro 20 anni l'uomo non avrà più alcuna speranza reale di battere un programma scacchistico. La particolarità di Giraffe [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2044 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici e potrai fare il download in formato PDF eBook e Mobi per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

6 Commenti

  1. Silvio 20 Marzo 2020
  2. davide.balducci davide.balducci 20 Marzo 2020
  3. SuperG72 SuperG72 20 Marzo 2020
  4. Giovanni Di Maria Giovanni Di Maria 21 Marzo 2020
  5. Mariangela.Mone Mariangela.Mone 24 Marzo 2020
  6. Adriano Gandolfo Adriano Gandolfo 29 Marzo 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend