Ricerca con avversari



Похожие документы
hnefatafl Hnefatafl Il gioco da tavolo del Re Regole - massimiliano.dellarovere[su]gmail.com -

SPECTER OPS. L'obiettivo del giocatore agente è quello che il suo agente completi 3 su 4 missioni obiettivo qualsiasi

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Intelligenza Artificiale

Implementazione del gioco del Bantumi Corso di Intelligenza Artificiale 2012

Quando troncare uno sviluppo in serie di Taylor

Corrispondenze e funzioni

Parliamo un po di più di bridge. La filosofia del gioco. Nico Andriola

Introduzione. Preparazione. 4) Ordina i titoli azionari di ogni Compagnia in una pila separata vicino alla plancia di gioco.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

VALORE DELLE MERCI SEQUESTRATE

4 3 4 = 4 x x x 10 0 aaa

Testo alla base del Pitgame redatto dal prof. Yvan Lengwiler, Università di Basilea

Segui passo passo le istruzioni e potrai giocare le tue sfide online. Puoi già capirlo, è facile, divertente e eccitante.

Teoria dei Giochi non Cooperativi

Lezione 8. La macchina universale

LE FUNZIONI A DUE VARIABILI

Capitolo 2. Operazione di limite

risulta (x) = 1 se x < 0.

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Dimensione di uno Spazio vettoriale

Metodi e Modelli Matematici di Probabilità per la Gestione

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Costruite un grafo che rappresenti la situazione del torneo (in modo che siano rappresentate le squadre e le partite). Che tipo di grafo ottenete?

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

CARTE. Regolamento Belote. Regole del gioco: Determinazione del seme di briscola (Belote classico):

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Vincere a testa o croce

Teoria dei Giochi. Anna Torre

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Esempi di algoritmi. Lezione III

1 Giochi a due, con informazione perfetta e somma zero

Il profiling dei disoccupati basato sull occupabilità: un alternativa di targeting in assenza di evidenza sull efficacia degli interventi

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

GIUSTIFICARE LE RISPOSTE. Non scrivere la soluzione di esercizi diversi su uno stesso foglio.

ALGEBRA DELLE PROPOSIZIONI

Determinare la grandezza della sottorete

Nel gioco Mercurius, i giocatori interpretano i ruoli di potenti e ricchi borghesi nell Olanda del XVII secolo, il cui obiettivo è di moltiplicare la

Computational Game Theory

GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO

Funzioni in C. Violetta Lonati

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

La distribuzione Normale. La distribuzione Normale

Attività 9. La città fangosa Minimal Spanning Trees

( x) ( x) 0. Equazioni irrazionali

Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio giochirari@giochirari.

Studio di funzioni ( )

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Probabilità discreta

1. Limite finito di una funzione in un punto

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

Capitolo 4 Probabilità

GIOCHI MINIBASKET. 1) Il gioco dei nomi. 2) Il gambero

OSSERVAZIONI TEORICHE Lezione n. 4

Obiettivo del gioco. Contenuto del gioco: Dedico questo gioco alle mie sorelle Ilona, Kasia e Mariola. Adam Kałuża

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI

Corso di Matematica per la Chimica

Percorsi, strategie e geometrie in gioco Complementi e spunti di lavoro Primaria e Secondaria Inferiore

Elementi di Psicometria con Laboratorio di SPSS 1

REGOLAMENTO HOLD EM SHOWDOWN

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

VINCERE AL BLACKJACK

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Cluster. Vicino alla temperatura critica gli spin formano grandi gruppi (cluster)

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

ESERCITAZIONE novembre 2012

Calcolo delle Probabilità

Come Il Lavoro Riguarda Suoi Sussidi

STATISTICA IX lezione

Elementi di Psicometria con Laboratorio di SPSS 1

9. Urti e conservazione della quantità di moto.

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

IL RISCHIO D IMPRESA ED IL RISCHIO FINANZIARIO. LA RELAZIONE RISCHIO-RENDIMENTO ED IL COSTO DEL CAPITALE.

Database. Si ringrazia Marco Bertini per le slides

Basi di matematica per il corso di micro

Analisi e diagramma di Pareto

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

Database 1 biblioteca universitaria. Testo del quesito

Capitolo 3: Cenni di strategia

Esercizi Capitolo 6 - Alberi binari di ricerca

