Esempi di giochi Puzzles e giochi a informazione perfetta Slides di Teoria dei Giochi, Vincenzo Cutello 1 Sliding tiles: Euristiche H1(n) = numero di tessere sbagliate H2(n) = somma delle distanze di Manhattan (cioè, il numero di caselle da quella desiderata di ogni tessera) 5 1 6 8 13 2 10 15 7 11 14 12 9 3 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Stato iniziale Stato finale H1(S) = ?? H2(S) = ?? Slides di Teoria dei Giochi, Vincenzo Cutello 2 Sliding tiles: Euristiche migliori? Tutte le euristiche ammissibili ma il meno ottimistiche possibili. Come fare a migliorare ? Per esempio: Manhattan distance ignora le interazioni tra le caselle. Se ne teniamo conto, almeno in parte, che succede ? 5 1 6 8 13 2 10 15 7 11 14 12 9 3 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Stato iniziale Stato finale H1(S) = ?? H2(S) = ?? Slides di Teoria dei Giochi, Vincenzo Cutello 3 Non-additive pattern db Considera le caselle di confine (più quella vuota) Qual è il numero minimo (esatto) di mosse da fare tenendo conto delle loro posizioni, ma non delle posizioni delle altre caselle? 3 13 15 7 11 14 12 3 7 11 12 13 14 15 Stato iniziale Stato finale Calcoliamo questo numero per ognuna delle possibili permutazioni delle caselle di confine: 16!/(16-8)!=518.918.400 Memorizziamo in una tabella: circa 495MB di spazio. Come facciamo a calcolare tale numero minimo di mosse? Slides di Teoria dei Giochi, Vincenzo Cutello 4 Non-additive pattern db Utilizziamo una BFS a partire dallo stato finale. Ognuna delle configurazioni viene incontrata e la sua distanza minima calcolata (proprietà della BFS) 3 3 3 7 11 12 13 14 15 7 11 12 13 14 15 7 11 12 13 14 15 Stato finale d=1 d=1 Memorizziamo in una tavola indicizzata Utilizziamo la distanza di Manhattan per le altre caselle Slides di Teoria dei Giochi, Vincenzo Cutello 5 Non-additive pattern db Risultati: – Numero dei nodi generati ridotto din un fattore 346 – Running time ridotto di un fattore 6 – Se confrontanti solo con la Manhattan Distance Limiti – Non si riescono a risolvere problemi grandi. – Esempio: il puzzle 24, contiene 25 posizioni, e le posizioni delle caselle di confine sono 25!/(25-10)! Numero troppo grande (provare per credere) Slides di Teoria dei Giochi, Vincenzo Cutello 6 Sliding tiles: Disjoint pattern DB Estendiamo la distanza di Manhattan, invece di una casella singola, gruppi di caselle. Nell’esempio, un gruppo di 7 (casella vuota esclusa) e un gruppo di 8 5 1 6 8 13 2 10 15 7 11 14 12 9 3 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Stato iniziale: gruppo 1 e 2 Stato finale Vi sono 57.657.600 gruppi da 7 (da 0 a 33 mosse) e 518.918.400 gruppi da 8 (da 0 a 38 mosse). Slides di Teoria dei Giochi, Vincenzo Cutello 7 Puzzles: Sokoban Il giocatore deve spingere i pezzi attraverso un labirinto e portarli nel posto finale Solo un pezzo alla volta può essere spinto Gli altri pezzi ed i muri sono ostacoli contro cui non si può spingere. Goal: – Risolvere il puzzle – Minimizzare spinte e mosse Slides di Teoria dei Giochi, Vincenzo Cutello 8 Sokoban cont. Sokoban è un problema NP-hard, e addirittura, PSPACE-complete. Problema generale di motion-planning Slides di Teoria dei Giochi, Vincenzo Cutello 9 Sokoban: cont. Cosa rende Sokoban difficile ? Slides di Teoria dei Giochi, Vincenzo Cutello 10 Sokoban: cosa lo rende difficile? Alcune mosse sono irreversibili e possono portare ad uno stato di stallo Lo spazio di ricerca, su una griglia sottostante 20X20 è enorme (come vedremo). Slides di Teoria dei Giochi, Vincenzo Cutello 11 Sokoban: come attaccarlo ? Knowledge representation Algoritmi di ricerca Capacità di apprendimento Gestione di eccezioni e sub-goals. Slides di Teoria dei Giochi, Vincenzo Cutello 12 Sokoban: complessità ? 15-Puzzle Cubo di Rubik Sokoban Branching Factor 4 18 144 Lunghezza soluzione 53 (1-80) 18 (1-20) 260 (97-674) Dimensione spazio di ricerca 10**13 10**19 10**98 Complessità A* O(n) -> O(1) O(n) -> O(1) O(n**3) -> O(n**2) Grafo Non orientato Non orientato Orientato Slides di Teoria dei Giochi, Vincenzo Cutello 13 Due semplici problemi: complessità? Qual è la dimensione dello spazio di ricerca in entrambi i casi ? – 1000 (pushes) – 23000 (pushes) Poca speranza senza usare conoscenza specifica Slides di Teoria dei Giochi, Vincenzo Cutello 14 Sokoban cont. Sokoban può essere attaccato con versioni appropriate di IDA*, estese con tecniche di conoscenza specifiche del dominio. I livelli più complessi di Sokoban sono ancora fuori dalla portata di un sistema automatico di risoluzione. Slides di Teoria dei Giochi, Vincenzo Cutello 15 Tavole per i deadlocks Calcolare gli angoli morti. Costruire una tavola per gli stalli. Riduzione del branching factor Slides di Teoria dei Giochi, Vincenzo Cutello 16 Analisi dinamica dei deadlock Quale mossa può portare ad un deadlock? Risolvi aggiungendo una “pietra” alla volta Slides di Teoria dei Giochi, Vincenzo Cutello 17 Analisi dinamica dei deadlock Slides di Teoria dei Giochi, Vincenzo Cutello 18 Analisi dinamica dei deadlock Introduci una “penalità” per la mossa che porta ad uno stallo Slides di Teoria dei Giochi, Vincenzo Cutello 19 Tavole di trasposizione Riconosci sequenze di mosse già fatte. Slides di Teoria dei Giochi, Vincenzo Cutello 20 Dentro un tunnel ! Quando sei in un tunnel non puoi che continuare sino a quando non esci dal tunnel. Verifica se il tunnel è a senso unico o a doppio senso Slides di Teoria dei Giochi, Vincenzo Cutello 21 Goal Area: suddivisione del problema Problema 1: porta le pietre all’ingresso Problema 2: sistema le pietre nella zona finale Slides di Teoria dei Giochi, Vincenzo Cutello 22 Suddivisione del problema: tagli Non è necessario considerare tutte le mosse legali. Solo quelle rilevanti per la risoluzione del sotto-problema Slides di Teoria dei Giochi, Vincenzo Cutello 23 Giochi a informazione perfetta: Othello Othello (anche detto Reversi) è un gioco da tavolo astratto a informazione perfetta, per due giocatori. Ogni giocatore dispone di 32 dischi bicolori (neri da un lato, bianchi dall'altro) ed il terreno di gioco è costituito da una tavola quadrata di 8 x 8 caselle di colore uniforme. Slides di Teoria dei Giochi, Vincenzo Cutello 24 Othello cont. Prima di iniziare a giocare si posizionano due pedine bianche e due nere nelle quattro caselle centrali. Regole: – – – Si muove alternativamente (inizia il nero) appoggiando una nuova pedina in una casella vuota in modo da imprigionare, tra la pedina che si sta giocando e quelle del proprio colore già presenti sulla scacchiera, una o più pedine avversarie. A questo punto le pedine imprigionate devono essere rovesciate e diventano di proprietà di chi ha eseguito la mossa. È possibile incastrare le pedine in orizzontale, in verticale e in diagonale e, a ogni mossa, si possono girare pedine in una o più direzioni. Slides di Teoria dei Giochi, Vincenzo Cutello 25 Othello: cont. Sono ammesse solo le mosse con le quali si gira almeno una pedina, se non è possibile farlo si salta il turno. Quando nessuno dei giocatori ha la possibilità di muovere (quasi sempre accade quando la scacchiera è piena), si contano le pedine e si assegna la vittoria a chi ne ha il maggior numero. Slides di Teoria dei Giochi, Vincenzo Cutello 26 Othello: cont. I migliori programmi per Othello vincono facilmente contro esseri umani. Nel 1997, Logistello sconfisse il campione mondiale Takeshi Murakami per 6:0. Esseri umani non riescono a vincere contro i programmi perché riescono a guardare avanti nell’albero del gioco in grande profondità. Slides di Teoria dei Giochi, Vincenzo Cutello 27 Othello: cont. Da un punto di vista matematico, Othello è ancora insoluto. E’ un gioco finito a informazione perfetta. Esiste una strategia vincente ? Ipotesi: su una scacchiera (othelliera) 8 per 8 la migliore strategia per entrambi i giocatori porta ad un pareggio. In generale, n per n, il problema di determinare se il primo a muovere ha una strategia vincente è PSPACE-complete. Per 4 per 4, e 6 per 6 il secondo giocatore ha una strategia vincente. Slides di Teoria dei Giochi, Vincenzo Cutello 28