Intelligenza Artificiale
Ing. Tiziano Papini
Email: [email protected]
Web: http://www.dii.unisi.it/~papinit
Game Playing
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
2
Cosa vedremo
Come si colloca il Game Playing in relazione ad altre
discipline: una visione d’insieme
Tipologie di Giochi
Relazioni con il Problem Solving
Formalizzazione del gioco
Algoritmo Minimax
Ricerca di quiescenza
Algoritmo di Alfa-Beta Pruning
Problema dell’Orizzonte ed altri…
La vera sfida del Game Playing
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
3
Curiosità: The Turk


Vienna, 1770 davanti all'Imperatrice d'Austria e
Ungheria, Wolfgang von Kempelen, nobile giurista e
inventore ungherese, presentare una macchina
capace di pensare e di giocare a scacchi.
In realtà, all'interno dell'automa, si cela un nano
veneziano, imbattibile nel gioco degli scacchi, che
Kempelen ha sottratto dal buio della prigione: Tibor
Scardanelli.
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
4
Una visione d’insieme
Partendo dal Problem Solving
Introduciamo nel dominio
del problema altri agenti
in competizione
Game Playing
Intelligenza Artificiale - Game Playing
Complichiamo: stati (congiunzioni di fatti),
e operatori (legami tra fatti-condizioni e
fatti-effetti, non tra stati)
Planning
Tiziano Papini - 2011
5
Teoria dei Giochi
Von Neumann & Morgenstern (1944)
Theory of Games and Economic Behaviour
Teoria della Decisione
Analizzare il comportamento
individuale le cui azioni hanno
effetto diretto
Scommesse &
Mondo dei Puzzle
Intelligenza Artificiale - Game Playing
Teoria dei Giochi
Analizzare il comportamento
individuale le cui azioni hanno effetto
che dipende dalle scelte degli altri
Mondo dei Giochi
a + giocatori
Tiziano Papini - 2011
6
I giochi nell’IA e non solo

M. Minsky (1968):
“i giochi non vengono scelti perché sono chiari e semplici, ma perché
ci danno la massima complessità con le minime strutture iniziali”

Pungolo Scientifico




Matematica: teoria dei grafi e complessità
Computer Science: database, calcolo parallelo, etc.
Economia: teoria dei giochi, eco. cognitiva/sperim.
Psicologia: fiducia, rischio, etc..
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
7
Tipologie di Giochi

Classificazione 1  condizioni di scelta:

Giochi con informazione “perfetta”


Giochi con informazione “imperfetta”


Gli stati del gioco sono completamente espliciti per gli agenti.
Gli stati del gioco sono solo parzialmente esplicitati.
Classificazione 2  effetti della scelta:

Giochi deterministici


Gli stati sono determinati unicamente dalle azioni degli agenti
Giochi stocastici