BLACK JACK. Come si gioca

Polli e conigli. problemi Piano cartesiano. Numeri e algoritmi Sistemi e loro. geometrica. Relazioni e funzioni Linguaggio naturale e

Il vantaggio comparato. Il vantaggio comparato. Il vantaggio comparato

CAPITOLO I. Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Programmazione Dinamica

Scacchi Polimi insieme con Terna Sinistrorsa, sono lieti di presentare i primi tornei studenteschi di scacchi, nell ambito dei Poligames 2015!!!

Regole del gioco UNO CONTENUTO DELLA CONFEZIONE: 108 Carte così distribuite: 19 Carte di colore Rosso che vanno dallo 0 al 9

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI

Ricerca Automatica. Esercitazione 3. Ascensore. Ascensore. Ascensore

Corso di Fisica generale

Транскрипт:

Ricerca con avversari Roberto Tagliaferri Dipartimento di Informatica Università di Salerno ( Sa ) 84084 Fisciano rtagliaferri@unisa.it

Indice I giochi Decisioni ottime nei giochi L algoritmo minimax Potatura alfa-beta Ordinamento delle mosse Decisioni imperfette in tempo reale Funzioni di valutazione Tagliare la ricerca Potatura in avanti Ricerca e ricerca in tabelle

I giochi Qui trattiamo gli ambienti competitivi, in cui gli obiettivi degli agenti sono in conflitto, dando origine a problemi di ricerca con avversari (adversarial search), più spesso indicati con il nome di giochi. La teoria matematica dei giochi, una branca dell'economia, considera ogni ambiente multiagente come un gioco, indipendentemente dal fatto che I'interazione sia cooperativa o competitiva, a patto che l'influenza di ogni agente sugli altri sia "significativa". Nell'IA i giochi più comuni appartengono a una categoria piuttosto specializzata, quella che i teorici chiamano giochi a somma zero con informazione perfetta, a turni e a due giocatori (come gli scacchi) Nella nostra terminologia questo significa ambienti deterministici e completamente osservabili, in cui due agenti agiscono alternandosi e in cui i valori di utilità, alla fine della partita, sono sempre uguali ma di segno opposto. Ad esempio, se un giocatore vince una partita a scacchi, I'altro deve necessariamente perderla. E proprio quest'opposizione delle funzioni di utilità dei due agenti che ci fa parlare di "avversari".

I giochi

I giochi Cominceremo con la definizione di mossa ottima e di un algoritmo per trovarla. Esamineremo poi le tecniche per scegliere una buona mossa quando il tempo a disposizione è limitato. La potatura ci permette di ignorare porzioni dell'albero di ricerca che non influiscono sulla scelta finale, le funzioni di valutazione euristiche ci consentono di approssimare l'utilità reale di uno stato senza eseguire una ricerca completa

I giochi Un gioco può essere definito come un problema di ricerca con i seguenti componenti: S 0 : lo stato iniziale, che specifica come è configurato il gioco in partenza Giocatore(s), definisce il giocatore a cui tocca muovere in uno stato AZIONI(s): restituisce I'insieme delle mosse lecite in uno stato

I giochi RISULTATO(s, a): il modello di transizione, che definisce il risultato di una mossa TEST-TERMINAZIONE(s): un test di terminazione, che restituisce vero se la partita è finita e falso altrimenti. Gli stati che fanno finire la partita sono chiamati stati terminali. UTILITÀ(s, p): una funzione utilità (chiamata anche funzione obiettivo o funzione di payoff), che definisce il valore numerico finale per un gioco che termina nello stato terminale s per un giocatore p.

I giochi Negli scacchi i possibili risultati sono vittoria, sconfitta o pareggio, e i valori corrispondenti +1, 0 o 1/2. Gli scacchi sono un gioco a somma zero perché ogni partita ha un payoff di 0+1, l+0 o 1/2+1/2. Sarebbe meglio utilizzare il termine "somma costante", ma tradizionalmente si parla di "somma zero", che è sensato se si immagina che ogni giocatore sia inizialmente penalizzato di un valore 1/2

I giochi Lo stato iniziale, la funzione AZIONI e la funzione RISULTATO definiscono l'albero di gioco, un albero in cui i nodi sono stati del gioco e gli archi sono mosse. Inizia MAX che si alterna ad ogni mossa con MIN Il numero associato a ciascun nodo foglia indica il valore di utilità di quello stato terminale dal punto di vista di MAX; i valori alti sono buoni per MAX e cattivi per MIN

