Sei sulla pagina 1di 45

Artificial Intelligence:

Giochi e Strategie

Alfredo Milani thanks to Tom Lenaerts


Sommario

Cosa sono i giochi?


Decisioni ottime nei giochi
– Quale strategia porta al successo?
α-β pruning
Giochi a informazione imperfetta
Giochi che includono un elemento di
chance

AI 1
Pag.2
Cosa sono e perchè studiare i
giochi?

I giochi sono una forma di ambiente multiagente


– Cosa fanno gli altri agenti e come influenzano il nostro successo
– Ambiente multiagente competitivo vs cooperativo
– Ambiente multiagente competitivi danno origine a problemi
avversariali, una sorta di giochi

Perchè studiare i giochi?


– Problemi aperti e difficili
– Facilità di rappresentazione e agenti ristretti a numero limitato
di azioni

AI 1
Pag.3
Relazione tra Giochi e Ricerca
Search – non ci sono avversari
– La soluzione è un metodo (euristico) per trovare un goal
– Tecniche euristiche e CSP possono trovare la soluzione ottima
– Funzione di valutazione: stima del costo dallo stato iniziale al
goal attraverso il nodo considerato
– Esempi: ricerca di percorsi (path planning), schedulazione di
attività
Games – c’è (almeno un) avversario
– La soluzione è una strategia (la strategia specifica la mossa
da fare per ogni possibile mossa dell’avversario).
– Limiti di tempo forzano soluzioni approssimate
– Funzione di valutazione: valuta la “bontà” di una particolare
situazione di gioco
– Esempi: scacchi, dama,Othello, backgammon
AI 1
Pag.4
Tipi di Giochi

AI 1
Pag.5
Giochi: un modello
Due Giocatori: MAX e MIN
MAX muove per primo e giocano a turno finchè il
gioco termina. Il vincitore ottiene un premio, lo
sconfitto una penalità.
Giochi come ricerca:
– Stato Iniziale: Es. Una configurazione della scacchiera
– Funzione successore: lista di coppie(mossa,stato) che
specificano le mosse legali.
– Test di Terminazione: è finito il gioco?
– Funzione di utilità: Da un valore numerico agli stati terminali. Ad
es. nel tic-tac-toe vittoria (+1), sconfitta(-1) e patta (0)
MAX utilizza l’albero di ricerca per decidere la
prossima mossa.
AI 1
Pag.6
Tic-Tac-Toe: albero di gioco parziale

AI 1
Pag.7
Strategie Ottime
Problema: trovare la strategia contingente di gioco
per MAX ipotizzando un avversario MIN infallibile.
Assunzione: entrambi I giocatori giocano in modo
ottimo!!
Dato un albero di gioco, la strategia ottima può
essere determinata usanto il valore minimax di ogni
nodo:

MINIMAX-VALUE(n)=
UTILITY(n) If n is a terminal
maxs ∈ successors(n) MINIMAX-VALUE(s) If n is a max node
mins ∈ successors(n) MINIMAX-VALUE(s) If n is a min node

AI 1
Pag.8
Game Tree: albero di gioco

Propaga in alto: i peggiori (se nodo MAX), i migliori (se nodo MIN)

AI 1
Pag.9
Game Tree: albero di gioco

AI 1
Pag.10
Game Tree: albero di gioco

AI 1
Pag.11
Game Tree: albero di gioco

La decisione minimax

Minimax massimizza il caso-peggiore possibile per MAX.


AI 1
Pag.12
Che accade se MIN non gioca
ottimamente?

Nella definizione di gioco ottimo per MAX


assume che MIN giochi ottimamente: ciò
massimizza il risultato worst-case per MAX.
Ma se MIN non gioca ottimamente, MAX
potrà fare persno meglio del suo “milior
worst case”will do even better. [proven.]

AI 1
Pag.13
Algoritmo MiniMax
function MINIMAX-DECISION(state) returns an action
inputs: state, current state in game
v←MAX-VALUE(state)
return the action in SUCCESSORS(state) with value v
function MAX-VALUE(state) returns a utility value
if TERMINAL-TEST(state) then return UTILITY(state)
v←∞
for a,s in SUCCESSORS(state) do
v ← MAX(v,MIN-VALUE(s))
return v
function MIN-VALUE(state) returns a utility value
if TERMINAL-TEST(state) then return UTILITY(state)
v←∞
for a,s in SUCCESSORS(state) do
v ← MIN(v,MAX-VALUE(s))
return v
AI 1
Pag.14
Proprietà di Minimax

