Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Flusso Massimo Applicazione di algoritmi
Algoritmi e Strutture Dati
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Dallalgoritmo minimax allalgoritmo alfa-beta. MINIMAX int minimax(stato, livello) { if((livello == max_livello) || condizione_uscita(stato)) { CAMMINO.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Macchine non completamente specificate
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmi e strutture Dati - Lezione 7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Interrogazioni.
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Flusso Massimo Applicazione di algoritmi
Cammini minimi Algoritmo SPT.Acyclic
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
Algoritmi e Strutture Dati Alberi Binari di Ricerca.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati
Algoritmi e strutture dati
1. ( punti 7 ) Siano dati un insieme di localizzazioni potenziali (nodi grandi) ed un insieme di clienti da servire (nodi piccoli). Il costo di afferenza.
Algoritmi e Strutture Dati 20 aprile 2001
Algoritmi e Strutture Dati
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Intelligenza Artificiale
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
FLOWCHART DELL’ALGORITMO DI APPRENDIMENTO DELLA RETE DI KOHONEN
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
Algoritmi e Strutture Dati
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
Flusso Massimo Applicazione di algoritmi
Intelligenza Artificiale Risoluzione di Problemi
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria  tengono traccia solo dello stato corrente (non.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Transcript della presentazione:

Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax. La soluzione è stata ottenuta applicando l’algoritmo MiniMax partendo da sinistra e andando verso destra.

Algoritmo di MiniMax Nodi AND  X (a,b) Massimizzano il valore dei loro successori Nodi OR  Y (a,b) Minimizzano il valore dei loro successori

Algoritmo di MiniMax a e b a ³ b Ogni nodo è caratterizzato da due soglie: a e b I tagli possono essere fatti solo quando a ³ b

Visione completa del grafo And-Or. Algoritmo di MiniMax Visione completa del grafo And-Or. A B C D E F G H I J K L M N O P Q R S T U V W X Y 7 6 8 5 4 3 0 -2 6 2 5 8 9 2

Algoritmo di MiniMax L’algoritmo ha inizio assegnando al nodo di partenza (il nodo radice) i valori a = -¥ e b = +¥.

Algoritmo di MiniMax Il nodo A non è un nodo foglia A (-¥,+¥)  espansione del nodo A. A (-¥,+¥)

Algoritmo di MiniMax Il nodo B non è un nodo foglia A B (-¥,+¥)  espansione del nodo B. A (-¥,+¥) B (-¥,+¥)

Algoritmo di MiniMax Il nodo E non è un nodo foglia A B E (-¥,+¥)  espansione del nodo E. A (-¥,+¥) B (-¥,+¥) E (-¥,+¥)

Algoritmo di MiniMax Il nodo L è un nodo foglia A B E L (-¥,+¥)  valutazione del nodo L. A (-¥,+¥) B (-¥,+¥) E (-¥,+¥) L

Algoritmo di MiniMax Il valore del nodo L è ritornato al nodo padre E che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (-¥,+¥) B (-¥,+¥) E (-¥,+¥) L 7

Algoritmo di MiniMax Nodo E: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di E, lo si genera. A (-¥,+¥) B (-¥,+¥) E (7,+¥) L 7

Algoritmo di MiniMax Il nodo M è un nodo foglia A B E L M 7 (-¥,+¥)  valutazione del nodo M. A (-¥,+¥) B (-¥,+¥) E (7,+¥) L M 7

Algoritmo di MiniMax Il valore del nodo M è ritornato al nodo padre E che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (-¥,+¥) B (-¥,+¥) E (7,+¥) L M 7 6

Algoritmo di MiniMax Nodo E: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di E, lo si genera. A (-¥,+¥) B (-¥,+¥) E (7,+¥) L M 7 6

Algoritmo di MiniMax Non ci sono più figli da generare  si ritorna a al nodo padre B che, essendo un nodo OR, imposterà b come il minore tra il valore ritornato e il valore attuale di b. A (-¥,+¥) B (-¥,+¥) E (7,+¥) L M 7 6

Algoritmo di MiniMax Nodo B: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di B, lo si genera. A (-¥,+¥) B (-¥,7) E (7,+¥) L M 7 6

Algoritmo di MiniMax Il nodo F non è un nodo foglia A B E F L M 7 6  espansione del nodo F. A (-¥,+¥) B (-¥,7) E (7,+¥) F (-¥,7) L M 7 6

Algoritmo di MiniMax Il nodo N è un nodo foglia A B E F L M N 7 6  valutazione del nodo N. A (-¥,+¥) B (-¥,7) E (7,+¥) F (-¥,7) L M N 7 6

Algoritmo di MiniMax Il valore del nodo N è ritornato al nodo padre F che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (-¥,+¥) B (-¥,7) E (7,+¥) F (-¥,7) L M N 7 6 8

Algoritmo di MiniMax Nodo F: si può interrompere la ricerca (a ³ b)  si ritorna b al nodo padre B. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) L M N 7 6 8

Algoritmo di MiniMax Il nodo B, essendo un nodo OR, imposterà b come il minore tra il valore ritornato e il valore attuale di b. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) L M N 7 6 8

Algoritmo di MiniMax Nodo B: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di B, lo si genera. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) L M N 7 6 8