Gli stati sono determinati anche da fattori esterni (es: dadi)
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
8
Tipologie di Giochi
Informazione
Perfetta
Informazione
Imperfetta
Scacchi, Go,
Dama, Otello,
Forza4
MasterMind
Backgammon,
Monopoli
Scarabeo,
Bridge, Poker…
(giochi di carte)
Risiko
Giochi
deterministici
Giochi
stocastici
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
9
Altre Classificazioni
Numero giocatori (tutti multiagenti!)
Politica del turno di giocata
Diacronia (turni definiti/indefiniti)
Sincronia
Ambienti discreti / continui
Ambienti statici / dinamici
Ambienti episodici / sequenziali
Giochi a somma zero
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
L’uomo agisce in un
ambiente continuo,
dinamico, sequenziale,
a scelte sincroniche e
con informazione
imperfetta.
10
Giochi e Problem Solving
Si può analizzare un gioco come un problema di
search, anche se multiagente?
ES: gli scacchi
X
X0
Op(x)
g(x)
T
= tutti gli stati della scacchiera
= lo stato di inizio gioco
= le mosse legali ad uno stato
= scacco matto
= costi dei cammini
Qualcosa non va! …
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
11
Giochi e Problem Solving
T non è determinante
Op(x) è sotto controllo solo per metà delle mosse
e spesso non è reversibile
g(x) non è sufficiente per definire la terminazione
Serve una funzione di utilità sulla terminazione
Es: vittoria = +1, patta = 0, sconfitta = -1
Obiettivo dell’agente:
definire una strategia che raggiunga T(x)=+1
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
12
Giochi e Problem Solving
Per inserire un gioco ad informazione perfetta in
uno schema classico di search si considera che:
Esiste un avversario che va simulato
L’avversario minimizza il nostro utile
L’albero di ricerca si sviluppa su 2 giocatori:
MAX(noi)
e MIN (l’avversario)
L’obiettivo è raggiungere uno stato terminale di
quest’albero con la massimizzazione dell’utilità*.
*(se l’avversario inizia per primo: lui diventa MAX e noi MIN con lo scopo di minimizzare l’utilità)
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
13
Algoritmo Minimax
(Von Neumann ’28, Shannon ‘50)
Nei giochi ad informazione perfetta si può ottenere
la strategia perfetta con una ricerca esaustiva.
Minimax, funzionamento di base:
Si costruisce l’albero delle mosse fino ai nodi terminali
Si applica la funzione di utilità U(x) ai nodi terminali
Si usano i valori per calcolare l’utilità dei nodi superiori:
U(nodo_sup) = MAX U(nodo_inf) se la mossa spetta a MAX
U(nodo_sup) = MIN U(nodo_inf) se la mossa spetta a MIN
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
14
Algoritmo Minimax
MAX
In realtà è
depth-first!
3
MIN
-4
MAX
1
-4
MIN
-4
1
1
6
-4
-4
1 -4
Intelligenza Artificiale - Game Playing
3
3
-5
-5
3
4
1
5
-2
3 -2 -1
4
-1
5
3
Tiziano Papini - 2011
5
1
4
4
6
1
-4
1
-2 -4
15
Algoritmo Minimax
> MAX = true, MIN = false
> MINIMAX(X, MAX)
MINIMAX(nodo, agente)
figli[] = SCS(nodo, agente)
for all (figli){
if(END_test(figlio) == true) {
figlio.utilità = UTILITY_test(figlio)
}
else figlio.utilità = MINIMAX(figlio, !agente)
if(agente==MAX && figlio.utilità > best)
best = figlio.utilità
if(agente==MIN && figlio.utilità < best)
best = figlio.utilità
} return best
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
16
Proprietà di Minimax
E’ completo in grafi finiti
E’ ottimale se MIN è ottimale (e se ci sono
più avversari).
Se MIN non è ottimale non si può garantire
l’ottimalità, ma…
Ha complessità spaziale O(bm) perché la
ricerca è in profondità.
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
17
;
Un “problemino” di Minimax

Negli scacchi:
"Unfortunately, the number of possible positions in the
chess tree surpasses the number of atoms in the Milky
Way." Claude Shannon

In generale: complessità temporale = O(bm)

Negli scacchi

351 0 0 = 2,5 x 101 5 4
In problemi reali non si può usare.
E’ utile solo come base teorica.
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
18
Minimax + taglio di
profondità


Limitare la ricerca ad una profondità max
(dipendente dalla memoria e dal tempo
disponibile)
Come valutare l’utilità dei nodi foglia?



Serve una funzione di valutazione.
Cioè un’euristica!
Far risalire fino alla radice le stime usando
minimax ed effettuare la scelta
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
19
Euristiche per Giochi

Funzioni lineari pesate





w1f1 + w2f2 + … + wnfn
Per esempio negli scacchi: 1 punto x Pedone,
3 x Alfiere, 3 x Cavallo, 5 x Torre, 9 x Regina
Vantaggi: la linearità permette rapidità di calcolo
Svantaggi: povertà espressiva (es: Cavallo forte nelle
aperture e al centro, Alfiere nelle chiusure, i valori delle
combinazioni di pezzi non sono lineari)
Funzioni non-lineari

Es. ottenuti da learning, ma come definire i TARGET?
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
20
Un “problemino” del taglio

Euristica possibile per la Dama:

Vantaggio di pezzi e vantaggio di dame
Prof. 0
Prof. 11
Prof. 18
Posizioni apparentemente buone possono essere perdenti
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
21
Taglio agli stati “quiescenti”
Arrivati alla profondità di taglio:
Per i nodi foglia quiescenti si applica il taglio
Per i nodi non quiescenti si approfondisce l’albero con
una ricerca di quiescenza
Al termine della ricerca si applica il taglio
Quiescenza = proprietà di uno stato la cui
euristica di utilità non varia molto con
l’applicazione degli operatori
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
22
Ancora un “problemino”





Vogliamo arrivare a profondità 6 in una
partita di scacchi (3 mosse MAX, 3 MIN)
b = ca.35, n° nodi = 356  1,85 x 109
Calcolatore veloce: 106 mosse/sec.!
Tempo impiegato: 1850 sec. = 30min
Con un limite di 30min abbiamo un giocatore
mediocre
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
23
?
Alfa-Beta pruning
(McCarthy ’56)
Si può ottenere la mossa MAX senza osservare
esaustivamente l’albero, perché:
1) DATO U(n0 )= α  utilità minimax del nodo n0 su cui sceglie MAX
2) affinchè la scelta conclusiva di MAX sia ≠ α almeno 1 nodo n (“fratello” di n0) deve
avere U(n)> α
3) affinchè U(n)> α per ogni nodo n’ successore di n deve valere h(n’)> α
4) QUINDI: appena un successore di n possiede U(n’) ≤ α il sottoalbero restante può
essere potato
“Stesso” discorso vale per MIN, quindi…
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
24
Alfa-Beta pruning (2)

