ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. A C B E F D I H G J K L M N O P Q R S T U (6) (8) (5) (0) (-2) (2) (5) (8) (9) (2) (0) Supponendo che il primo giocatore sia MAX, quale mossa dovrebbe scegliere? Soluzione (6) ( mossa verso B) A B E Giochi C (6) F (6) G (8) (0) H (0) D I (5) (2) J (9) K L M N O P Q R S T (6) (8) (5) (0) (-2) (2) (5) (8) (9) (2) (2) U (0) 1 ESERCIZIO MIN-MAX e TAGLI ALFA-BETA Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. A C B E K 1 F L N O 3 -2 -6 I H G M 5 D J P Q R S T U V 7 8 2 -8 1 4 2 W -4 X 0 Supponendo che il primo giocatore sia MIN, quale mossa dovrebbe scegliere? Si applichi l’algoritmo MINMAX. Successivamente si mostrino i tagli alfa-beta. Min-Max A B E 7 1 -6 1 1 F G C 1 -8 7 1 H D I -4 J K L M N O P Q R S T U V W X 1 5 3 -2 -6 7 8 2 -8 1 4 2 -4 0 Tagli alfa-beta A B E Giochi 1 ≥7 1 ≤-2 F G 7 1 C ≥1 -8 1 H D I -4 J K L M N O P Q R S T U V W X 1 5 3 -2 -6 7 8 2 -8 1 4 2 -4 0 2 ESERCIZIO MIN-MAX e TAGLI ALFA-BETA Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. A C B E F D I H G J K L M N O P Q R S T U V W -2 3 5 9 11 -2 -1 3 -2 5 7 9 4 X -3 Supponendo che il primo giocatore sia MAX, quale mossa dovrebbe scegliere? Si applichi l’algoritmo MINMAX. Successivamente si mostrino i tagli alfa-beta. Min-Max 5 5 B E A 5 11 C -1 G -1 F 3 4 I H D 9 4 J K L M N O P Q R S T U V W -2 3 5 9 11 -2 -1 3 -2 5 7 9 4 5 A X -3 Tagli alfa beta: 5 B E Giochi 5 C F ≥9 O K L M N -2 3 5 9 ≤-1 G -1 4 I H D 9 4 J P Q R S T U V W X -2 -1 3 -2 5 7 9 4 -3 3 ESERCIZIO MIN-MAX E TAGLI ALFA-BETA Si consideri il gioco del TRIS e si applichi a esso la strategia MINMAX considerando tre livelli e partendo dal nodo iniziale: in cui è MAX che deve muovere inserendo una opportuna X. Si disegni l'albero di ricerca con i relativi valori per la funzione euristica (E) e quelli propagati e si mostri quale mossa sceglierà MAX. Per risolvere il problema si consideri come funzione euristica E il numero di righe, colonne e diagonali ancora possibili per MAX (MIN) meno il numero di righe, colonne e diagonali ancora possibili per MIN (MAX). Inoltre E sarà uguale a + o - infinito per le posizioni vincenti o perdenti per MAX. Esempio: se abbiamo E per MAX sarà 6 - 4 = 2 Per semplificare l'albero si considerino inoltre equivalenti le situazioni simmetriche. Giochi 4 E=1 2 E = - infinito E=1 2 E = - infinito E=2-1=1 E=3-1=2 E = - infinito E=2-1=1 E = 2 - 1= 1 E = 3 - 1= 2 E = - infinito E = 3 - 1= 2 E = - infinito E = - infinito E = - infinito E=3-2=1 E=2-2=0 E=3-2=1 E = - infinito Giochi E = 2 - 1= 1 E=2-2=0 E=3-2=1 E=2-2=0 5 E = 2 - 1= 1 E=3-1=2 E=2-1=1 E=1 E = -infinito E=1 E = -infinito E=2-1=1 E=3-1=2 E = -infinito E=2-1=1 E=3-1 =2 E=2-1 =1 E = -infinito E=3-1 =2 E = -infinito E = -infinito E = -infinito E=3-2=1 E=2-2=0 E=3-2=1 E = -infinito Giochi E=2-1 =1 E=3-2=1 E=2-2=0 E=2-2=0 7 E=2-1 =1 E=3-1=2 E=2-1=1 Esercizio Si consideri il seguente gioco: due giocatori hanno davanti una singola pila di oggetti (ad esempio una pila di monete). Il primo giocatore divide la pila in due pile separate che devono essere diverse. Poi continua il secondo lavorando su una a scelta delle due pile e così via. Il gioco termina solo quando in ogni pila ci sono una o due monete. A questo punto il primo giocatore che non può muovere ha perso. Si applichi la procedura MIN-MAX e si mostri lo spazio di ricerca nel caso in cui cominci MIN con una pila di 7 monete. Si commenti lo spazio risultante. Notazione: Ogni nodo dello spazio di ricerca rappresenta una configurazione: in particolare i numeri X,Y,Z indicano che si hanno tre pile corrispondenti ciascuna ad un numero, che indica il numero di monete contenute Giochi 8 7 3, 4 MAX 3,3,1 MAX 2,1,4 MAX MAX 2,1,3,1 2,1,3,1 2,1,1,2,1 MAX 5, 2 MAX min 3,2,2 2,1,2,2 min MAX 6, 1 MAX min 5,1,1 MAX 4,1,2 MAX 3,1,1,2 MAX 3,2,1,1 MAX MAX 4,2,1 min MAX 3,1,2,1 4,1,1,1 min 1,2,1,1,2 MAX 1,2,2,1,1 3,1,1,1,1 MAX 2,1,1,2,1 MAX 2,1,1,1,1,1 min Le etichette Max e min rappresentano le posizioni vincenti per Max e min. Comunque muova min, se Max gioca nel modo migliore, Max vince comunque. Giochi 9 Esercizio MIN-MAX e TAGLI ALFA-BETA Dato il seguente albero di ricerca per un gioco a due giocatori, si mostri quale mossa selezionerà MAX, secondo l'algoritmo MIN-MAX. Si mostri inoltre come può essere potato l'albero applicando i tagli alfa-beta. A MAX B D H 6 K J L 3 9 7 G F E I MIN C 5 M N 4 MAX MIN O 3 P 5 Q R 4 2 Algoritmo MIN-MAX: 7 7 B 2 C D 7 Giochi MAX A E F 9 H I J K L M 6 7 9 3 5 4 4 MIN 2 G N O 3 MAX 2 MIN P Q R 5 4 2 10 Tagli alfa-beta: 7 7 MAX A C B D 7 H I 6 7 E J 9 K F >=9 L MIN <=4 4 G M N 4 3 P MAX O Q MIN R Spiegazione: Quando l'algoritmo scopre che il valore del nodo J è 9, può ignorare i nodi K e L. Infatti, poiché il nodo B è un nodo MIN, il suo valore sarà il più piccolo fra D (7) e E. Poiché E è un nodo MAX, il suo valore sarà uguale o più grande di quello relativo al nodo J (cioè 9). Quindi il valore di B sarà 7 indipendentemente dai valori di K e J. Analogo discorso si può fare per i nodi G, O, P, Q e R. Giochi 11 ESERCIZIO MIN-MAX e TAGLI ALFA-BETA Si consideri il gioco seguente: • Si ha a disposizione una griglia 4 x 4 • Ciascun giocatore deve inserire all'interno della griglia delle palline. Il giocatore A deve inserire palline bianche mentre il giocatore B palline nere. Le palline possono essere inserite nella griglia dall'alto in modo tale che giungano nella prima posizione libera nella colonna a partire dal basso. Ad esempio, nel disegno se si vuole inserire la pallina nera nella prima colonna cadrà in terza posizione, nella seconda colonna in seconda posizione, nella terza colonna non può essere inserita e nella quarta colonna cadrà in prima posizione. quello di inserire quattro palline dello stesso colore sulla stessa riga o sulla stessa colonna o sulla stessa diagonale. Giochi 12 Si supponga di partire dalla seguente posizione iniziale e che il giocatore A (pallina bianca MAX) debba muovere. Si applichi al gioco la strategia MIN-MAX considerando tre livelli partendo dal nodo iniziale. Si disegni l'albero di ricerca con i relativi valori per la funzione euristica (E) e quelli propagati e si mostri quale mossa sceglierà MAX. Per risolvere il problema si consideri come funzione euristica E il numero di righe, colonne e diagonali ancora possibili per MAX meno il numero di righe, colonne e diagonali ancora possibili per MIN. Inoltre E sarà uguale a + o - infinito per le posizioni vincenti o perdenti per MAX. Si effettuino poi i tagli alfa-beta. Giochi 13 E=- inf E=- inf E= - 2 E= -1 E= - 2 E= - 2 E= -1 E= - 2 E= - 2 E= -1 E= -1 E= - 2 E= -1 E= - 2 E= - 2 E= -1 E= -1 E= - 2 E= - 2 MAX sceglierà la mossa indicata dalla freccia, ma potrebbe scegliere indifferentemente anche le due mosse successive. Giochi 14 Tagli alfa-beta E= - 2 E=- inf E=- inf E= - 2 E= -1 E= - 2 E<= - 2 E= -1 E= -1 E= - 2 E<= - 2 E= -1 E= - 2 Il ramo infinito permette di tagliare i restanti sottorami in quanto MIN sceglierà questa mossa. Nel terzo e nel quarto sottoramo non appena viene trovato il valore -2 ci si può fermare in quanto un valore più grande di -2 non viene scelto da min e un valore più piccolo di -2 non verrà scelto da MAX che ha già a disposizione un -2. Giochi 15 ESERCIZIO MIN-MAX e TAGLI ALFA-BETA Si osservi il seguente albero di ricerca espanso fino a profondità 6. Si supponga che i nodi a sinistra siano generati per primi e la ricerca sia di tipo depth first. MAX è rappresentato dai quadrati, mentre MIN dai cerchi. Si indichi la parte di albero effettivamente esplorata da una ricerca di tipo alfa-beta e i nodi tagliati. Si noti che i nodi originali sono 41. Quanti sono i nodi invece effettivamente esplorati dopo i tagli alfa-beta? Giochi 16 0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2 3 -3 0 -1 -2 0 1 4 5 Giochi 17 1 -1 -1 3 -3 2 -2 0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2 3 -3 0 -1 -2 0 1 4 5 I nodi ora sono solo 18 Giochi 18 1 -1 -1 3 -3 2 -2