Algoritmo di MiniMax Il nodo G non è un nodo foglia A B E F G L M N  espansione del nodo G. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (-¥,7) L M N 7 6 8

Algoritmo di MiniMax Il nodo P è un nodo foglia A B E F G L M N P  valutazione del nodo P. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (-¥,7) L M N P 7 6 8

Algoritmo di MiniMax Il valore del nodo P è ritornato al nodo padre G che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (-¥,7) L M N P 7 6 8 4

Algoritmo di MiniMax Nodo G: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di G, lo si genera. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (4,7) L M N P 7 6 8 4

Algoritmo di MiniMax Il nodo Q è un nodo foglia A B E F G L M N P Q  valutazione del nodo Q. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4

Algoritmo di MiniMax Il valore del nodo Q è ritornato al nodo padre G che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Nodo G: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di G, lo si genera. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Non ci sono più figli da generare  si ritorna a al nodo padre B che, essendo un nodo OR, imposterà b come il minore tra il valore ritornato e il valore attuale di b. A (-¥,+¥) B (-¥,7) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Nodo B: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di B, lo si genera. A (-¥,+¥) B (-¥,4) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Non ci sono più figli da generare  si ritorna b al nodo padre A che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (-¥,+¥) B (-¥,4) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Nodo A: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di A, lo si genera. A (4,+¥) B (-¥,4) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Il nodo C non è un nodo foglia A B C E F G L M N  espansione del nodo C. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Il nodo H non è un nodo foglia A B C E F G H L M  espansione del nodo H. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q 7 6 8 4 3

Algoritmo di MiniMax Il nodo R è un nodo foglia A B C E F G H L M N P  valutazione del nodo R. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R 7 6 8 4 3

Algoritmo di MiniMax Il valore del nodo R è ritornato al nodo padre H che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R 7 6 8 4 3 0

Algoritmo di MiniMax Nodo H: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di H, lo si genera. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R 7 6 8 4 3 0

Algoritmo di MiniMax Il nodo S è un nodo foglia A B C E F G H L M N P  valutazione del nodo S. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0

Algoritmo di MiniMax Il valore del nodo S è ritornato al nodo padre H che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Nodo H: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di H, lo si genera. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Non ci sono più figli da generare  si ritorna a al nodo padre C che, essendo un nodo OR, imposterà b come il minore tra il valore ritornato e il valore attuale di b. A (4,+¥) B (-¥,4) C (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Nodo C: si può interrompere la ricerca (a ³ b)  si ritorna a al nodo padre A. A (4,+¥) B (-¥,4) C (4,4) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Il nodo A, essendo un nodo AND, imposterà a come il minore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,4) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Nodo A: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di A, lo si genera. A (4,+¥) B (-¥,4) C (4,4) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Il nodo D non è un nodo foglia A B C D E F G H L  espansione del nodo D. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Il nodo J non è un nodo foglia A B C D E F G H J  espansione del nodo J. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (4,+¥) L M N P Q R S 7 6 8 4 3 0 -2

