davidjustice149 / Chess

development of a chess engine
0 stars 0 forks source link

Create a list of project goals. #1

Open makerbreak opened 4 years ago

makerbreak commented 4 years ago

What is the purpose of this project? What is it meant to achieve? What will be the deliverables?

makerbreak commented 4 years ago

@davidjustice149 via slack - As for the project of building a chess engine, there seem to be three big tasks: 1) Interface with a chess program to output a list of legal moves for a given position, 2) Design an algorithm for traversing and pruning the tree of possible variations/paths, and 3) Implement an evaluation function to judge the favorability of any position. The first task should be the easiest; we can probably just borrow/plagiarize some of the code from Stockfish to do this. The second and third tasks will probably require some research. I've investigated AlphaZero a little bit (I read Deep Mind's article on AlphaZero and some blogs by computer chess enthusiasts). Some people believe AlphaZero's success over its competitors was due more to a superior tree-traversal algorithm than to a better evaluation function, whereas the chess media hyped the use of neural networks to create a better evaluation function. Traditionally chess engines have used a tree-traversal algorithm called alpha-beta pruning. AlphaZero uses a different algorithm called Monte Carlo Tree Search (mcts), which was only recently invented in ~2006.