I giochi Per il gioco del tic-tac-toe I'albero è relativamente piccolo, meno di 9! = 362.880 nodi terminali, mentre per gli scacchi ci sono oltre 10 40 nodi, perciò è meglio pensare all'albero di gioco come a un costrutto teorico che non possiamo realizzare nel mondo fisico. Utilizziamo il termine albero di ricerca per indicare un albero che viene sovrapposto all'albero di gioco completo, e che esamina un numero di nodi sufficiente per consentire a un giocatore di determinare quale mossa fare.

I giochi

Decisioni ottime nei giochi In una ricerca con avversari, MIN può dire la sua: MAX quindi deve trovare una strategia contingente che specifichi la sua mossa nello stato iniziale, quindi le mosse in tutti gli stati possibili risultanti dalla prima mossa di MIN, poi le mosse negli stati risultanti dalle mosse di MIN in risposta a quelle, e così via. E un processo analogo a quello dell'algoritmo AND-OR con MAX che assume il ruolo di OR e MIN equivalente ad AND Una strategia ottima porta a un risultato che è almeno pari a quello di qualsiasi altra strategia, assumendo che si stia giocando contro un avversario infallibile.

I giochi

L algoritmo minimax L algoritmo minimax calcola la decisione minimax per lo stato corrente usando un semplice calcolo ricorsivo del valore minimax di ogni stato successore, implementando direttamente le equazioni che lo definiscono. La ricorsione percorre tutto I'albero sino alle foglie, quindi i valori minimax sono "portati su (bachedup) attraverso I'albero durante la fase di ritorno.

I giochi

Potatura alfa-beta Figura 5.5 Fasi del calcolo della decisione ottima per l'albero di gioco della Figura 5.2: in ogni punto viene indicato l'intervallo dei possibili valori di ogni nodo. Il valore della radice e di conseguenza la decisione minimax sono indipendenti dal valore delle foglie potate

Potatura alfa-beta La potatura alfa-beta può essere applicata ad alberi di qualunque profondità, e spesso invece di foglie è possibile potare interi sottoalberi Possiamo quindi potare un qualsiasi nodo n non appena abbiamo raccolto abbastanza informazioni (esaminando alcuni dei suoi discendenti) da raggiungere la conclusione che c'è una scelta migliore m a livello del nodo padre o di un qualunque nodo precedente Infatti: n non sarà mai raggiunto in tutta la partita.

Potatura alfa-beta minimax è una ricerca in profondità, per cui in ogni momento dobbiamo considerare solo i nodi lungo un singolo cammino dell'albero. La potatura alfa-beta prende il suo nome dai seguenti due parametri che descrivono i limiti sui valori "portati su" in un qualsiasi punto del cammino: = il valore della scelta migliore (quella con valore più alto) per MAX che abbiamo trovato sin qui in un qualsiasi punto di scelta lungo il cammino; = il valore della scelta migliore (quella con valore più basso) per MIN che abbiamo trovato sin qui in un qualsiasi punto di scelta lungo il cammino.

Potatura alfa-beta La ricerca alfa-beta aggiorna i valori di e a mano a mano che procede e pota i rami restanti che escono da un nodo (ovvero, fa terminare le chiamate ricorsive) non appena determina che il valore del nodo è peggiore di quello di per MAX o, rispettivamente, di per MIN.

I giochi

Ordinamento delle mosse L efficacia della potatura alfa-beta dipende fortemente dall'ordine in cui sono esaminati gli stati. Se questo può essere fatto, risulta che per scegliere la mossa migliore la ricerca alfa-beta deve esaminare solo O(b m/2 ) nodi, invece degli O(b m ) richiesti da minimax. Questo significa che il fattore di ramificazione effettivo diventa b invece di b: nei caso degli scacchi, 6 invece di 35. Per esprimere in un altro modo lo stesso risultato, si può dire che la ricerca alfa-beta può risolvere un albero profondo circa il doppio di quello che può risolvere minimax nello stesso lasso di tempo.

