Scrivo un'IA per un gioco di carte e dopo alcuni test ho scoperto che usando MTD (f) sul mio algoritmo alpha beta - una serie di ricerche a zero-window - È più veloce dell'utilizzo di alpha-beta da solo.Come utilizzare le tabelle di trasposizione con MTD (f)
L'MTD (f) algoritmo è descritto bene qui http://people.csail.mit.edu/plaat/mtdf.html
Il problema che ho è che per ogni passaggio nell'area di MTD (f) di ricerca (per ogni indovinare) non riutilizzare qualsiasi delle posizioni precedenti L'ho memorizzato anche se la scrittura sul link suggerisce che dovrei (in effetti, azzerare la tabella tra le iterazioni accelera l'algoritmo).
Il mio problema è che quando memorizzo una posizione e un valore nella mia tabella di trasposizione, memorizzo anche i valori alfa e beta per i quali è valido. Pertanto un secondo passaggio attraverso l'albero con un'ipotesi diversa (e quindi alfa e beta) non può eventualmente riutilizzare alcuna informazione. È questo che ci si può aspettare o mi manca qualcosa di fondamentale qui?
Ad esempio se per alpha = 3 beta = 4 arriviamo a un risultato di 7 (ovviamente un cut-off) dovrei archiviare quello nella tabella come valido per alpha = 3 a beta = 6? O beta = 7?
Grazie, questo è esattamente quello che stavo cercando e ha inserito alcuni buchi nella mia comprensione. – Daniel
Penso che sia anche necessario dimostrare in qualche modo che non invalida l'ipotesi alfa/beta di utilizzare i valori tt da una ricerca più approfondita. Almeno se vuoi la piena potenza. –