uso Minimax già valutato albero. Dove è il mio difetto?
Domanda
Ho appena iniziato cercando di utilizzare il Minimax / negamax algoritmo e mi è venuta un'idea che suona bene per me, ma come nessuno sta utilizzando potrebbe essere una logica difettosa.
Perché non facciamo questo:
Crea un tre con profondità = x, capire quale mossa fare, e attendere il nostro avversario. Dopo aver fatto la sua mossa possiamo solo prendere la sottostruttura delle mosse che abbiamo già valutato e continuare a costruire più profondo mentre usando i vecchi nodi. Potremmo usare i valori già valutati dei nodi e pesare con i nuovi valori dei nuovi nodi più profondi.
Benche i nuovi valori potrebbero non essere il più preciso con il solito metodo siamo riusciti a ottenere molto più profondo e profitto da questo.
Mi scuso per il mio e il male scritta e non strutturati, ma spero che si ottiene la mia idea.
Soluzione
Penso che quello che ti manca qui è come opere minimax. Minimax enumera tutte le possibilità per una profondità D specificato, quindi assegna un punteggio ai nodi (stati di gioco) a D, e spostando indietro l'albero, restituisce il nodo MAX o MIN a ciascuna profondità in base a se sono massimizzazione giocatore o il giocatore minimizzante.
La tua proposta di farlo top-down significherebbe che devi assegnare un punteggio ai nodi a profondità più basse, con conseguente una valutazione più povera.
Altri suggerimenti
L'idea è in uso, ma in un modo diverso. Invece di mantenere l'albero di ricerca in giro, che sarebbe la memoria proibitivo, i punteggi di valutazione sono conservate nella tabella di trasposizione e riutilizzati. Questo consente di risparmiare tempo quando si fa approfondimento iterativo , dal momento che molte posizioni saranno memorizzate nella cache segna da ricerche precedenti . Così il riutilizzo dei risultati di ricerca vecchi possono aiutare con alcune delle ricerche intermedi e velocizzare mossa ordinazione, ma i nodi foglia sarà ancora bisogno di essere valutati a qualunque terminale profondità di ricerca il motore sta usando.