Nella ricerca nell’albero:

Si usano 2 variabili:




α = valore maggiore di MAX al tempo attuale
ß = valore minore di MIN al tempo attuale
Calcolando MAX si pota il sottoramo di un nodo se un suo
figlio ha valore inferiore ad α; se invece tutti i figli hanno
valore maggiore il minimo diventa α
Calcolando MIN si pota il sottoramo di un nodo se un suo
figlio ha valore maggiore a ß; se invece tutti i figli hanno
valore minore il massimo diventa ß
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
25
Alfa-Beta Pruning: Pseudo Codice
MAX-VALUE(nodo, α, ß)
if CUTOFF-TEST(nodo) then return EVAL(nodo)
v  - ∞
for all figli in SCS(nodo) {
v  max(v, MIN-VALUE(figlio, α, ß) )
if v ≥ ß then return v
α  max(v,α)
}
v = utilità del nodo
return v
MIN-VALUE (nodo, α, ß)
if CUTOFF-TEST(nodo) then return EVAL(nodo)
v  + ∞
for all figli in SCS(nodo) {
v
 min(v, MAX-VALUE(s, α, ß))
if v ≤ α
then return v
ß  min(v,ß)
}
Intelligenza
Artificiale
return
v - Game Playing
Tiziano Papini - 2011
26
Alfa-Beta pruning: simulazione
α = −∞
ß= ∞
α=1
1 α=−∞
ß=∞
α=−∞
1 ß
ß=∞
=1
α=1
1 α=−∞
ß=∞
1 α=−∞
ß=∞
ß=1
1
2
-1 α=1
ß=∞
-1
MAX
0
2 α=−∞
ß=1
2 α=−∞
ß=1
2
4
Intelligenza Artificiale - Game Playing
-3
0 α=1
ß=∞
-3 α=1
ß=∞
-3
MIN
MAX
20 α=1
ß=2
ß=0
ß=∞
2
α=1
ß=∞
MIN
0
Tiziano Papini - 2011
27
Alfa-Beta pruning
Caso Generale
n0
n’
Intelligenza Artificiale - Game Playing
Se n0 è migliore di n’
allora n’ non verrà mai
raggiunto durante il
gioco e quindi tutto il
sottoramo
corrispondente può
essere potato
Tiziano Papini - 2011
28
￈
Efficacia della potatura α-ß

Dipende dall’ordinamento dei nodi




Ordinamento migliore: O(b )
Ordinamento pessimo: O(bm)
Ordinamento medio: O(b¾m)
½m
Node
Ordering
Negli scacchi (considerando il caso medio):


Fasi di apertura (b ≈ 35, poniamo m = 10)

Minimax: n° nodi: ca. 2.700.000.000.000.000

Alfa-beta: n° nodi:
ca. 380.000.000.000
Fasi centrali (b ≈ 18, poniamo m = 10)

Minimax: n° nodi: ca. 3.500.000.000.000

Alfa-beta: n° nodi:
ca. 2.600.000.000
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
Un buon
calcolatore
(106 mosse/sec)
sceglie una mossa
in 4 minuti!
29
￈
Altri problemi da affrontare

Problema dell’orizzonte

Eccessiva fiducia nell’euristica

Eventi stocastici

Giochi multiplayer

Branching Factor e potenza di calcolo
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
30
￈
Problema dell’Orizzonte



Un lungo periodo di quiescenza può precedere un rapido
ed inevitabile peggioramento dell’utilità
Se il taglio in profondità è avvenuto in questa “zona”,
valuta positivamente uno stato che è invece disastroso
Problema tutt’ora irrisolto!
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
31
￈
Eccessiva fiducia nell’euristica


Una valutazione molto irregolare tra nodi “fratelli” è
rischiosa, soprattutto usando Alpha-Beta
Servirebbe un’ulteriore ricerca nel sottoramo per
accertarsi della bontà della valutazione
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
32
￈
Eventi stocastici

Se in un gioco inseriamo la sorte, minimax deve essere
riscritto in modo da pesare la valutazione del nodo n con la
probabilità che n si verifichi a partire dal nodo genitore

Problema: la complessità cresce molto  O(bm dm)

