43
Intelligenza Artificiale marco ernandes email: [email protected] Gennaio – Aprile 2007

Intelligenza Artificiale

  • Upload
    gyula

  • View
    53

  • Download
    1

Embed Size (px)

DESCRIPTION

Gennaio – Aprile 2007. Intelligenza Artificiale. marco ernandes email: [email protected]. Game Playing. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Intelligenza Artificiale

Intelligenza Artificiale

marco ernandesemail: [email protected]

Gennaio – Aprile 2007

Page 2: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 2/42

Game PlayingGame Playing

Page 3: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 3/42

Page 4: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 4/42

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

Page 5: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 5/42

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

Page 6: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 6/42

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

Page 7: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 7/42

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

Page 8: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 8/42

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..

Page 9: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 9/42

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)

Page 10: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 10/42

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

Page 11: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 11/42

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.

Page 12: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 12/42

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! …

Page 13: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 13/42

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

Page 14: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 14/42

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à)

Page 15: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 15/42

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

Page 16: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 16/42

Algoritmo Minimax

MAX

MIN

MAX

MIN

In realtà è depth-first!

3

-4 3 1

1 -4 3 5 4 1

-4 1 -4 -5 3 -2 -1 5 4 1 -4

-4 1 6 1 4 3 -1 3 4 6 -2 -4-4 -5 5 1-2

Page 17: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 17/42

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)

Page 18: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 18/42

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à.

Page 19: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 19/42

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.

Page 20: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 20/42

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

Page 21: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 21/42

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?

Page 22: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 22/42

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

Page 23: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 23/42

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

Page 24: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 24/42

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

Page 25: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 25/42

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…

Page 26: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 26/42

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 ß

Page 27: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 27/42

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(s, α, ß))

if v ≤ α then return v

ß min(v,ß)

}

return v

MIN-VALUE (nodo, α, ß)

v = utilità del nodo

Page 28: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 28/42

αß

Alfa-Beta pruning: simulazione

1 2

MAX

MIN

MAX

MIN

αß

αß

αß

αß

αß

αß

-1

αß

αß

αß

2 4

1 αß

1

-1

1

2

2

1 αß

αß

αß

αß

-3

-3

-3

αß

2

2 αß

0

0

0 αß

0

Page 29: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 29/42

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

Page 30: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 30/42

Efficacia della potatura α-ß

Dipende dall’ordinamento 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!

Page 31: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 31/42

Altri problemi da affrontare

Problema dell’orizzonte

Eccessiva fiducia nell’euristica

Eventi stocastici

Giochi multiplayer

Branching Factor e potenza di calcolo

»

Page 32: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 32/42

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!

»

Page 33: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 33/42

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

»

Page 34: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 34/42

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?

»

Page 35: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 35/42

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

Page 36: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 36/42

Giochi multi-playerPossiamo 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 l’angolo opposto

Esempio 2: “3-player Othello” 3 giocatori muovono a turno ogni giocatore deve “conquistare” il massimo della scacchiera

QuickTime™ e undecompressore TIFF (Non compresso)

sono necessari per visualizzare quest'immagine.

Page 37: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 37/42

Algoritmo MaxN

Assunzioni: I giocatori muovono a turni Ogni giocatore mira a massimizzare il proprio utile Ogni giocatore è indifferente all’utile 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 <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

Page 38: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 38/42

Algoritmo MaxN: esempio

11

22

3333

22

33 33

(7,3,6)

(7,3,6)

(3,1,8)

(6,5,4)

(7,3,6)

(1,7,2)

(1,7,2)

(2,8,1)

(1,7,2) (5,6,3) (6,5,4) (8,5,4) (7,3,6) (4,2,7) (3,1,8)

Minimax è un caso speciale di MaxN in cui: a) N = 2, b) la funzione di valutazione restituisce la tupla <x, -x>.

Page 39: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 39/42

Algoritmo ParanoidIdea: 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

Page 40: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 40/42

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.

»

Page 41: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 41/42

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)

»

Page 42: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 42/42

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?

Page 43: Intelligenza Artificiale

Intelligenza Artificiale - Game Playing 43/42

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