1 / 43

Intelligenza Artificiale

Gennaio – Aprile 2007. Intelligenza Artificiale. marco ernandes email: ernandes@dii.unisi.it. 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

gyula
Download Presentation

Intelligenza Artificiale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gennaio – Aprile 2007 Intelligenza Artificiale marco ernandes email: ernandes@dii.unisi.it

  2. Game Playing

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

  4. Una visione d’insieme 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

  5. 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  effectREGALO • azione butta_spazzatura: • effect PULITO  not MANI_PULITE • azione aspira: • effect PULITO  not SILENZIO

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

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

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

  9. Tipologie di Giochi

  10. 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 un ambiente continuo, dinamico, sequenziale, a scelte sincroniche e con informazione imperfetta.

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

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

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

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

  15. -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 -5 4 3 -2 -1 3 5 4 6 1 -2 -4 Algoritmo Minimax In realtà è depth-first! MAX 3 MIN MAX MIN

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

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

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

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

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

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

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

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

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

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

  26. Alfa-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, α, ß) ) ifv ≥ ßthen returnv α max(v,α) } returnv MAX-VALUE(nodo, α, ß) v = utilità del nodo MIN-VALUE (nodo, α, ß) ifCUTOFF-TEST(nodo) then return EVAL(nodo) v +  for all figli in SCS(nodo) { v min(v, MAX-VALUE(s, α, ß)) if v≤αthen returnv ß min(v,ß) } return v

  27. α=- ß= α = - ß =  α=- ß= α=1 ß= α=- ß= α=- ß=1 α=1 ß= α=- ß= α=- ß=1 α=1 ß= Alfa-Beta pruning: simulazione α=1 ß= 1 MAX α=- ß =1 0 1 MIN α=1 ß= 1 2 -3 MAX 0 α=1 ß=2 α=1 ß=0 α=- ß=1 α=1 ß= α=1 ß= MIN -3 0 1 -1 2 2 0 1 2 -1 2 -3 2 4

  28. Alfa-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’

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

  30. Altri problemi da affrontare • Problema dell’orizzonte • Eccessiva fiducia nell’euristica • Eventi stocastici • Giochi multiplayer • Branching Factor e potenza di calcolo

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

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

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

  34. ExpectiMin / 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.7 0.3 0.7 0.3 0.7 0.3 0.7 0.3 0.7 0.3 0.7 0.3 0.7 0.3 0.7 0 5 0 4 3 8 9 8 2 7 7 –5 6 9 0 2 0 –3 3 5 0 –6 4 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

  35. Giochi 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 l’angolo opposto • Esempio 2: “3-player Othello” • 3 giocatori muovono a turno • ogni giocatore deve “conquistare” il massimo della scacchiera

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

  37. (7,3,6) 1 (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) (3,1,8) (1,7,2) (5,6,3) (6,5,4) (8,5,4) (7,3,6) (4,2,7) Algoritmo MaxN: esempio Minimax è un caso speciale di MaxN in cui: a) N = 2, b) la funzione di valutazione restituisce la tupla <x, -x>.

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

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

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

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

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

More Related