Criterion Minimax

Time O(bm) ☺

Space O(bm) 

AI 1
Pag.15
Giochi Multiplayer
Nel caso di giochi con più giocatori
I valori minimax values diventano
vettori minimax

AI 1
Pag.16
Problemi di ricerca minimax

Il numero degli stati del gioco è


esponenziale nelnumero delle mosse.
– Soluzione: Non esaminare tutti i nodi
– ==> Alpha-beta pruning
– Alpha = il valore della migliore scelta trovata sinora in ogni
punto di scelta lungo un persorso MAX (MAX path)
– Beta = il valore della migliore scelta trovata sinora in ogni
punto di scelta lungo un persorso MIN (MIN path)

Esempio rivisitato secondo Alpha e Beta



AI 1
Pag.17
Esempio Alpha-Beta

Ricerca DF in profondità sino alla prima foglia


Range di valori possibili

[-∞,+∞]

[-∞, +∞]

AI 1
Pag.18
Esempio Alpha-Beta

[-∞,+∞]

[-∞,3]

AI 1
Pag.19
Esempio Alpha-Beta

[-∞,+∞]

[-∞,3]

AI 1
Pag.20
Esempio Alpha-Beta

[3,+∞]

[3,3]

AI 1
Pag.21
Esempio Alpha-Beta

[3,+∞]
This node is worse
for MAX

[3,3] [-∞,2]

AI 1
Pag.22
Esempio Alpha-Beta

[3,14] ,

[3,3] [-∞,2] [-∞,14]

AI 1
Pag.23
Esempio Alpha-Beta

[3,5] ,

[3,3] [−∞,2] [-∞,5]

AI 1
Pag.24
Esempio Alpha-Beta

[3,3]

[3,3] [−∞,2] [2,2]

AI 1
Pag.25
Esempio Alpha-Beta

[3,3]

[3,3] [-∞,2] [2,2]

AI 1
Pag.26
Algoritmo Alpha-Beta
function ALPHA-BETA-SEARCH(state) returns an action
inputs: state, current state in game
v←MAX-VALUE(state, - ∞ , +∞)
return the action in SUCCESSORS(state) with value v

function MAX-VALUE(state,α , β) returns a utility value


if TERMINAL-TEST(state) then return UTILITY(state)
v←-∞
for a,s in SUCCESSORS(state) do
v ← MAX(v,MIN-VALUE(s, α , β))
if v ≥ β then return v
α ← MAX(α ,v)
return v

AI 1
Pag.27
Algoritmo Alpha-Beta

function MIN-VALUE(state, α , β) returns a utility value


if TERMINAL-TEST(state) then return UTILITY(state)
v←+∞
for a,s in SUCCESSORS(state) do
v ← MIN(v,MAX-VALUE(s, α , β))
if v ≤ α then return v
β ← MIN(β ,v)
return v

AI 1
Pag.28
Potatura (pruning) Alpha-beta
Si consideri un nodo n in
un punto dell’albero
Se il giocatore ha una
scelta migliore in
– un node genitore di n
– o in un qualsiasi punto di
scelta superiore
n non sara mai
raggiunto in nessun
gioco.
Per cui quando c’è
sufficente conoscenza su
n esso può essere
“potato”.
AI 1
Pag.29
Commenti finali sull’Alpha-Beta Pruning

La potatura non influenza il risultato finale


Interi sottoalberi possono essere tagliati.
Un buon ordinamento delle mosse miglioca l’efficacia
dei tagli
Con “ordinamento perfetto,” la complessità in tempo
è O(bm/2)
– Branching factor della sqrt(b) !!
– L’Alpha-beta pruning può guardare in avanti il doppio di minimax
nella stessa quantitò di tempo
Stati ripetuti sono ancora possibili
– Tenerli in memoria = tavole di trasposizione
AI 1
Pag.30
Giochi a informazione imperfetta

