scacchi-ia - Scuolafilosofica
Transcript
scacchi-ia - Scuolafilosofica
Scacchi e intelligenza articiale Stefano Sabatini 09 ottobre 2013 Contents 1 Terminologia - Intelligenza articiale e intelligenza computazionale 2 Gioco degli scacchi e programmi 2.1 Breve storia dei programmi di gioco degli scacchi 2 . . . . . . . 2 3 Algoritmi scacchistici 3 4 Qualche numero 4 5 Altri giochi 4 5.1 Dama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5.2 Go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 Psicologia cognitiva degli scacchi 5 7 Referenze 5 Appunti del seminario tenuto in occasione dell'evento Non solo scacchi!, il giorno 2013-10-06 a Cagliari presso la era campionaria, organizzato da Giangiuseppe Pili. 1 Terminologia - Intelligenza articiale e intelligenza computazionale • Intelligenza articiale (John McCarthy, 1956) obiettivo: far fare alle macchine delle cose che richiederebbero l'intelligenza se fossero fatte dagli uomini. 1 1 Focus sull'emulazione dell'intelligenza umana, piuttosto che sulle carat- teristiche base dell'intelligenza. Finalità di tipo ingegneristico. Non necessariamente basata sullo studio di risorse computazionali classiche. Test di Turing (Alan Turing, 1950). • Intelligenza computazionale obiettivo: studio delle proprietà dell'intelligenza utilizzando mezzi computazionali classici. Non necessariamente nalizzata alla costruzione di un intelligenza paragonabile o modellata su quella umana. Tesi dell'intelligenza articiale forte: l'intelligenza (umana) non dipende dal substrato computazionale, una macchina di Turing o equivalente è in grado di riprodurre una forma di intelligenza qualsiasi (dato suciente tempo e stimoli). Enfasi sull'intelligenza puramente simbolica classica e su logica. Obiezioni: • per riprodurre l'intelligenza umana è necessario un substrato computazionale / sico simile a quello dell'uomo (in particolare: un corpo, un ambiente evolutivo e un cervello basato su reti e altamente parallelo) • gli esseri umani sono necessariamente speciali, in quanto posseggono un quid che li rende distinguibili dalle macchine a prescindere dal comportamento esibito/emulato/simulato. Il processo del pensiero delle macchine è necessariamente altro rispetto al processo del non-pensiero delle macchine. 2 Gioco degli scacchi e programmi Il gioco degli scacchi è un gioco a informazione perfetta estremamente popolare e facilmente formalizzabile. Implementazioni di giochi di scacchi sono state sviluppate n dall'alba dell'informatica. I programmi per scacchi constano in genere delle seguenti componenti: • motore di gioco, con interfacce a terminale/linea di comando • interfaccia graca, che utilizza protocolli di comunicazione/visualizzazione (e.g. XBoard): Chess Engine Communication Protocol, Universal Chess Interface (UCI) 2 2.1 • Breve storia dei programmi di gioco degli scacchi Leonardo Torres y Quevedo (1912) - El ajedrecista - primo computer/robot dedicato al gioco degli scacchi (ne gioco re e torre contro re) • 1948 Turing - Michie - varie paper machine, di fatto algoritmi eseguiti da un operatore umano • 1950 Shannon - Programming a Computer for Playing Chess: in particolare vengono delineate le strategie Shannon Type A e Shannon Type B • 1957 Bernstein chess program - primo programma completo di scacchi • 1996 Sda Gary Kasparov - Deep Blue: 4-1-3, vinta da Kasparov • 1997 -Sda Gary Kasparov - Deep Blue: 2-3-2, vinta da Deep Blue Deep Blue è un computer parallelo dedicato al gioco degli scacchi (con istruzioni speciche ottimizzate per il gioco degli scacchi), progettato da una squadra diretta da Feng-hsiung Hsu e nanziata da IBM, valuta circa 200*10 6 posizioni al secondo. La sda non è mai stata ripetuta, Deep Blue è stato ritirato poco dopo la sda. • 2006 Vladimir Kramnik Deep Fritz (2006): 2-4-4. Sda vinta da Deep 6 posizioni Fritz (Versione multiprocessore di Fritz), valuta circa 8*10 al secondo. Per una cronologia più dettagliata vedi: • http://chessprogramming.wikispaces.com/History • http://en.wikipedia.org/wiki/Chess_programming 3 Algoritmi scacchistici Vedi [SHANNON]. • Shannon type A (1950) Si procede alla valutazione di tutte le mosse valide, per ognuna si calcola la mossa migliore dell'avversario (usando lo stesso algoritmo). Per ogni risposta si valutano ricorsivamente tutte le mosse migliori, e così via nché non si raggiunge la profondità prevista. La valutazione di una mossa corrisponde alla migliore valutazione dei nodi glio. 3 • Shannon type B Come per type A, ma con le variazioni: esamina alcune situazioni (forceful variations) in profondità, secondo lo stato di quiescenza seleziona le variazioni da considerare Esistono moltissime variazioni e ottimizzazioni speciche, in particolare: • confronti con database di aperture • confronti con database di nali di partite • alpha-beta pruning (Arthur Samuel) • negascout 4 Qualche numero Alcuni numeri relativi agli scacchi: • 30 posizioni possibili in media in una partita di scacchi, per un totale 3 variazioni possibili per un turno completo, quindi si hanno 3N posizioni in N turni mediamente 10 di circa 10 • 40 i turni completi di gioco in media (per un calcolo approssimativo di 120 possibili partite) 10 • Deep Blue/1997: 200 milioni di posizioni calcolate al secondo, Deep Fritz/2006: 8 milioni di posizioni al secondo • 43 il numero approssimativo di posizioni legali sulla scacchiera 10 5 Altri giochi 5.1 • Dama Primo programma di dama: Arthur Samuel, 1950. Programmi di scacchi basati su algoritmi di ricerca, le prime implementazioni risultano in grado di compere con giocatori di livello amatoriale. 4 • 1992 Marion Tinsley - Chinook: 4-2-33 Marion Tinsley è considerato il più forte giocatore di dama mai esistito. Chinook è il gioco di dama sviluppato dal gruppo di Shaeer. • 1994 Tinsley si ritira dopo due patte contro Chinook per motivi di salute, muore l'anno seguente. • 2007 Schaeer: pubblica l'articolo Checkers Is Solved, si dimostra che la versione aggiornata di Chinook non può perdere contro giocatori umani (risoluzione del gioco della dama). 5.2 Go Giocatori umani professionisti sono ancora nettamente più forti rispetto a programmi (ma i programmi tendono a migliorare in continuazione). Ragioni: maggior numero di mosse disponibili/valide per ogni turno, maggiore dicoltà a valutare la mossa migliore. Vedi: http://en.wikipedia.org/wiki/Computer_Go 6 Psicologia cognitiva degli scacchi Adriaan de Groot (1914-2006) - Thought and choice in chess - 1965. • Abilità fondamentali usate da giocatori umani: • pattern matching (individuazione di disegni/archetipi) ricerca in profondità visualizzazione analogie Giocatori forti tendono ad avere una forte capacità di riconoscere pattern comuni, e riescono a selezionare in modo rapdo le varianti di gioco più valide (scartando tutte le altre). In particolare vengono considerati gruppi di pezzi o speciche situazioni che hanno una particolare rilevanza strategica. • È pensabile che l 'intuito di un giocatore possa essere sviluppato tramite un allenamento costante. Sembra esserci una relazione tra numero delle ore passate in allenamento e tale capacità intuitiva di un giocatore professionista. 5 • La parte della mente stimolata sembra agire a livello inconscio, e quindi non direttamente spiegabile dal giocatore stesso. La propri- età di inconsapevolezza sembra essere un prerequisito dell'ecacia di tale modalità di pensiero. 7 Referenze RUSSEL S.J. Russell, P. Norvig, Intelligenza Articiale: un approccio moderno, UTET, 1998 WIKI http://chessprogramming.wikispaces.com/ SHANNON Claude Shannon - Programming a Computer for playing Chess - 1948 BEOWULF http://frayn.net/beowulf/theory.html HOFSTADTER Godel, Escher, Bach: un'eterna ghirlanda brillante - 1979 6