Decisioni imperfette in tempo reale L algoritmo minimax genera l'intero spazio di ricerca del gioco, mentre quello alfa-beta ci permette di potarne una buona parte. Comunque, alfa-beta deve condurre la ricerca fino agli stati terminali, almeno per una porzione dello spazio di ricerca. Questa profondità. normalmente non è gestibile in tempo ragionevole Claude Shannon (1950) proponeva che i programmi "tagliassero" la ricerca prima di raggiungere le foglie applicando una funzione di valutazione euristica agli stati, di fatto trasformando i nodi non terminali in foglie.

Decisioni imperfette in tempo reale Si può modificare minimax o alfa-beta in due modi: sostituendo la funzione di utilità con una funzione di valutazione euristica EVAL, che fornisce una stima dell'utilità della posizione raggiunta, e rimpiazzando il test di terminazione con un test di taglio (cutoff test), che decide quando applicare EVAL.

Decisioni imperfette in tempo reale Abbiamo la funzione minimax euristica per lo stato s e la profondità massima d:

Funzioni di valutazione Una funzione di valutazione restituisce una stima del guadagno atteso in una determinata posizione (analogia con le funzioni euristiche per la stima della distanza dall obiettivo) Caratteristiche della funzione di valutazione: la funzione di valutazione dovrebbe ordinare gli stati terminali nello stesso modo della vera funzione di utilità: gli stati che sono vittorie devono avere una valutazione migliore dei pareggi, che a loro volta devono essere migliori delle sconfitte. i calcoli non dovrebbero richiedere troppo tempo per gli stati non terminali, la funzione di valutazione dovrebbe avere una forte correlazione con la probabilità reale di vincere la partita.

Funzioni di valutazione Se Ia ricerca deve essere interrotta in stati non terminali, I'algoritmo sarà necessariamente incerto sui risultati finali di quegli stati. Questo tipo di incertezza deriva da limiti computazionali, non dalla mancanza di informazioni. Data la quantità limitata di calcoli che la funzione di valutazione può svolgere in un determinato stato, il meglio che può fare è fornire una stima del risultato finale.

Funzioni di valutazione La maggior parte delle funzioni di valutazione ragiona in base alle caratteristiche di uno stato: i.e., negli scacchi, avremmo come caratteristiche: il numero di pedoni bianchi, il numero di pedoni neri, di regine bianche, di regine nere e così via.

Funzioni di valutazione Le caratteristiche, prese insieme, definiscono categorie o classi di equivalenza: gli stati di una categoria hanno lo stesso valore per tutte le caratteristiche. i.e., una categoria contiene tutti gli stati finali con due pedoni contro un pedone. In generale, ogni categoria potrà contenere stati che portano alla vittoria, altri che portano al pareggio e altri ancora alla sconfitta.

Funzioni di valutazione La funzione di valutazione non può sapere quali sono questi stati, ma può restituire un singolo valore che riflette la proporzione di stati che portano a ogni risultato. Se la nostra esperienza suggerisce che il 72% degli stati nella categoria di due pedoni contro un pedone conducano a una vittoria (utilità +1); il 20 % a una sconfitta (0): I'8 % a un pareggio (1/2), allora una valutazione ragionevole per gli stati appartenenti a tale categoria è il valore atteso: (0,72 x 1) + (0,20 x 0) + (0,08 x l/2) = 0,76.

Funzioni di valutazione Come con gli stati terminali, non è neppure necessario che la funzione di valutazione restituisca effettivamente i valori attesi, purché non venga alterato l'ordinamento degli stati. I libri di scacchi per principianti, ad esempio, forniscono un valore del materiale approssimativo per ogni pezzo: ogni pedone vale 1, un cavallo o alfiere 3, una torre 5 e la regina 9, Altre caratteristiche come una buona disposizione dei pedoni o la difesa del re potrebbero valere mezzo pedone

Funzioni di valutazione Questo tipo di valutazione è chiamata funzione lineare pesata, perché può essere espressa come dove ogni w i è un peso (weight) e ogni f i è una caratteristica (feature) di una posizione Negli scacchi f i è il numero di pezzi di un certo tipo e w i il suo valore (1 per i pedoni, 3 per gli alfieri ecc.)

