intelligenza artificiale marco ernandes email: ernandes@dii.unisi.iternandes@dii.unisi.it gennaio...
Post on 01-May-2015
222 Views
Preview:
TRANSCRIPT
Intelligenza Artificiale
marco ernandesemail: ernandes@dii.unisi.it
Gennaio – Aprile 2006
Intelligenza Artificiale - Game Playing 2/38
Game PlayingGame Playing
Intelligenza Artificiale - Game Playing 3/38
Intelligenza Artificiale - Game Playing 4/38
Cosa vedremoCome 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 5/38
Introduciamo nel dominiodel problema altri agenti
in competizione
Partendo dal Problem Solving
Game Playing
Complichiamo: stati (congiunzioni di fatti), e operatori (legami tra fatti-condizioni e
fatti-effetti, non tra stati)
Planning
Una visione d’insieme
Intelligenza Artificiale - Game Playing 6/38
Esempio 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
Intelligenza Artificiale - Game Playing 7/38
Teoria dei Giochi
Von Neumann & Morgenstern (1944)
Teoria della Decisione Teoria dei Giochi
Analizzare il comportamentoindividuale le cui azioni hannoeffetto diretto
Analizzare il comportamentoindividuale le cui azioni hanno effetto che dipende dalle scelte degli altri
Scommesse & Mondo dei Puzzle
Mondo dei Giochia + giocatori
Theory of Games and Economic Behaviour
Intelligenza Artificiale - Game Playing 8/38
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 9/38
Tipologie 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)
Intelligenza Artificiale - Game Playing 10/38
Tipologie 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
Intelligenza Artificiale - Game Playing 11/38
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
L’uomo agisce in unambiente continuo,
dinamico, sequenziale,a scelte sincroniche e
con informazioneimperfetta.
Intelligenza Artificiale - Game Playing 12/38
Giochi 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! …
Intelligenza Artificiale - Game Playing 13/38
Giochi 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 dell’agente: definire una strategia che raggiunga T(x)=+1
Intelligenza Artificiale - Game Playing 14/38
Giochi 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 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 15/38
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 16/38
Algoritmo Minimax
MAX
MIN
MAX
MIN
-4 -2 0 -1 -4 -5 4 3 -2 -1 3 5 4 6 1 -2 -4
-4 -1 -4 -5 3 -2 -1 5 4 1 -4
-1 -4 3 5 4 1
-4 13
In realtà è depth-first!
3
Intelligenza Artificiale - Game Playing 17/38
Algoritmo Minimax
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
MINIMAX(nodo, agente)
> MAX = true, MIN = false> MINIMAX(X, MAX)
Intelligenza Artificiale - Game Playing 18/38
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 19/38
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 35100 = 2,5 x 10154
In problemi reali non si può usare.
E’ utile solo come base teorica.
Intelligenza Artificiale - Game Playing 20/38
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 21/38
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 22/38
Un “problemino” del taglio
Prof. 0 Prof. 11 Prof. 18
Euristica possibile per la Dama: Vantaggio di pezzi e vantaggio di dame
Posizioni apparentemente buone possono essere perdenti
Intelligenza Artificiale - Game Playing 23/38
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 24/38
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 25/38
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 26/38
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 27/38
Alfa-Beta Pruning: Pseudo CodiceMAX-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,α)
}
return v
if CUTOFF-TEST(nodo) then return EVAL(nodo)
v +
for all figli in SCS(nodo) {
v min(v, MAX-VALUE(figlio, α, ß))
if v ≤ α then return v
ß min(v,ß)
}
return v
MIN-VALUE (nodo, α, ß)
v = utilità del nodo
Intelligenza Artificiale - Game Playing 28/38
Alfa-Beta pruning: simulazione
1 2
MAX
MIN
MAX
MIN
-1
2 4
-3
2
0
Intelligenza Artificiale - Game Playing 29/38
Alfa-Beta pruningCaso Generale
n0
n’
Se n0 è migliore di n’ allora n’ non verrà mai raggiunto durante il gioco e quindi tutto il sottoramo corrispondente può essere potato
Intelligenza Artificiale - Game Playing 30/38
Efficacia della potatura
Dipende dall’ordinamento dei nodiOrdinamento migliore: O(b½m)Ordinamento pessimo: O(bm)Ordinamento medio: O(b¾m)
Negli scacchi: Minimax: n° nodi (d=10) > 100 000 000 000 000 Alfa-beta: n° nodi (d=10) 310 000 000
da 2510 a 256,1
»
Node Ordering
Intelligenza Artificiale - Game Playing 31/38
Ancora “problemini”
Problema dell’orizzonte
Eccessiva fiducia nell’euristica
Eventi stocastici
Branching Factor e potenza di calcolo
»
Intelligenza Artificiale - Game Playing 32/38
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 33/38
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 34/38
Eventi stocastici
Se in un gioco inseriamo la sorte, minimax può 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 35/38
ExpectiMin / ExpectiMax
0.3 0.3
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.7 0.7
–8 –7–6 –5 –4–3 –2–10 1 2 3 45 6 78 90 23 4 5678 9 0 123 7
0 5 0 4 3 8 9 8 2 7 7 –5 6 9 0
3.5 2.8 6.5 8.3 5.5 –1.4 8.1 1.4
2.8 6.5 –1.4 1.4
5.39 0.56
5.39
2
Intelligenza Artificiale - Game Playing 36/38
Branching Factor
Il primo software capace di vincere a Go contro il campione del mondo vincerà 2000000 $!
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 37/38
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).
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 38/38
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 39/38
Giocatore di Scacchi
»
Elaboratoreeuristico sui
nodi Motore minimax
+ alfa-betapruning
Gestore dellivello di taglio
Gestore dellamemoria
Gestore delTempo
DataBaseaperture
DataBasechiusure
Motore Ricerca
quiescenza
Elaboratoremosse forzate
top related