/ / Come rendere un motore di gioco basato sulla ricerca alfa-beta non deterministico? - minimax, potatura alfa-beta

Come rendere un motore di gioco basato sulla ricerca alfa-beta non deterministico? - minimax, potatura alfa-beta

Ho implementato con successo un gioco negascoutmotore, che funziona bene, ma in modo deterministico. Ciò significa che posso ripetere lo stesso gioco più e più volte, perché per una determinata posizione, il motore di gioco produce sempre la stessa mossa migliore. Questo è indesiderato nel mio caso, perché voglio competere con il mio algoritmo nei tornei di codifica e con il comportamento deterministico, un avversario può facilmente scrivere un programma che vince semplicemente ripetendo una sequenza di mosse vincenti contro il mio programma.

La mia domanda è, qual è il più efficiente emodo elegante per renderlo meno deterministico? Potrei aggiungere un offset casuale alla mia valutazione della posizione, ma temo che ciò potrebbe peggiorare la qualità della valutazione. Esiste un modo standard per farlo?

risposte:

1 per risposta № 1

Inizia da un'altra posizione aperta casuale. Non aggiungere casualità al tuo motore finché non hai risolto i bug. Se due o più mosse sono uguali, puoi randomizzare quelli nell'ordine di movimento.