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.
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.
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 che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Ciao Giovanni,
complimenti per l’articolo che è a dir poco pazzesco.
Mi viene da pensare ad un futuro con automi sempre più “simili a noi” ma allo stesso tempo “meglio di noi”, come una serie di Fantascienza o un racconto di Isaac Asimov.
Si sente parlare sempre di più di Reti Neurali, Deep Learning e Machine Learning e poter mettere mano su un qualcosa di concreto, reale e avanzato (mi riferisco al progetto “Giraffe” e al link che hai condiviso) è un’occasione per toccare con mano di cosa si sta parlando.
In questi giorni sto cercando di assorbire più informazioni possibili su questi argomenti, alcuni sono fortemente avanzati e restano abbastanza difficili da capire senza una buona conoscenza di base, se hai qualche altro articolo, libro e/o da consigliarmi te ne sarei grato.
Complimenti ancora per l’articolo.
Gli scacchi: gioco spaventosamente bello. Insegna tantissimo. Tutti dovremmo imparare a giocare a scacchi. Il fatto che l’intelligenza artificiale potrà sostituire o meglio battere quella umana è un tema affascinante e discusso.
Grazie.
Grazie per l’articolo che ho trovato interessantissimo.
Sinceramente ho pensato fino ad ora che l’utilizzo dei calcolatori per un gioco come gli scacchi fosse poco ‘poetico’, proprio perché basato comunque sulla potenza computazionale e l’applicazione di una politica di ‘forza bruta’ che certamente ha poco appeal tra gli appassionati. Ma quanto ci hai presentato apre uno scenario diverso, se davvero possiamo pensare ad un apprendimento basato sulle stesse logiche che usiamo noi nella nostra testa (o meglio i campioni di scacchi, perché non merito di annoverarmi tra essi!)
Ovviamente questo avrà ricadute in molti campi di applicazione dell’intelligenza artificiale e, fortunatamente, non toglierà agli appassionati la possibilità di una serena partita… tra umani!
Saluti.
Grazie.
Se 15 anni fa il computer ha battuto l’Uomo dal punto di vista scacchistico, ora più che mai l’AI detta la sua supremazia su tutto.
Ciao, ho letto con piacere quest’articolo e mi è venuta una gran nostalgia di quando nel lontano 1995 mi fu regalato il primo floppy disk per i giochi di scacchi sul pc. Avevo un 386 se non erro e se ricordo bene, windows non era ancora un s.o. ma partiva sotto DOS. Ero molto affascinata dalla grafica del gioco che si chiamava proprio Chess ma ero anche incuriosita dalla logica e dalla matematica di quel programma che aveva un nesso con l’algebra delle matrici. Quello per me fu un modo per imparare a giocare a scacchi,Sono però dello stesso parere degli scacchisti romantici: il gioco degli scacchi è per l’uomo; lo scopo è quello di divertimento e di sfida pacifica tra persone. Importante invece è continuare a studiare come un computer potrebbe risolvere una partita di scacchi per utili fini, sicuramente non bellici. Il fine della scienza e dell’informatica è quello di migliorare la qualità di vita delle persone e non di peggiorarla.
Quando ho letto il titolo ho subito pensato che l’autore non poteva che essere Giovanni Di Maria, conoscendo la sua passione per gli scacchi.
Parlando dell’intelligenza artificiale, non era difficile pensare che con l’aumentare della potenza di calcolo e dei nuovi sistemi di programmazione sia possibile che questi sistemi possano acquisire delle capacità, per cui magari non sono programmati specificatamente.
Proprio una di queste sere ho rivisto l’episodio Terminator Genisys penultimo della famosa saga.
Speriamo che nella programmazione si riesca a far si che le macchine non pensino una volta vinta una partita contro il loro proprietario umano, di eliminarlo 🙂