Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoImmacolata Lorusso Modificato 11 anni fa
1
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.
2
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
3
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
4
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
5
Algoritmo di MiniMax L’algoritmo ha inizio assegnando al nodo di partenza (il nodo radice) i valori a = -¥ e b = +¥.
6
Algoritmo di MiniMax Il nodo A non è un nodo foglia A (-¥,+¥)
espansione del nodo A. A (-¥,+¥)
7
Algoritmo di MiniMax Il nodo B non è un nodo foglia A B (-¥,+¥)
espansione del nodo B. A (-¥,+¥) B (-¥,+¥)
8
Algoritmo di MiniMax Il nodo E non è un nodo foglia A B E (-¥,+¥)
espansione del nodo E. A (-¥,+¥) B (-¥,+¥) E (-¥,+¥)
9
Algoritmo di MiniMax Il nodo L è un nodo foglia A B E L (-¥,+¥)
valutazione del nodo L. A (-¥,+¥) B (-¥,+¥) E (-¥,+¥) L
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
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
20
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
21
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
22
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
23
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
24
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
25
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
26
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
27
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
28
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
29
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
30
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
31
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
32
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
33
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
34
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
35
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
36
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
37
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
38
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
39
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
40
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
41
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
42
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
43
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
44
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
45
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
46
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
47
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
48
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
49
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
50
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
51
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
52
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
53
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
54
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
55
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
56
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
57
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
58
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
59
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
60
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
61
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
62
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
63
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
64
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
65
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
66
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.
67
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.