Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Static Evaluation Function for Checkers

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).

like image 598
Kamikaze Avatar asked Jan 23 '23 04:01

Kamikaze


2 Answers

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.

like image 150
Shaggy Frog Avatar answered Feb 16 '23 20:02

Shaggy Frog


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)

like image 44
TaslemGuy Avatar answered Feb 16 '23 20:02

TaslemGuy