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
Alberi binari Definizione Sottoalberi Padre, figli
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax.
Dallalgoritmo minimax allalgoritmo alfa-beta. MINIMAX int minimax(stato, livello) { if((livello == max_livello) || condizione_uscita(stato)) { CAMMINO.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Macchine non completamente specificate
Esercizi su alberi binari
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
ANALISI DEI GRUPPI seconda parte
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 9 Il problema della gestione di insiemi disgiunti (Union-find) 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.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
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
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
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.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Fondamenti di Informatica
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
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
La frazione come operatore
Cammini minimi da un sorgente
ALGORITMI a.
Usi (meno scontati) della visita DFS. Informazioni utili: tenere il tempo clock=1 pre(v)=clock clock=clock+1 post(v)=clock; clock=clock+1 pre(v): tempo.
delle operazioni con precedenze
Sistemi e Tecnologie Informatiche Ricorsione Umberto Ferraro Petrillo.
Sistemi e Tecnologie Informatiche
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Alberi bilanciati (rif. Algoritmi in Java, di R. Sedgewick)
1 PerfectFit06 Sistema di personalizzazione dei contenuti per gli scavi archeologici di Ercolano Candidato: Vincenzo Scognamiglio Relatore: Prof. Ernesto.
Usi (meno scontati) della visita DFS lezione basata sul capito 3 del libro Algorithms, di Dasgupta, Papadimitriou, Vazirani, McGraw-Hill.
Alberi CORDA – Informatica A. Ferrari Testi da
Soluzione: Algoritmo Heap-Sort Un array A[1..n] può essere interpretato come un albero binario: A[1] è la radice, A[2i] e A[2i+1] sono i figli di A[i]
alberi completamente sbilanciati
Algoritmi e Strutture Dati Luciano Gualà
AlgoLab - Code unificabili Code unificabili con alberi binomiali Laboratorio di Algoritmi 02/03 Prof. Ugo de’ Liguoro.
Algoritmi e Strutture Dati
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 8 Code con priorità Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Olimpiadi di Informatica 2010 Giornate preparatorie
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
Flusso Massimo Applicazione di algoritmi
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
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.
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.

X Nodi AND  Nodi OR  Y  Massimizzano il valore dei loro successori Minimizzano il valore dei loro successori Algoritmo di MiniMax

Ogni nodo è caratterizzato da due soglie:  e  I tagli possono essere fatti solo quando    Algoritmo di MiniMax

A NO CB LMPQRSTUVWXY D Visione completa del grafo And-Or. EKJIHGF

Algoritmo di MiniMax L’algoritmo ha inizio assegnando al nodo di partenza (il nodo radice) i valori  e 

Algoritmo di MiniMax  A Il nodo A non è un nodo foglia  espansione del nodo A.

Algoritmo di MiniMax B Il nodo B non è un nodo foglia  espansione del nodo B.  A

Algoritmo di MiniMax B Il nodo E non è un nodo foglia  espansione del nodo E.  A E

Algoritmo di MiniMax B Il nodo L è un nodo foglia  valutazione del nodo L. A E L 

Algoritmo di MiniMax B Il valore del nodo L è ritornato al nodo padre E che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . A E L 7 

Algoritmo di MiniMax B A E L 7 Nodo E: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di E, lo si genera.  

Algoritmo di MiniMax B A E L 7 Il nodo M è un nodo foglia  valutazione del nodo M. M   

Algoritmo di MiniMax B A E L 7 6 Il valore del nodo M è ritornato al nodo padre E che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M  

Algoritmo di MiniMax B A E L 7 6 Nodo E: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di E, lo si genera. M  

Algoritmo di MiniMax B A E L 7 6 Non ci sono più figli da generare  si ritorna  al nodo padre B che, essendo un nodo OR, imposterà  come il minore tra il valore ritornato e il valore attuale di . M  

Algoritmo di MiniMax B A E L 7 6 Nodo B: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di B, lo si genera. M   

Algoritmo di MiniMax B A  E L 7 6  Il nodo F non è un nodo foglia  espansione del nodo F. M F  

Algoritmo di MiniMax B A  E L 7 6  Il nodo N è un nodo foglia  valutazione del nodo N. M F   N

Algoritmo di MiniMax B A  E L  Il valore del nodo N è ritornato al nodo padre F che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N

Algoritmo di MiniMax B A  E L  Nodo F: si può interrompere la ricerca (   )  si ritorna  al nodo padre B. M F   N

Algoritmo di MiniMax B A  E L  Il nodo B, essendo un nodo OR, imposterà  come il minore tra il valore ritornato e il valore attuale di . M F   N

Algoritmo di MiniMax B A  E L  Nodo B: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di B, lo si genera. M F   N

Algoritmo di MiniMax B A  E L  Il nodo G non è un nodo foglia  espansione del nodo G. M F   N G 

Algoritmo di MiniMax B A  E L  Il nodo P è un nodo foglia  valutazione del nodo P. M F   N G  P

Algoritmo di MiniMax B A  E L  Il valore del nodo P è ritornato al nodo padre G che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  P

Algoritmo di MiniMax B A  E L  Nodo G: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di G, lo si genera. M F   N G  P

Algoritmo di MiniMax B A  E L  Il nodo Q è un nodo foglia  valutazione del nodo Q. M F   N G  PQ

Algoritmo di MiniMax B A  E L  Il valore del nodo Q è ritornato al nodo padre G che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ

Algoritmo di MiniMax B A  E L  M F   N G  PQ Nodo G: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di G, lo si genera.

Algoritmo di MiniMax B A  E L  Non ci sono più figli da generare  si ritorna  al nodo padre B che, essendo un nodo OR, imposterà  come il minore tra il valore ritornato e il valore attuale di . M F   N G  PQ

Algoritmo di MiniMax B A  E L  Nodo B: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di B, lo si genera. M F   N G  PQ

Algoritmo di MiniMax B A  E L  Non ci sono più figli da generare  si ritorna  al nodo padre A che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ

Algoritmo di MiniMax B A E L  Nodo A: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di A, lo si genera. M F   N G  PQ 

Algoritmo di MiniMax B A E L  Il nodo C non è un nodo foglia  espansione del nodo C. M F   N G  PQ C  

Algoritmo di MiniMax B A E L  Il nodo H non è un nodo foglia  espansione del nodo H. M F   N G  PQ C  H 

Algoritmo di MiniMax B A E L  Il nodo R è un nodo foglia  valutazione del nodo R. M F   N G  PQ C  H R 

Algoritmo di MiniMax B A E L  Il valore del nodo R è ritornato al nodo padre H che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H R 

Algoritmo di MiniMax B A E L  Nodo H: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di H, lo si genera. M F   N G  PQ C  H R 

Algoritmo di MiniMax B A E L  Il nodo S è un nodo foglia  valutazione del nodo S. M F   N G  PQ C  H RS 

Algoritmo di MiniMax B A E L  Il valore del nodo S è ritornato al nodo padre H che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H RS 

Algoritmo di MiniMax B A E L  Nodo H: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di H, lo si genera. M F   N G  PQ C  H RS 

Algoritmo di MiniMax B A E L  Non ci sono più figli da generare  si ritorna  al nodo padre C che, essendo un nodo OR, imposterà  come il minore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H RS 

Algoritmo di MiniMax B A E L  Nodo C: si può interrompere la ricerca (   )  si ritorna  al nodo padre A. M F   N G  PQ C  H  RS 

Algoritmo di MiniMax B A E L  Il nodo A, essendo un nodo AND, imposterà  come il minore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS 

Algoritmo di MiniMax B A E L  Nodo A: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di A, lo si genera. M F   N G  PQ C  H  RS 

Algoritmo di MiniMax B A E L  Il nodo D non è un nodo foglia  espansione del nodo D. M F   N G  PQ C  H  RS D 

Algoritmo di MiniMax B A E L  Il nodo J non è un nodo foglia  espansione del nodo J. M F   N G  PQ C  H  RS D J 

Algoritmo di MiniMax B A E L  Il nodo V è un nodo foglia  valutazione del nodo V. M F   N G  PQ C  H  RS D J V 

Algoritmo di MiniMax B A E L  Il valore del nodo V è ritornato al nodo padre J che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS D J V 

Algoritmo di MiniMax B A E L  Nodo J: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di J, lo si genera. M F   N G  PQ C  H  RS D J  V 

Algoritmo di MiniMax B A E L  Il nodo W è un nodo foglia  valutazione del nodo W. M F   N G  PQ C  H  RS D J  VW 

Algoritmo di MiniMax B A E L  Il valore del nodo W è ritornato al nodo padre J che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS D J  VW 

Algoritmo di MiniMax B A E L  Nodo J: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di J, lo si genera. M F   N G  PQ C  H  RS D J  VW 

Algoritmo di MiniMax B A E L  Non ci sono più figli da generare  si ritorna  al nodo padre D che, essendo un nodo OR, imposterà  come il minore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS D J  VW 

Algoritmo di MiniMax B A E L  Nodo D: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di D, lo si genera. M F   N G  PQ C  H  RS D  J  VW 

Algoritmo di MiniMax B A E L  Il nodo K non è un nodo foglia  espansione del nodo K. M F   N G  PQ C  H  RS D  J  VW K  

Algoritmo di MiniMax B A E L  Il nodo X è un nodo foglia  valutazione del nodo X. M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Il valore del nodo X è ritornato al nodo padre K che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Nodo K: si può interrompere la ricerca (   )  si ritorna  al nodo padre D. M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Il nodo D, essendo un nodo OR, imposterà  come il minore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Nodo D: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di D, lo si genera. M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Non ci sono più figli da generare  si ritorna  al nodo padre A che, essendo un nodo AND, imposterà  come il maggiore tra il valore ritornato e il valore attuale di . M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Nodo A: non si può interrompere la ricerca (  <  )  se esiste un altro figlio di A, lo si genera. M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Non ci sono più figli da generare  si ritorna . La procedura ha termine. M F   N G  PQ C  H  RS D  J  VW K  X 

Algoritmo di MiniMax B A E L  Il valore ritornato dalla procedura (8), indica il nodo finale corrispondente al percorso migliore trovato nell’albero di ricerca. M F   N G  PQ C  H  RS D  J  VW K  X 

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 A CB PQTUVWXY D KJIG       Situazione finale nel caso in cui l’albero è espanso da destra a sinistra.