I'm trying to write an evaluation function for a game of checkers that I'm developing but I can't find the right documentation. I've read several documents on the web witch describe different techniques for either writing one or letting the computer find it(using genetic algorithms or Bayesian learning) but they're too complicated for a novice like me. All documents pointed a reference to "Some studies in machine learning using the game of checkers" by A.L.Samuel but I couldn't get my hands on it yet :(. I've only read the follow up "Some studies in machine learning using the game of checkers -II" and found some good info there, but it doesn't explain what the eval parameters mean (I think I don't have the whole article).
I would start with something dead simple: material difference. Which is equal to: (# of my checkers on board) - (# of opponent's checkers on board). Then you could add more features and begin to weight them, like "# of exposed checkers", "# of protected checkers", or perhaps "# of squares controlled in middle of board", and so on. Talk to a domain expert (i.e. a checkers player) and/or consult a checkers book to see what would work out well.
The best Checkers AI in the world cannot lose, although I can't find specific data on how it works, these properties are used to determine the ranking (with some weights attached to each)
"The linear handcrafted evaluation function considers several features of the game board, including piece count, kings count, trapped kings, turn, runaway checkers (unimpeded path to be kinged) and other minor factors."--Wikipedia
More info on the Ai at https://en.wikipedia.org/wiki/Chinook_(draughts_player)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With