Algoritmi e giochi combinatori

Documenti analoghi
Teoria dei giochi. 2. Forma estesa (struttura ad albero e matrice dei pagamenti) Slides di Teoria dei Giochi, Vincenzo Cutello 1

I giochi con avversario. I giochi con avversario. Introduzione. Giochi come problemi di ricerca. Il gioco del NIM.

I giochi con avversario. I giochi con avversario. Introduzione. Il gioco del NIM. Il gioco del NIM. Giochi come problemi di ricerca

I giochi con avversario. I giochi con avversario. Sommario. Il gioco del NIM. Il gioco del NIM. Giochi come problemi di ricerca

Ricerca con avversari: GIOCHI

La strategia MiniMax e le sue varianti

GIOCHI. L'intelligenza artificiale considera giochi con le seguenti proprietà: 1) Sono giochi a due giocatori in cui le mosse sono alternate;

Intelligenza Artificiale. Lezione 15. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.

... Max. Max. ... Min ... Albero di gioco

I giochi con avversario. Maria Simi a.a. 2016/2017 Credits: Alessio Micheli Russell-Norvig

L'intelligenza artificiale considera giochi con le seguenti proprietà: 1) Sono giochi a due giocatori in cui le mosse sono alternate;

GIOCHI. Ambiente multi-agente presenza di un avversario. avversario economia anche se esiste una competizione di calcio fra robot

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

Alfa. Il GO tra gioco, matematica ed economia. Alla ricerca della strategia ottimale

. Max. Max. Min. Min Albero di gioco

Giochi a due giocatori

Intelligenza Artificiale. Risoluzione dei Problemi

INTRODUZIONE ALLA TEORIA DEI GIOCHI

Problemi, istanze, soluzioni

Algoritmi di Ricerca

Giochi in forma estesa Esempi. In Action with Math. Competizione e Strategia: Teoria dei Giochi. Giulia Bernardi, Roberto Lucchetti.

Intelligenza Artificiale. Lezione 6bis. Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 0

Intelligenza artificiale

In Action With Math. Competizione e Strategia - Teoria dei Giochi. Roberto Lucchetti - Giulia Bernardi. Politecnico di Milano

Cercare il percorso minimo Ant Colony Optimization

Minimo albero di copertura

Alberi ed Alberi Binari

I giochi con avversario

Algoritmi e Strutture Dati. HeapSort

Esercizi di Algoritmi e Strutture Dati

Note per la Lezione 4 Ugo Vaccaro

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Ricerca Combinatoria

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Albero di Riscorsione

Informatica Generale Homework di Recupero 2016

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015

TECNOLOGIE INFORMATICHE MULTIMEDIALI

Manuale di Kiriki. Albert Astals Cid Eugene Trounev Traduzione dell interfaccia: Marcello Anni Traduzione della documentazione: Federico Zenith

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

TEORIA DEI GIOCHI. Progetto Lauree Scientifiche : Liceo Gabriele D Annunzio di Fidenza Università degli Studi di Parma

REGOLE DI BASE. Quando orientiamo la scacchiera la casa posta nell'angolo a destra di ogni giocatore deve essere di colore chiaro.

Economia Industriale

Vivere da Re.! Giocatori di scacchi umani e artificiali! a confronto

Grammatiche Parse trees Lezione del 17/10/2012

Fondamenti dell Informatica

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR

IL GIOCO DELLE SCACCHIERE LINEARI

Alberi e alberi binari I Un albero è un caso particolare di grafo

Problema del cammino minimo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Interpretazione economica della dualità

Teoria dei Giochi M.S. Bernabei

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

c) 64 caselle, identificate prima da una lettera, poi da un numero.

2.1) Ogni pietra avversaria catturata vale un punto.

Esercitazione gennaio 2015

Intelligenza Artificiale. Lezione 14. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0

Intelligenza Artificiale Ing. Tiziano Papini

MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI. Anna TORRE

Roberto Messa e Maria Teresa Mearini. Il Gioco degli Scacchi

1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI

Il metodo dei Piani di Taglio (Cutting Planes Method)

Rappresentazione con i diagrammi di flusso (Flow - chart)

Algoritmo basato su cancellazione di cicli

Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003

Progettazione di algoritmi

Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005)

Metodi e modelli per le decisioni