Minimax e l’alpha-beta pruning richiedono


troppe valutazioni nodo-foglia.
Può risultare intrattabile in un ragionevole
intervallo di tempo.
SHANNON (1950):
– Cut off anticipato della ricerca(sostituisce il TERMINAL-TEST
con un CUTOFF-TEST)
– Applicare una funzione di valutazione euristica EVAL (al
posto della funzione di utilità alpha-beta)

AI 1
Pag.31
Cut off / Taglio della ricerca

Modifica:
– if TERMINAL-TEST(state) then return UTILITY(state)
into
– if CUTOFF-TEST(state,depth) then return EVAL(state)

Introduce un limite di profondità dssato alla


ricerca
– È selezionato in modo che la quantitò di tempo non superi
quella ammessa dalle regole del gioco.
Quando scatta il cutoff, avviene la valutazione.

AI 1
Pag.32
Euristica EVAL
Idea: produrre una stima della utilità attesa
del gioco per una data posizione.
Le prestazioni dipendono dalla qualità della
EVAL.
Requisiti:
– EVAL dovrebbe ordinare I nodi terminali nello stesso modo
di UTILITY.
– Il calcolo non dovrebbe impiegare troppo tempo.
– Per I nodi non terminali la EVAL dovrebbe essere
strettamente correlata con le reali possibilitaà di vittoria.
Utile solo per stati “quiescenti” (senza grossi
sconvolgimenti futuri)
AI 1
Pag.33
Euristica EVAL. Esempio

Eval(s) = w1 f1(s) + w2 f2(s) + … + wnfn(s)


AI 1
Pag.34
Euristica EVAL. Esempio

La sommatoria ipotizza
l'indipendenza
Eval(s) = w1 f1(s) + w2 f2(s) + … + wnfn(s)
AI 1
Pag.35
Difficoltà Euristiche

Euristica che conta i pezzi vinti

AI 1
Pag.36
Effetto orizzonte
Profondità fissa:
La ricerca non
riesce a considerare
alcune mosse

AI 1
Pag.37
Giochi con chance

Mosse possibili(5-10,5-11), (5-11,19-24),(5-


10,10-16) and (5-11,11-16)

AI 1
Pag.38
Giochi con chance

Nodi di tipo chance

Mosse possibili(5-10,5-11), (5-11,19-24),(5-10,10-


16) and (5-11,11-16)
[1,1], [6,6] chance 1/36, tutte le altre chance 1/18
AI 1
Pag.39
Giochi con chance

[1,1], [6,6] chance 1/36, tutte le altre chance 1/18


Non può calcolare un valore minimax definito, ma solo il valore
atteso

AI 1
Pag.40
Valore minimax atteso

EXPECTED-MINIMAX-VALUE(n)=
UTILITY(n) If n is a terminal
maxs ∈ successors(n) MINIMAX-VALUE(s) If n is a max
node
mins ∈ successors(n) MINIMAX-VALUE(s) If n is a max
node
∑s ∈ successors(n) P(s) . EXPECTEDMINIMAX(s) If n is a chance
node

Queste equazioni possono essere propagate


all’indietro sino alla radice dell’albero di gioco

AI 1
Pag.41
Valutazione della posizione con nodi
chance

Albero di gioco a sinistra, A1 vince


Albero di gioco a destra, A2 vince
Il risultato di una funzione di valutazione può cambiare quando
I valori vengono scalati in modo differente
differently.
Il comportamento è preservato solo da una trasformazione di
EVAL lineare positiva.
AI 1
Pag.42
Discussione

Minimax assume che l’labero di sinistra sia migliore


di quello di destra, però …
– Restituisce una distribuzione di probabilità sui valori possibili
– Calcolo costoso

AI 1
Pag.43
Discussione

Utilità dell’espansione dei nodi


– Espandere solo quei nodi che conducono a mosse
significativamente migliori

È necessario meta-ragionamento

AI 1
Pag.44
Sommario

“Games are fun (and dangerous)”


I giochi contengono molti aspetti
importanti della IA
– Perfezione non ottenibile -> approssimazione
– Vincoli di incertezza nell’assegnamento di valori
agli stati

AI 1
Pag.45

Potrebbero piacerti anche