Algoritmo di MiniMax Il nodo V è un nodo foglia A B C D E F G H J L M  valutazione del nodo V. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (4,+¥) L M N P Q R S V 7 6 8 4 3 0 -2

Algoritmo di MiniMax Il valore del nodo V è ritornato al nodo padre J che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (4,+¥) L M N P Q R S V 7 6 8 4 3 0 -2 5

Algoritmo di MiniMax Nodo J: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di J, lo si genera. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (5,+¥) L M N P Q R S V 7 6 8 4 3 0 -2 5

Algoritmo di MiniMax Il nodo W è un nodo foglia A B C D E F G H J L M  valutazione del nodo W. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (5,+¥) L M N P Q R S V W 7 6 8 4 3 0 -2 5

Algoritmo di MiniMax Il valore del nodo W è ritornato al nodo padre J che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (5,+¥) L M N P Q R S V W 7 6 8 4 3 0 -2 5 8

Algoritmo di MiniMax Nodo J: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di J, lo si genera. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) L M N P Q R S V W 7 6 8 4 3 0 -2 5 8

Algoritmo di MiniMax Non ci sono più figli da generare  si ritorna a al nodo padre D che, essendo un nodo OR, imposterà b come il minore tra il valore ritornato e il valore attuale di b. A (4,+¥) B (-¥,4) C (4,4) D (4,+¥) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) L M N P Q R S V W 7 6 8 4 3 0 -2 5 8

Algoritmo di MiniMax Nodo D: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di D, lo si genera. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) L M N P Q R S V W 7 6 8 4 3 0 -2 5 8

Algoritmo di MiniMax Il nodo K non è un nodo foglia A B C D E F G H J  espansione del nodo K. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (4,8) L M N P Q R S V W 7 6 8 4 3 0 -2 5 8

Algoritmo di MiniMax Il nodo X è un nodo foglia A B C D E F G H J K L  valutazione del nodo X. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (4,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8

Algoritmo di MiniMax Il valore del nodo X è ritornato al nodo padre K che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (4,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Nodo K: si può interrompere la ricerca (a ³ b)  si ritorna b al nodo padre D. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Il nodo D, essendo un nodo OR, imposterà b come il minore tra il valore ritornato e il valore attuale di b. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Nodo D: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di D, lo si genera. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Non ci sono più figli da generare  si ritorna b al nodo padre A che, essendo un nodo AND, imposterà a come il maggiore tra il valore ritornato e il valore attuale di a. A (4,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Nodo A: non si può interrompere la ricerca (a < b)  se esiste un altro figlio di A, lo si genera. A (8,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Non ci sono più figli da generare termine. A B C  si ritorna a. La procedura ha termine. A (8,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Algoritmo di MiniMax Il valore ritornato dalla procedura (8), indica il nodo finale corrispondente al percorso migliore trovato nell’albero di ricerca. A (8,+¥) B (-¥,4) C (4,4) D (4,8) E (7,+¥) F (8,7) G (4,7) H (4,+¥) J (8,+¥) K (9,8) L M N P Q R S V W X 7 6 8 4 3 0 -2 5 8 9

Analisi dei risultati: Algoritmo di MiniMax Analisi dei risultati: L’applicazione di questa tecnica ha ridotto il numero dei nodi analizzati che sono passati da 25, ottenuti con l’applicazione del solo algoritmo di MiniMax, a 20. Anche se in questo esempio la riduzione del numero dei nodi analizzati è stata minima, l’algoritmo risulta molto efficiente nel caso di ricerca in grafi AND-OR molto più complessi. E’ da notare che anche l’ordine in cui viene effettuata la ricerca influisce sull’efficienza dell’algoritmo: in questo caso infatti lo stesso algoritmo se applicato da destra verso sinistra porta all’analisi di soli 16 nodi anziché 20.

Algoritmo di MiniMax Situazione finale nel caso in cui l’albero è espanso da destra a sinistra. A (8,+¥) B (8,8) C (8,8) D (-¥,8) G (8,+¥) I (8,+¥) J (8,+¥) K (9,+¥) P Q T U V W X Y 4 3 6 2 5 8 9 2