Breve guida iniziale all'uso degli scacchi

Progettazione di algoritmi

ThreeChess. Ovvero, come giocare a scacchi in tre.

ThreeChess. Ovvero, come giocare a scacchi in tre

Ricerca Automatica. Esercitazione 3. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0

Algoritmi di Ricerca ad Albero Monte Carlo Applicati all Intelligenza Artificiale nel Gioco della Briscola a Cinque

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

2. STORIA E PERSONAGGI

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2.2 Alberi di supporto di costo ottimo

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Implementazione del gioco del Bantumi Corso di Intelligenza Artificiale 2012

Grafi pesati Minimo albero ricoprente

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

Spiegazioni ASD 2012 Luddisti Spaziali

Ricerca con avversari

Giochi e dilemmi Parte I Giochi ad informazione completa

Tecniche Algoritmiche /2 Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking

Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi

Costruzione di espressioni regolari 4

MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI. Anna TORRE

Cos è la teoria dei giochi

Progettazione di Algoritmi

La Talpa del Perú. G. Mezzetti 27 novembre 2004

Progetto e analisi di algoritmi

Esempio : i numeri di Fibonacci

Il problema delle azioni

Breve corso per i bambini che apprendono gli scacchi Relazione di fine Corso per Istruttori di Scacchi UISP - FSI Perugia 25 e 26 Giugno 2005

3.4 Metodo di Branch and Bound

Transcript:

Algoritmi e giochi combinatori Panoramica Giochi combinatori Programmi che giocano Albero di un gioco L algoritmo Minimax 1

Perché studiare i giochi? Problemi che coinvolgono agenti in competizione tra loro Problemi interessanti e ardui, facili da descrivere Definiscono spesso spazi di ricerca molto ampi Divertente Giochi combinatori Giochi a 2 giocatori I giocatori alternano le proprie mosse Somma zero: un giocatore vince nella misura in cui l altro perde Informazione perfetta: i due giocatori conoscono completamente lo stato del gioco ogni volta che muovono; nessuna informazione è nascosta ad uno dei due giocatori. Deterministici: nessun elemento di casualità Finiti: il numero di scelte possibili ad ogni mossa è finito, e il gioco dura un numero finito di mosse 2

Giochi combinatori e non Non è finito Non è deterministico Solitario Informazione incompleta Ok Troppi giocatori Ok Stato dell arte Che livello raggiungono i migliori algoritmi? Scacchi: Deep Blue batte Garry Kasparov nel 1997 Garry Kasparov vs. Deep Junior (Feb 2003): patta! Kasparov vs. X3D Fritz (Nov 2003): patta! Dama: Chinook è stato campione del mondo. Go: programmi appena sufficienti 3

Come giocare Un possibile approccio ad un gioco combinatorio: Considera tutte le mosse ammissibili nello stato attuale Calcola la nuova posizione risultante da ogni mossa Valuta ogni posizione risultante e determina la migliore Gioca la mossa corrispondente Attendi la mossa dell avversario e ricomincia Difficoltà: Rappresentazione della scacchiera Generazione di tutte le posizioni risultanti Valutazione di una posizione Funzione di valutazione Una funzione di valutazione viene usata per stimare la bontà di una situazione di gioco Per l assunzione di somma nulla, una singola funzione è sufficiente a valutare la situazione di entrambi i giocatori f(s) > 0: la posizione s è buona per il primo giocatore e cattiva per il secondo f(s) < 0: la posizione s è cattiva per il primo giocatore e buona per il secondo f(s) = 0: la posizione s è neutra 4

