Game Playing Intelligenza Artificiale - Game Playing.

Slides:



Advertisements
Presentazioni simili
- le Medie la Moda la Mediana
Advertisements

Strutture dati per insiemi disgiunti
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
II° Circolo Orta Nova (FG)
Game Playing Intelligenza Artificiale - Game Playing.
____________________
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Frontespizio Economia Monetaria Anno Accademico
Algoritmi e Strutture Dati
I sistemi di riferimento
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
Lez. 3 - Gli Indici di VARIABILITA’
Intelligenza Artificiale Simbolica
Alberi binari di ricerca
Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax.
Dallalgoritmo minimax allalgoritmo alfa-beta. MINIMAX int minimax(stato, livello) { if((livello == max_livello) || condizione_uscita(stato)) { CAMMINO.
Cammini minimi con sorgente singola
Introduzione alla Teoria dei giochi
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Semantiche dei linguaggi di programmazione
Esercitazioni su circuiti combinatori
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Programmazione 1 9CFU – TANTE ore
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
eliana minicozzi linguaggi1a.a lezione2
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
Num / 36 Lezione 9 Numerosità del campione.
Lezione 4 Probabilità.
Intelligenza Artificiale Risoluzione di Problemi
Intelligenza Artificiale
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Radix-Sort(A,d) // A[i] = cd...c2c1
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
INFORMATICA PER IL COMMERCIO ELETTRONICO
Introduzione alla Teoria dei Giochi Parte seconda
Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax.
Il numero più grande Accademia dei Lincei
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
2. Forma estesa (struttura ad albero e matrice dei pagamenti)
Intelligenza Artificiale 1 Gestione della conoscenza lezione 2 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 4) Agostino Poggi.
I giochi con avversario Maria Simi a.a. 2008/2009.

Transcript della presentazione:

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

Game Playing Intelligenza Artificiale - Game Playing

Intelligenza Artificiale - 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 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

Una visione d’insieme Partendo dal Problem Solving Game Playing 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 Intelligenza Artificiale - Game Playing

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

Theory of Games and Economic Behaviour 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 Scommesse & Mondo dei Puzzle Mondo dei Giochi a + giocatori Intelligenza Artificiale - Game Playing

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

Tipologie di Giochi Classificazione 2  effetti della scelta: 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

Tipologie di Giochi Informazione Perfetta 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

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. Intelligenza Artificiale - Game Playing

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

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

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

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

Algoritmo Minimax MAX MIN MAX MIN 3 -4 1 3 -1 -4 3 5 4 1 -4 -1 -5 3 -2 In realtà è depth-first! MAX 3 MIN -4 1 3 MAX -1 -4 3 5 4 1 MIN -4 -1 -5 3 -2 5 4 1 -4 -2 -1 -5 4 3 5 6 1 Intelligenza Artificiale - Game Playing

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) } return best Intelligenza Artificiale - Game Playing

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

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

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

Euristiche per Giochi Funzioni lineari pesate Funzioni non-lineari 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

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 Intelligenza Artificiale - Game Playing

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

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

Alfa-Beta pruning (McCarthy ’56) Si può ottenere la mossa MAX senza osservare esaustivamente l’albero, 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)>a 3) affinchè U(n)>a per ogni nodo n’ successore di n deve valere h(n’)>a 4) QUINDI: appena un successore di n possiede U(n’) ≤ a il sottoalbero restante può essere potato “Stesso” discorso vale per MIN, quindi… Intelligenza Artificiale - Game Playing

Alfa-Beta pruning (2) Nella ricerca nell’albero: Si usano 2 variabili: a = valore maggiore di MAX al tempo attuale b = 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 b; se invece tutti i figli hanno valore minore il massimo diventa b Intelligenza Artificiale - Game Playing

Alfa-Beta Pruning: Pseudo Codice MAX-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 v = utilità del nodo MIN-VALUE (nodo, α, ß) 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 Intelligenza Artificiale - Game Playing

Alfa-Beta pruning: simulazione =- b= =1 b= 1 MAX =- b=1 =1 b= 1 MIN =1 b= =- b=1 MAX 1 2 -3 =- b=1 =1 b= =1 b=2 =1 b=0 =1 b= MIN 1 -1 2 -3 2 1 2 -1 2 4 -3 2 Intelligenza Artificiale - Game Playing

Alfa-Beta pruning Caso 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’ Intelligenza Artificiale - Game Playing

Efficacia della potatura a-b Dipende dall’ordinamento dei nodi Ordinamento 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

Ancora “problemini” Problema dell’orizzonte Eccessiva fiducia nell’euristica Eventi stocastici Branching Factor e potenza di calcolo Intelligenza Artificiale - Game Playing

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

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

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

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 5 4 3 8 9 8 2 7 7 –5 6 9 2 –3 3 5 –6 4 1 3 –1 2 8 9 –8 8 7 2 –2 6 7 3 7 –5 –7 6 4 9 5 –4 1 2 Intelligenza Artificiale - Game Playing

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

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

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

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 Intelligenza Artificiale - Game Playing