Title: Intelligenza Artificiale
1Intelligenza Artificiale
Gennaio Aprile 2007
- marco ernandes
- email ernandes_at_dii.unisi.it
2(No Transcript)
3(No Transcript)
4Cosa vedremo
- Come si colloca il Game Playing in relazione ad
altre discipline una visione dinsieme - Tipologie di Giochi
- Relazioni con il Problem Solving
- Formalizzazione del gioco
- Algoritmo Minimax
- Ricerca di quiescenza
- Algoritmo di Alfa-Beta Pruning
- Problema dellOrizzonte ed altri
- La vera sfida del Game Playing
5Una visione dinsieme
Partendo dal Problem Solving
Introduciamo nel dominio del problema altri
agenti in competizione
Complichiamo stati (congiunzioni di fatti), e
operatori (legami tra fatti-condizioni e
fatti-effetti, non tra stati)
Game Playing
Planning
6Esempio di problema di Planning
- Stato iniziale SILENZIO ? MANI_PULITE
- Goal PULITO ? CENA_PRONTA ? REGALO
- Operatori
- azione cucina
- precondition MANI_PULITE ? effect CENA_PRONTA
- azione incarta
- precondition SILENZIO ? effect REGALO
- azione butta_spazzatura
- effect PULITO ? not MANI_PULITE
- azione aspira
- effect PULITO ? not SILENZIO
7Teoria dei Giochi
- Von Neumann Morgenstern (1944)
Theory of Games and Economic Behaviour
Teoria della Decisione
Teoria dei Giochi
Analizzare il comportamento individuale le cui
azioni hanno effetto diretto
Analizzare il comportamento individuale le cui
azioni hanno effetto che dipende dalle scelte
degli altri
Mondo dei Giochi a giocatori
Scommesse Mondo dei Puzzle
8I giochi nellIA 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..
9Tipologie di Giochi
- Classificazione 1 ? condizioni di scelta
- Giochi con informazione perfetta
- Gli stati del gioco sono completamente espliciti
per gli agenti. - Giochi con informazione imperfetta
- 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)
10Tipologie di Giochi
Informazione Perfetta Informazione Imperfetta
Giochi deterministici Scacchi, Go, Dama, Otello, Forza4 MasterMind (è un gioco o un puzzle?)
Giochi stocastici Backgammon, Monopoli Scarabeo, Bridge, Poker (giochi di carte) Risiko
11Altre 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
Luomo agisce in un ambiente continuo, dinamico,
sequenziale, a scelte sincroniche e con
informazione imperfetta.
12Giochi e Problem Solving (1)
- Si può analizzare un gioco come un problema di
search, anche se multiagente? - ES gli scacchi
- X tutti gli stati della scacchiera
- X0 lo stato di inizio gioco
- SCS(x) le mosse legali ad uno stato
- T(x) scacco matto
- g numero di mosse
- Qualcosa non va!
13Giochi e Problem Solving (2)
- g non è determinante
- SCS(x) è sotto controllo solo per metà delle
mosse e spesso non è reversibile - T(x) non è sufficiente per definire la
terminazione - Serve una funzione di utilità sulla terminazione
- Es vittoria 1, patta 0, sconfitta -1
- Obiettivo dellagente
- definire una strategia che raggiunga T(x)1
14Giochi e Problem Solving (3)
- Per inserire un gioco ad informazione perfetta in
uno schema classico di search si considera che - Esiste un avversario che va simulato
- Lavversario minimizza il nostro utile
- Lalbero di ricerca si sviluppa su 2 giocatori
- MAX(noi) e MIN (lavversario)
- Lobiettivo è raggiungere uno stato terminale di
questalbero con la massimizzazione
dellutilità. -
- (se lavversario inizia per primo lui diventa
MAX e noi MIN con lo scopo di minimizzare
lutilità)
15Algoritmo 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 lalbero delle mosse fino ai nodi
terminali - Si applica la funzione di utilità U(x) ai nodi
terminali - Si usano i valori per calcolare lutilità 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
16Algoritmo Minimax
In realtà è depth-first!
MAX
3
MIN
MAX
MIN
17Algoritmo Minimax
gt MAX true, MIN false gt 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(agenteMAX figlio.utilità gt best)
best figlio.utilità if(agenteMIN
figlio.utilità lt best) best figlio.utilità
return best
18Proprietà 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
lottimalità, ma - Ha complessità spaziale O(bm) perché la ricerca è
in profondità.
19Un 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 35100 2,5 x 10154
- In problemi reali non si può usare.
- E utile solo come base teorica.
20Minimax taglio di profondità
- Limitare la ricerca ad una profondità max
(dipendente dalla memoria e dal tempo
disponibile) - Come valutare lutilità dei nodi foglia?
- Serve una funzione di valutazione.
- Cioè uneuristica!
- Far risalire fino alla radice le stime usando
minimax ed effettuare la scelta
21Euristiche 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?
22Un 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
23Taglio agli stati quiescenti
- Arrivati alla profondità di taglio
- Per i nodi foglia quiescenti si applica il taglio
- Per i nodi non quiescenti si approfondisce
lalbero 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
lapplicazione degli operatori
24Ancora 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
25Alfa-Beta pruning(McCarthy 56)
- Si può ottenere la mossa MAX senza osservare
esaustivamente lalbero, perché - 1) DATO U(n0 ) a ? utilità minimax del nodo n0
su cui sceglie MAX - 2) affinchè la scelta conclusiva di MAX sia ? a
almeno 1 nodo n (fratello di n0) deve avere
U(n)gt a - 3) affinchè U(n)gt a per ogni nodo n successore
di n deve valere h(n)gt a - 4) QUINDI appena un successore di n possiede
U(n) a il sottoalbero restante può essere
potato - Stesso discorso vale per MIN, quindi
26Alfa-Beta pruning (2)
- Nella ricerca nellalbero
- Si usano 2 variabili
- a 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 a se invece
tutti i figli hanno valore maggiore il minimo
diventa a - 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 ß
27Alfa-Beta Pruning Pseudo Codice
if CUTOFF-TEST(nodo) then return EVAL(nodo) v ? -
? for all figli in SCS(nodo) v ? max(v,
MIN-VALUE(figlio, a, ß) ) if v ß then return
v a ? max(v,a) return v
v utilità del nodo
MIN-VALUE (nodo, a, ß)
if CUTOFF-TEST(nodo) then return EVAL(nodo) v ?
? for all figli in SCS(nodo) v ? min(v,
MAX-VALUE(s, a, ß)) if v a then return v ß
? min(v,ß) return v
28Alfa-Beta pruning simulazione
a1 ß?
1
MAX
a-? ß 1
0
1
MIN
a1 ß?
1
2
-3
MAX
0
a1 ß2
a1 ß0
a1 ß?
a-? ß1
a1 ß?
MIN
-3
0
1
-1
2
2
1
2
-1
2
4
-3
2
0
29Alfa-Beta pruningCaso Generale
Se n0 è migliore di n allora n non verrà mai
raggiunto durante il gioco e quindi tutto il
sottoramo corrispondente può essere potato
n0
n
30Efficacia della potatura a-ß
- Dipende dallordinamento dei nodi
- Ordinamento migliore O(b½m)
- Ordinamento pessimo O(bm)
- Ordinamento medio O(b¾m)
- 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
Node Ordering
Un buon calcolatore (106 mosse/sec) sceglie una
mossa in 4 minuti!
31Altri problemi da affrontare
- Problema dellorizzonte
- Eccessiva fiducia nelleuristica
- Eventi stocastici
- Giochi multiplayer
- Branching Factor e potenza di calcolo
32Problema dellOrizzonte
- Un lungo periodo di quiescenza può precedere un
rapido ed inevitabile peggioramento dellutilità - Se il taglio in profondità è avvenuto in questa
zona, valuta positivamente uno stato che è
invece disastroso - Problema tuttora irrisolto!
33Eccessiva fiducia nelleuristica
- Una valutazione molto irregolare tra nodi
fratelli è rischiosa, soprattutto usando
Alpha-Beta - Servirebbe unulteriore ricerca nel sottoramo per
accertarsi della bontà della valutazione
34Eventi 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?
35ExpectiMin / ExpectiMax
5.39
5.39
0.56
0.3
0.7
0.3
0.7
1.4
2.8
6.5
1.4
1.4
3.5
2.8
6.5
8.3
5.5
8.1
1.4
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.7
0.7
0.7
0.7
0.7
0.7
0.7
0.7
0
5
0
4
3
8
9
8
2
7
7
5
6
9
0
2
8
7
6
5
4
3
2
1
0
1
2
3
4
5
6
7
8
9
0
2
3
4
5
6
7
8
9
0
1
2
3
7
36Giochi multi-player
- Possiamo generalizzare gli algoritmi per giochi
2-player-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
langolo opposto - Esempio 2 3-player Othello
- 3 giocatori muovono a turno
- ogni giocatore deve conquistare il massimo
della scacchiera
37Algoritmo MaxN
- Assunzioni
- I giocatori muovono a turni
- Ogni giocatore mira a massimizzare il proprio
utile - Ogni giocatore è indifferente allutile degli
avversari - Funzione di valutazione
- Restituisce una n-tupla di valori di utilità
attesa, uno per ogni giocatore (player p) allo
stato di gioco s - ltU(p1,s), U(p2 ,s), , U(pn ,s)gt
- 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
38Algoritmo MaxN esempio
Minimax è un caso speciale di MaxN in cui a) N
2, b) la funzione di valutazione restituisce la
tupla ltx, -xgt.
39Algoritmo Paranoid
- Idea gli altri giocatori sono come 1 solo
macro-avversario - 2 giocatori MAX (noi), MIN (avversari)
- Valutazione dei nodi dellalbero
- Quando tocca a MAX si massimizza lutilità di MAX
- Quando tocca ad 1 avversario si minimizza
lutilità di MIN - Paranoid permette di rimuovere lassunzione 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
40Branching 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.
41Alcuni 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)
42La vera sfida
- La vera sfida è competere con luomo ad armi
pari. - Luomo 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?
43Giocatore di Scacchi
Motore Ricerca quiescenza
Elaboratore mosse forzate
Elaboratore euristico sui nodi
Motore minimax alfa-beta pruning
Gestore del livello di taglio
DataBase aperture
Gestore della memoria
DataBase chiusure
Gestore del Tempo