Esempi di funzioni di valutazione Esempio di funzione di valutazione per il gioco del Tris: f(s) = [# di tris possibili per A] - [# di tris possibili per B] Una funzione di valutazione per gli scacchi: f(s) = w(s)/b(s) dove w(s) = somma del valore dei punti dei pezzi bianchi b(s) = somma del valore dei punti dei pezzi neri Spesso le funzioni di valutazione sono la somma pesata di singole caratteristiche della posizione: f(s) = w 1 *car 1 (s) + w 2 *car 2 (s) +... + w k *car k (s) Esempi di caratteristiche per gli scacchi: numero di pezzi, piazzamento dei pezzi, caselle controllate, ecc. Deep Blue aveva oltre 8000 caratteristiche nella sua funzione di valutazione Albero di un gioco Lo spazio di ricerca di un gioco è rappresentabile da un albero Un nodo rappresenta una posizione di gioco; il giocatore decide quale singola mossa eseguire portando così ad un determinato nodo figlio La funzione di valutazione assegna un valore ad ogni nodo Gli archi rappresentano le mosse ammissibili per un giocatore Se è il turno del primo giocatore, il nodo è etichettato MAX, altrimenti MIN Dato che i giocatori alternano le proprie mosse, su ogni cammino dalla radice ad una foglia le etichette si alternano 5

L algoritmo Minimax Crea un nodo radice di tipo MAX con la posizione iniziale Espandi i nodi fino ad una certa profondità nel gioco Applica la funzione di valutazione ai nodi foglia Calcola induttivamente all indietro i valori dei nodi interni fino ad arrivare alla radice: Ai nodi MIN, poni il valore al minimo dei valori associati a ciascun nodo figlio. Ai nodi MAX, poni il valore al massimo dei valori associati a ciascun nodo figlio. L arco (=mossa) scelto a ciascuno nodo è quello il cui figlio ha valore pari al valore del nodo L algoritmo Minimax 2 2 1 2 1 2 7 1 8 Valutazione delle posizioni 2 7 1 8 Mossa selezionata da Minimax MAX MIN 2 7 1 8 2 2 1 2 7 1 8 6

L albero del gioco del Tris f(s) = +1 se la posizione è vincente per X. f(s) = -1 se la posizione è vincente per O. f(s) = 0 se la posizione è una patta. Pseudocodice per Minimax function MAX-VALUE (state) if TERMINAL(state) then return UTILITY(state) v := - for each s in SUCCESSORS (state) do v := MAX (v, MIN-VALUE (s)) end return v function MIN-VALUE (state) if TERMINAL(state) then return UTILITY(state) v := + for each s in SUCCESSORS (state) do v := MIN (v, MAX-VALUE (s)) end return v 7

Potatura alfa-beta Possiamo migliorare l efficienza dell algoritmo minimax con la potatura alfa-beta Idea di base: Se hai un idea che di certo non è buona, non perdere tempo per capire quanto sia cattiva. MAX >=2 MIN =2 MAX 2 7 1 <=1? Non abbiamo bisogno di valutare questo nodo. A prescindere dal suo valore, non potrà influenzare il valore della radice. Potatura alfa-beta Visita l albero del gioco in profondità Ad ogni nodo MAX s, alfa(s) = massimo valore trovato finora Ad ogni nodo MIN s, beta(s) = minimo valore trovato finora I valori alfa partono da -infinito e possono solo crescere, mentre i valori beta partono da +infinito e possono solo diminuire. Soglia Alfa: taglia la ricerca su un nodo s di tipo MIN se beta(s) <= alfa(i) per qualche nodo i di tipo MAX che sia antenato di s. Soglia Beta: taglia la ricerca su un nodo s di tipo MAX se alfa(s) >= beta(i) per qualche nodo i di tipo MIN che sia antenato di s. 8

Potatura alfa-beta: esempio MAX 3 MIN 3 2 - taglia 14 1 - taglia 3 12 8 2 14 1 L algoritmo alfa-beta function MAX-VALUE (state, α, β) // α = MAX attuale; β = MIN attuale if TERMINAL-TEST (state) then return UTILITY(state) v := - for each s in SUCCESSORS (state) do v := MAX (v, MIN-VALUE (s, α, β)) if v >= β then return v α := MAX (α, v) end return v function MIN-VALUE (state, α, β) if TERMINAL-TEST (state) then return UTILITY(state) v := for each s in SUCCESSORS (state) do v := MIN (v, MAX-VALUE (s, α, β)) if v <= α then return v β := MIN (β, v) end return v 9

L efficacia di alfa-beta Alfa-beta calcola sempre lo stesso valore di Minimax Caso peggiore: nessuna potatura, esamina O(b d ) nodi dove d è la profondità della ricerca e b il numero massimo di figli di ogni nodo Nel caso migliore, esamina solo O(b d/2 ) nodi In Deep Blue, l uso della potatura alfa-beta ha portato il fattore di branching medio da 35 a 6! 10