1

I implemented an AI playing checkers (also known as draughts) using the popular Monte Carlo Tree Search.

I was inspired by this resource http://www.bailopan.net/checkers/ that does the same.

Unfortunately my implementation and that implementation have an issue: While the AIs play very well during early and middle stages of the game they do not handle end-game too well: i found they end up just moving the last pieces around and not trying to win.

I implemented the simulation step making random moves for both players for N turns in the future (ie: it does not simulate the game until the end but for a significant number of turns).

I gave to the AI a large amount of time for its considerations just to be sure that computational time was not the bottleneck.

I'm considering to tweak the simulation step with some domain-based heuristic but i don't know how to develop the evaluate function, if needed.

Under this circumstances, how do you think I can improve my AI to have a better late game?

Giggioz
  • 457
  • 7
  • 21
  • Do you reward (as in reward function) winning the game over playing useless moves in a certain win situation? – ziggystar Oct 14 '16 at 10:29
  • 1
    @ziggystar Could you please add more detail? I'll try to be more explicit: Simulation step does two things -it simulates nTurns in the future and returns a winner -if no winner it makes a static evaluation of the board at the end of the simulation and return a winner - if no winner even in this case the simulation returns NO winner. Nodes update their scores with +1 if they are winning nodes, otherwise -1. – Giggioz Oct 14 '16 at 12:22
  • 1
    I meant that you should add some incentive to win the game fast. Either by changing the move generator, or by giving a small reward. – ziggystar Oct 14 '16 at 17:50

0 Answers0