Funzioni di valutazione Sommare i valori delle caratteristiche sembra ragionevole, ma in effetti presume che si accetti l'ipotesi che il contributo di ogni caratteristica sia indipendente dal valore delle altre. Ad esempio, assegnare il valore 3 a un alfiere non tiene conto del fatto che questi pezzi sono più potenti nei finali delle partite, quando hanno più spazio per muoversi. Per questa ragione, i programmi più recenti per gli scacchi e altri giochi utilizzano combinazioni non lineari di caratteristiche: ad esempio, una coppia di alfieri potrebbe valere leggermente più del doppio di un alfiere singolo, che a sua volta avrà più valore nel finale

Funzioni di valutazione

Ricerca e ricerca in tabelle Un programma di scacchi non inizia una partita considerando un albero di un miliardo di stati del gioco, solo per determinare la prima mossa Molti programmi di scacchi utilizzano ricerche in tabelle, invece di cercare aperture e chiusure. Per le aperture, il computer si affida per lo più all'esperienza e alle competenze dell'uomo. I migliori consigli di grandi esperti su come effettuare ogni apertura sono copiati dai libri e inseriti in tabelle destinate all'uso da parte de1 computer.

Ricerca e ricerca in tabelle Tuttavia, i computer possono anche raccogliere statistiche da un database di partite giocate nel passato, per determinare quali sequenze di apertura portano più spesso a una vittoria. Nelle prime mosse ci sono poche scelte, e perciò molti commenti degli esperti e partite passate su cui basarsi. Solitamente dopo dieci mosse ci si ritrova in una posizione incontrata raramente nel passato, e il programma deve passare dalla ricerca nella tabella alla ricerca pura.

Ricerca e ricerca in tabelle Verso la conclusione della partita ci sono ancora meno posizioni possibili, e perciò più possibilità di affidarsi alle tabelle. Ma qui è il computer I'esperto: I'analisi al computer delle chiusure supera le possibilità dell'uomo. Una persona può dirvi la strategia generale per giocare una chiusura re-e-torre-contro-re (KRK) (King-Rook-King): ridurre la possibilità di movimento del re avversario costringendolo contro un lato della scacchiera, usando il proprio re per evitare che l'avversario possa scappare

Ricerca e ricerca in tabelle Altre chiusure, come re, alfiere e cavallo contro re (KBNK) (King-Bishop-kNight-King, sono difficili da padroneggiare e non dispongono di una strategia descrivibile in breve. Un computer può risolvere interamente la chiusura producendo una politica che associa a ogni possibile stato la migliore mossa possibile. Possiamo quindi limitarci a cercare la mossa migliore in una tabella, anziché ricalcolarla da zero

Ricerca e ricerca in tabelle Che dimensioni avrà la tabella KBNK? Ci sono 462 modi per disporre due re sulla tastiera evitando che siano adiacenti tra loro. Una volta posizionati i re, ci sono 62 caselle vuote per I'alfiere, 6l per il cavallo e due possibili giocatori che hanno la prossima mossa, in tutto ci sono soltanto 462 x 62 x 6l x 2 = 3.494.568 possibili posizioni.

Ricerca e ricerca in tabelle Alcune di queste sono posizioni di scacco matto, e vanno contrassegnate come tali nella tabella. Poi si esegue una ricerca minimax retrograda: si invertono le regole degli scacchi per fare "retro mosse" anziché mosse reali. Qualsiasi mossa del Bianco che, a prescindere dalla mossa con cui risponda il Nero, termini in una posizione indicata come vittoria, deve anch'essa essere una vittoria. Si continua questa ricerca finché tutte Ie 3.494.568 posizioni sono risolte come vittorie, sconfitte o pareggi, ottenendo così una tabella infallibile per tutte le chiusure KBNK.

Ricerca e ricerca in tabelle Alcuni risultati interessanti: Ken Thompson (1986, 1996) e Lewis Stiller (1992, 1996) hanno risolto tutte le chiusure del gioco degli scacchi con un massimo di cinque pezzi e alcune con sei pezzi. Stiller ha scoperto un caso in cui esisteva uno scacco matto forzato, ma richiedeva 262 mosse Marc Bourzutschky e Yakov Konoval (Bourzutschky, 2006) hanno risolto tutte le chiusure con sei pezzi senza pedoni e alcune con sette pezzi. esiste una chiusura KQNKRBN (re-regina-cavallo contro re-torre-alfiere-cavallo) che con la migliore strategia richiede 517 mosse fino a una cattura, che poi porta a uno scacco matto