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