Alpha-Beta Pruning?
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
33
ExpectiMin / ExpectiMax
5.39
5.39
0.3
0.56
0.7
2.8
3.5
0.3
0
5
6.5
0.7 0.3
0
0 –3 3 5 0 –6 4
4
8.3
0.7 0.3
3
8
8
0.7 0.3
2
7
1.4
–1.4
5.5
0.7 0.3
9
0.7
–1.4
6.5
2.8
0.7 0.3
0.3
8.1
0.7 0.3
7
–5
1.4
0.7 0.3
6
9
0.7
0
2
1 3 –1 2 8 9 –8 8 7 2 –2 6 7 3 7 –5 –7 6 4 9 5 0 –4 1 2
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
34
Giochi multi-player

Possiamo generalizzare gli algoritmi per giochi “2player-perfect-information”:

Requisito: non ci deve essere accordo tra i giocatori
Esempio 1: “la dama cinese”
6 giocatori muovono a turno
ogni giocatore cerca di occupare completamente
l’angolo opposto
Esempio 2: “3-player Othello”
3 giocatori muovono a turno
ogni giocatore deve “conquistare” il massimo
della scacchiera
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
35
Algoritmo MaxN

Assunzioni:




Funzione di valutazione:




I giocatori muovono a turni
Ogni giocatore mira a massimizzare il proprio utile
Ogni giocatore è indifferente all’utile degli avversari
Restituisce una n-tupla di valori di utilità attesa, uno per ogni
giocatore (player p) allo stato di gioco s
<U(p1,s), U(p2 ,s), …, U(pn ,s)>
Esempio: in Reversi/Othello si possono calcolare il numero di
pezzi per ogni giocatore
Algoritmo:


Depth-first search come Minimax
Fai risalire la n-tupla che massimizza U(pn) quando muove pn
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
36
Algoritmo MaxN: esempio
1
(7,3,6)
Minimax è un caso speciale di
MaxN in cui: a) N = 2, b) la
funzione di valutazione
restituisce la tupla <x, -x>.
(1,7,2)
(7,3,6)
2
2
(6,5,4)
(1,7,2)
(7,3,6)
3
3
3
3
(3,1,8)
(2,8,1)
(1,7,2)
(5,6,3)
Intelligenza Artificiale - Game Playing
(6,5,4)
(8,5,4)
(7,3,6)
Tiziano Papini - 2011
(4,2,7)
(3,1,8)
37
Algoritmo Paranoid


Idea: gli altri giocatori sono come 1 solo “macro-avversario”

2 giocatori: MAX (noi), MIN (avversari)
Valutazione dei nodi dell’albero:



Quando tocca a MAX si massimizza l’utilità di MAX
Quando tocca ad 1 avversario si minimizza l’utilità di MIN
Paranoid permette di rimuovere l’assunzione di non-accordo
tra i giocatori

Paranoid ha minori tempi di esecuzione

Paranoid si può sposare meglio con Alfa-Beta pruning

Paranoid non dà la garanzia di MaxN di che MAX massimizzi
il suo utile finale
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
38
Branching Factor:
comunque un problema
￈



Il primo software capace di vincere a Go contro il campione del
mondo vincerà 2.000.000 $!
b è di oltre 350  non ci sono algoritmi o euristiche che
tengano: non si usa la ricerca per Go
Negli scacchi uomo e macchine sono alla pari eppure la
velocità di calcolo non è la stessa.
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
39
￈
Alcuni risultati nel Game Playing



OTHELLO: Logistello (Michael Buro) nel 1997 sconfigge il
campione del mondo Takeshi Murakami per 6-0
DAMA: Chinook (Jonathan Schaeffer) nel 1994 diventa
campione per forfait di Marion Tinsley (campione mondiale
dal ’54 al ‘92, mai sconfitto dal ‘50 al ‘95).
BACKGAMMON: TD-gammon (Gerry Tesauro) è oggi
considerato tra i 10 migliori giocatori al mondo

BRIDGE: GIB (M.Ginsberg) è al livello di un amatore

POKER e GO: pessime performance (per motivi diversi)
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
40
La vera sfida



La vera sfida è competere con l’uomo ad armi pari.
L’uomo non usa la ricerca come metodo principale:

Prima parte dai GOAL (non ben definiti)

A ritroso costruisce SOTTOGOAL

Pianifica: azioni  subgoal  goal

Usa la ricerca per raggiungere obiettivi locali

Ha capacità “istintive” di escludere le scelte inutili: riduce
enormemente il branching factor
Come interfacciare ragionamento goal-oriented e search?
Intelligenza Artificiale - Game Playing
Tiziano Papini - 2011
41
￈
Giocatore di Scacchi
Elaboratore
euristico sui
nodi
DataBase
aperture
DataBase
chiusure
Intelligenza Artificiale - Game Playing
Motore
Ricerca
quiescenza
Motore
minimax
+ alfa-beta
pruning
Gestore del
Tempo
Tiziano Papini - 2011
Elaboratore
mosse forzate
Gestore del
livello di taglio
Gestore della
memoria
42